Platform Chain (P-Chain) API
Bu API, Camino'nun doğrulayıcı setini sürdüren ve blok zinciri oluşturan P-Chain ile etkileşimde bulunmanızı sağlar.
Uç Nokta
/ext/P
Format
Bu API, json 2.0
RPC formatını kullanır.
Yöntemler
platform.addDelegator
Bir delegatörü Ana Ağa ekleyin.
Bir delegatör, CAM stake eder ve kendi adına doğrulama yapacak bir doğrulayıcı (delegat) belirler. Delegat, kendisine tahsis edilen stake ile doğru orantılı olarak diğer doğrulayıcılar tarafından örnekleme olasılığını artırır (ağırlık).
Delegat, delegatörün doğrulama ödülünden (varsa) bir yüzde alır. Stake delegasyonu yapan bir işlem için herhangi bir ücret yoktur.
Delegasyon süresi, delegatın Ana Ağı doğruladığı sürenin bir alt kümesi olmalıdır.
Bir düğümü delegatör olarak eklemek için işlemi gerçekleştirdiğinizde, parametrelerin değiştirilmesi mümkün değildir. Stake’i erken kaldıramaz veya stake miktarını, düğüm kimliğini ya da ödül adresini değiştiremezsiniz. Doğru değerlerin kullanıldığından emin olun.
İmza
platform.addDelegator(
{
nodeID: string,
startTime: int,
endTime: int,
stakeAmount: int,
rewardAddress: string,
from: []string, //opsiyonel
changeAddr: string, //opsiyonel
username: string,
password: string
}
) ->
{
txID: string,
changeAddr: string
}
nodeID
, delegasyona gidecek düğümün kimliğidir.startTime
, delegatörün delegasyona başladığı Unix zamanıdır.endTime
, delegatörün delegasyonu durdurduğu Unix zamanıdır (ve stake edilmiş CAM geri döner).stakeAmount
, delegatörün stake ettiği nCAM miktarıdır.rewardAddress
, doğrulayıcı ödülünün gideceği adrestir, eğer varsa.from
, bu işlem için kullanmak istediğiniz adreslerdir. İstenirse, ihtiyaç duyulması halinde herhangi bir adresinizi kullanır.changeAddr
, herhangi bir değişikliğin gönderileceği adrestir. İstenirse, değişiklik kullanıcının kontrol ettiği adreslerden birine gönderilir.username
, işlem ücretini ödeyen kullanıcıdır.password
,username
'in parolasıdır.txID
, işlem kimliğidir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.addDelegator",
"params": {
"nodeID":"NodeID-D1LbWvUf9iaeEyUbTYYtYq4b7GaYR5tnJ",
"rewardAddress":"P-columbus1gss39m5sx6jn7wlyzeqzm086yfq2l02xkvmecy",
"startTime":1594102400,
"endTime":1604102400,
"stakeAmount":100000,
"from": ["P-columbus1gss39m5sx6jn7wlyzeqzm086yfq2l02xkvmecy"],
"changeAddr": "P-columbus103y30cxeulkjfe3kwfnpt432ylmnxux8r73r8u",
"username":"myUsername",
"password":"myPassword"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"txID": "6pB3MtHUNogeHapZqMUBmx6N38ii3LzytVDrXuMovwKQFTZLs",
"changeAddr": "P-columbus103y30cxeulkjfe3kwfnpt432ylmnxux8r73r8u"
},
"id": 1
}
platform.addValidator
Ana Ağa bir doğrulayıcı ekleyin. Bunu yapmak için CAM stake etmeniz gerekmektedir. Düğüm, yeterince doğru ve yanıt verici olduğu sürece, stake süresi sona erdiğinde bir ödül alırsınız. Doğrulayıcıların, uzlaşma sırasında diğer doğrulayıcılar tarafından örnekleme olasılığı, stake edilen CAM miktarına orantılıdır.
Doğrulayıcı delegatlerden bir ücret alır; önceden belirtilen yüzdeliği alır. Minimum delegasyon ücreti %2'dir. Bir doğrulayıcı ekleyen bir işlem için herhangi bir ücret yoktur.
Doğrulama süresi en az 2 hafta, en fazla 1 yıl olmalıdır.
Doğrulayıcılara belirlenmiş bir maksimum toplam ağırlık yükümlülüğü vardır. Bu, hiçbir doğrulayıcının kendisine daha fazla CAM stake edilemeyeceği anlamına gelir. Bu değer başlangıçta min(5 * stake edilen miktar, 3M CAM)
olarak ayarlanacaktır. Bir doğrulayıcı üzerindeki toplam değer 3 milyon CAM'dır.
Bir düğümü doğrulayıcı olarak eklemek için işlemi gerçekleştirdiğinizde, parametrelerin değiştirilmesi mümkün değildir. Stake’i erken kaldıramaz veya stake miktarını, düğüm kimliğini ya da ödül adresini değiştiremezsiniz. Doğru değerlerin kullanıldığından emin olun. Eğer emin değilseniz, yardım almak için ulaşabilirsiniz.
İmza
platform.addValidator(
{
nodeID: string,
startTime: int,
endTime: int,
stakeAmount: int,
rewardAddress: string,
delegationFeeRate: float,
from: []string, //opsiyonel
changeAddr: string, //opsiyonel
username: string,
password: string
}
) ->
{
txID: string,
changeAddr: string
}
nodeID
, eklenen doğrulayıcının düğüm kimliğidir.startTime
, doğrulayıcının Ana Ağı doğrulamaya başladığı Unix zamanıdır.endTime
, doğrulayıcının Ana Ağı doğrulamayı durdurduğu Unix zamanıdır (ve stake edilmiş CAM geri döner).stakeAmount
, doğrulayıcının stake ettiği nCAM miktarıdır.rewardAddress
, doğrulayıcı ödülünün gideceği adrestir, eğer varsa.delegationFeeRate
, diğerlerinin kendisine stake delegasyonu yaparken bu doğrulayıcının alacağı yüzde ücrettir. 4 ondalık basamağa kadar izin verilir; ek ondalık basamaklar göz ardı edilir. 0 ile 100 arasında olmalıdır. Örneğin,delegationFeeRate
1.2345
ise ve biri bu doğrulayıcıya delegasyonda bulunursa, delegasyon süresi sona erdiğinde ödülün %1.2345'i doğrulayıcıya ve kalanı delegatöre gider.from
, bu işlem için kullanmak istediğiniz adreslerdir. İstenirse, ihtiyaç duyulması halinde herhangi bir adresinizi kullanır.changeAddr
, herhangi bir değişikliğin gönderileceği adrestir. İstenirse, değişiklik kullanıcının kontrol ettiği adreslerden birine gönderilir.username
, işlem ücretini ödeyen kullanıcıdır.password
,username
'in parolasıdır.txID
, işlem kimliğidir.
Lütfen Camino’da doğrulayıcılar için sabit stakeAmount
olduğunu unutmayın.
testnet: 2000000000000
nCAM (2000 CAM)
mainnet: 100000000000000
nCAM (100k CAM)
platform.addValidator
yöntemi, düğümünüzü cüzdan adresinizle kaydettirmediyseniz başarısız olacaktır. Lütfen konusunu inceleyin.
Örnek Çağrı
Bu örnekte, Unix zamanlarını 10 dakika ve 2 gün sonrasını hesaplamak için date
komutunu kullanıyoruz. (Not: Eğer bir Mac'te iseniz, $(date
'i $(gdate
ile değiştirin. Eğer gdate
yüklü değilse, brew install coreutils
komutunu çalıştırın.)
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.addValidator",
"params": {
"nodeID":"NodeID-ARCLrphAHZ28xZEBfUL7SVAmzkTZNe1LK",
"rewardAddress":"P-columbus1gss39m5sx6jn7wlyzeqzm086yfq2l02xkvmecy",
"from": ["P-columbus1gss39m5sx6jn7wlyzeqzm086yfq2l02xkvmecy"],
"changeAddr": "P-columbus103y30cxeulkjfe3kwfnpt432ylmnxux8r73r8u",
"startTime":'$(date --date="10 minutes" +%s)',
"endTime":'$(date --date="2 days" +%s)',
"stakeAmount":1000000,
"delegationFeeRate":10,
"username":"myUsername",
"password":"myPassword"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"txID": "6pb3mthunogehapzqmubmx6n38ii3lzytvdrxumovwkqftzls",
"changeAddr": "P-columbus103y30cxeulkjfe3kwfnpt432ylmnxux8r73r8u"
},
"id": 1
}
platform.addSubnetValidator
Bir subnet'e, Ana Ağ dışında bir doğrulayıcı ekleyin. Doğrulayıcı, bu subnet'i doğruladığı süre boyunca Ana Ağı doğrulamalıdır.
İmza
platform.addSubnetValidator(
{
nodeID: string,
subnetID: string,
startTime: int,
endTime: int,
weight: int,
from: []string, //opsiyonel
changeAddr: string, //opsiyonel
username: string,
password: string
}
) ->
{
txID: string,
changeAddr: string,
}
nodeID
, doğrulayıcının düğüm kimliğidir.subnetID
, doğrulamanın yapılacağı subnet'tir.startTime
, doğrulayıcının subnet'i doğrulamaya başladığı Unix zamanıdır.endTime
, doğrulayıcının subnet'i doğrulamayı durdurduğu Unix zamanıdır.weight
, örnekleme için kullanılan doğrulayıcının ağırlığıdır.from
, bu işlem için kullanmak istediğiniz adreslerdir. İstenirse, ihtiyaç duyulması halinde herhangi bir adresinizi kullanır.changeAddr
, herhangi bir değişikliğin gönderileceği adrestir. İstenirse, değişiklik kullanıcının kontrol ettiği adreslerden birine gönderilir.username
, işlem ücretini ödeyen kullanıcıdır.password
,username
'in parolasıdır.txID
, işlem kimliğidir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.addSubnetvalidator",
"params": {
"nodeID":"NodeID-AK7sPBsZM9rQwse23aLhEEBPHZD5gkLrL",
"subnetID":"zbfoww1ffkpvrfywpj1cvqrfnyesepdfc61hmu2n9jnghduel",
"startTime":1583524047,
"endTime":1604102399,
"weight":1,
"from": ["P-columbus1gss39m5sx6jn7wlyzeqzm086yfq2l02xkvmecy"],
"changeAddr": "P-columbus103y30cxeulkjfe3kwfnpt432ylmnxux8r73r8u",
"username":"myUsername",
"password":"myPassword"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"txID": "2exafyvRNSE5ehwjhafBVt6CTntot7DFjsZNcZ54GSxBbVLcCm",
"changeAddr": "P-columbus103y30cxeulkjfe3kwfnpt432ylmnxux8r73r8u"
}
}
platform.createAddress
Verilen kullanıcı tarafından kontrol edilen yeni bir adres oluşturun.
İmza
platform.createAddress({
username: string,
password: string
}) -> {address: string}
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.createAddress",
"params": {
"username":"myUsername",
"password":"myPassword"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"address": "P-columbus12lqey27sfujqq6mc5a3jr5av56cjsu8hg2d3hx"
},
"id": 1
}
platform.createBlockchain
Yeni bir blok zinciri oluşturun. Şu anda yalnızca AVM ve Zaman Damgası VM'in yeni örneklerinin oluşturulmasını desteklemektedir.
İmza
platform.createBlockchain(
{
subnetID: string,
vmID: string,
name: string,
genesisData: string,
encoding: string, //opsiyonel
from: []string, //opsiyonel
changeAddr: string, //opsiyonel
username: string,
password: string
}
) ->
{
txID: string,
changeAddr: string
}
subnetID
, yeni blok zincirini doğrulayan subnet'in kimliğidir. Subnet mevcut olmalı ve Ana Ağ olmamalıdır.vmID
, blok zincirinin çalıştığı Sanal Makinenin kimliğidir. Aynı zamanda Sanal Makinenin bir takma adı da olabilir.name
, yeni blok zinciri için insan tarafından okunabilir bir isimdir. Kesinlikle özgün değildir.genesisData
, yeni blok zincirinin Genesis durumunun byte temsilidir;encoding
parametresinde belirtilen formatta kodlanmıştır.encoding
,genesisData
için kullanılacak formatı tanımlar. "cb58" veya "hex" olabilir. Varsayılan olarak "cb58"dir. Sanal Makinelerin,genesisData
oluşturmak için kullanılabilen statik bir API yöntemi bulunmalıdır.from
, bu işlem için kullanmak istediğiniz adreslerdir. İstenirse, ihtiyaç duyulması halinde herhangi bir adresinizi kullanır.changeAddr
, herhangi bir değişikliğin gönderileceği adrestir. İstenirse, değişiklik kullanıcının kontrol ettiği adreslerden birine gönderilir.username
, işlem ücretini ödeyen kullanıcıdır. Bu kullanıcının subnet'in kontrol anahtarlarından yeterli sayıda olması gerekir.password
,username
'in parolasıdır.txID
, işlem kimliğidir.
Örnek Çağrı
Bu örnekte, Zaman Damgası Sanal Makinesinin yeni bir örneğini oluşturuyoruz. genesisData
, timestamp.buildGenesis
çağrısından gelmiştir.
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.createBlockchain",
"params" : {
"vmID":"timestamp",
"subnetID":"2bRCr6B4MiEfSjidDwxDpdCyviwnfUVqB2HGwhm947w9YYqb7r",
"name":"Yeni zaman damgam",
"genesisData": "45oj4CqFViNHUtBxJ55TZfqCAMFwMRMj2XkHVqUYjJYoTaEM",
"encoding": "cb58",
"from": ["P-columbus1gss39m5sx6jn7wlyzeqzm086yfq2l02xkvmecy"],
"changeAddr": "P-columbus103y30cxeulkjfe3kwfnpt432ylmnxux8r73r8u",
"username":"myUsername",
"password":"myPassword"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"txID": "2TBnyFmST7TirNm6Y6z4863zusRVpWi5Cj1sKS9bXTUmu8GfeU",
"changeAddr": "P-columbus103y30cxeulkjfe3kwfnpt432ylmnxux8r73r8u"
},
"id": 1
}
platform.createSubnet
Yeni bir subnet oluşturun.
Subnet'in kimliği, bu işlemin kimliği ile aynıdır.
İmza
platform.createSubnet(
{
controlKeys: []string,
threshold: int,
from: []string, //opsiyonel
changeAddr: string, //opsiyonel
username: string,
password: string
}
) ->
{
txID: string,
changeAddr: string
}
- Bu subnet'e bir doğrulayıcı eklemek için,
threshold
imzası,controlKeys
'deki adreslerden alınmalıdır. from
, bu işlem için kullanmak istediğiniz adreslerdir. İstenirse, ihtiyaç duyulması halinde herhangi bir adresinizi kullanır.changeAddr
, herhangi bir değişikliğin gönderileceği adrestir. İstenirse, değişiklik kullanıcının kontrol ettiği adreslerden birine gönderilir.username
, işlem ücretini ödeyen kullanıcıdır.password
,username
'in parolasıdır.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.createSubnet",
"params": {
"controlKeys":[
"P-columbus13xqjvp8r2entvw5m29jxxjhmp3hh6lz8laep9m",
"P-columbus165mp4efnel8rkdeqe5ztggspmw4v40j7pfjlhu"
],
"threshold":2,
"from": ["P-columbus1gss39m5sx6jn7wlyzeqzm086yfq2l02xkvmecy"],
"changeAddr": "P-columbus103y30cxeulkjfe3kwfnpt432ylmnxux8r73r8u",
"username":"myUsername",
"password":"myPassword"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"txID": "hJfC5xGhtjhCGBh1JWn3vZ51KJP696TZrsbadPHNbQG2Ve5yd"
},
"id": 1
}
platform.exportAVAX
P-Chain üzerindeki bir adresten X-Chain üzerindeki bir adrese CAM gönderin. Bu işlemi gerçekleştirdikten sonra, transferi tamamlamak için X-Chain’in yöntemini CAM
assetID'si ile çağırmalısınız.
İmza
platform.exportAVAX(
{
amount: int,
from: []string, //opsiyonel
to: string,
changeAddr: string, //opsiyonel
username: string,
password: string
}
) ->
{
txID: string,
changeAddr: string
}
amount
, gönderilecek nCAM miktarıdır.to
, CAM’ın gönderileceği X-Chain üzerindeki adrestir.from
, bu işlem için kullanmak istediğiniz adreslerdir. İstenirse, ihtiyaç duyulması halinde herhangi bir adresinizi kullanır.changeAddr
, herhangi bir değişikliğin gönderileceği adrestir. İstenirse, değişiklik kullanıcının kontrol ettiği adreslerden birine gönderilir.username
, CAM’ı gönderen ve işlem ücretini ödeyen kullanıcıdır.password
,username
'in parolasıdır.txID
, bu işlemin kimliğidir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.exportAVAX",
"params": {
"to":"X-columbus1yv8cwj9kq3527feemtmh5gkvezna5xys08mxet",
"amount":1,
"from": ["P-columbus1gss39m5sx6jn7wlyzeqzm086yfq2l02xkvmecy"],
"changeAddr": "P-columbus103y30cxeulkjfe3kwfnpt432ylmnxux8r73r8u",
"username":"myUsername",
"password":"myPassword"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"txID": "2Kz69TNBSeABuaVjKa6ZJCTLobbe5xo9c5eU8QwdUSvPo2dBk3",
"changeAddr": "P-columbus103y30cxeulkjfe3kwfnpt432ylmnxux8r73r8u"
},
"id": 1
}
platform.exportKey
Belirli bir adresi kontrol eden özel anahtarı alın.
Dönen özel anahtar, ile bir kullanıcıya eklenebilir.
İmza
platform.exportKey({
username: string,
password: string,
address: string
}) -> {privateKey: string}
username
,address
'e sahip olan kullanıcıdır.password
,username
'in parolasıdır.privateKey
,address
'i kontrol eden özel anahtarın string temsilidir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc":"2.0",
"id" :1,
"method" :"platform.exportKey",
"params" :{
"username" :"myUsername",
"password": "myPassword",
"address": "P-columbus1zwp96clwehpwm57r9ftzdm7rnuslrunj68ua3r"
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"privateKey": "PrivateKey-Lf49kAJw3CbaL783vmbeAJvhscJqC7vi5yBYLxw2XfbzNS5RS"
}
}
platform.getAddressStates
Bir adrese uygulanan durum bit maskesini alın.
İmza
platform.getAddressStates({
address: string,
}) -> string
address
, durumunu almak istediğiniz adrestir.
Olası state
değerleri
AddressStateRoleAdmin = uint8(0)
AddressStateRoleKyc = uint8(1)
AddressStateKycVerified = uint8(32)
AddressStateKycExpired = uint8(33)
AddressStateConsortium = uint8(38)
AddressStateNodeDeferred = uint8(39)
Örnek Çağrı
curl -X POST --data '{
"jsonrpc":"2.0",
"id" : 1,
"method" :"platform.getAddressStates",
"params" :{
"address":"P-columbus1m8wnvtqvthsxxlrrsu3f43kf9wgch5tyfx4nmf"
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": "12345",
"id": 1
}
### platform.getAllDepositOffers
Belirtilen Unix `timestamp` için tüm depozit tekliflerini alın. Metod, yalnızca belirtilen `timestamp`'te aktif olan depozit tekliflerini döndürmektedir.
**İmza**
```sh
platform.getAllDepositOffers({
timestamp: int
}) ->
{
depositOffers: []{
ID: string,
InterestRateNominator: int,
Start: int,
End: int,
MinAmount: int,
MinDuration: int,
MaxDuration: int,
UnlockPeriodDuration: int,
NoRewardsPeriodDuration: int,
Memo: string,
Flags: int,
}
}
ID
, depozit teklifinin kimliğidir.InterestRateNominator
, faiz oranının nominatörüdür.Start
, bu teklifin geçerli olmaya başladığı Unix zamanıdır.End
, bu teklifin geçerli olmayı bıraktığı Unix zamanıdır.MinAmount
, yatırılabilecek en düşük CAM miktarını göstermektedir.MinDuration
, depozit için en düşük süreyi saniye cinsinden belirtmektedir.MaxDuration
, depozit için en yüksek süreyi saniye cinsinden belirtmektedir.UnlockPeriodDuration
, kaldırma süresinin süresidir (saniye cinsinden).NoRewardsPeriodDuration
, ödülsüz sürenin süresidir (saniye cinsinden).Memo
, depozit teklifinin açıklamasının base64 kodlu halidir.Flags
, depozit teklifinin durumunu tanımlayan bir parametredir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getAllDepositOffers",
"params": {
"timestamp": 1696303193
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"depositOffers": [
{
"ID": "2GcJSMiaRACwrKDYV8Sa17AoFce8k4WHHXFyZL5eFH2CtZBAKy",
"InterestRateNominator": 210000,
"Start": 1676374487,
"End": 1739450087,
"MinAmount": 1,
"MinDuration": 86400,
"MaxDuration": 31536000,
"UnlockPeriodDuration": 43200,
"NoRewardsPeriodDuration": 43200,
"Memo": "MHg2NDY1NzA2ZjczNjk3NDRmNjY2NjY1NzIyMDc0NjU3Mzc0MjMzMjIwMmQyMDcwNjk2MzZiNjE2MjZjNjUyMDYxNjY3NDY1NzIyMDZlNjU3NDc3NmY3MjZiMjA2MzcyNjU2MTc0Njk2ZjZlMjA2MTZlNjQyMDZlNmY3NDIwNjk2ZTIwNjc2NTZlNjU3MzY5NzMyMDYxNzMyMDY0NzU3MjYxNzQ2OTZmNmUyMDY5NzMyMDZlNmY3NDIwNjM2ODZmNmY3MzYxNjI2YzY1MjA3MDY1NzIyMDYxNmM2YzZmNjM2MTc0Njk2ZjZlMjEyOGZiMzE0ZQ==",
"Flags": 0
},
{
"ID": "2t8eBizuEpdGfXbuQxw57PHmtBpmkZeLtzDJ3q5tmju6HhDDaG",
"InterestRateNominator": 110000,
"Start": 1676374487,
"End": 1739450087,
"MinAmount": 1,
"MinDuration": 60,
"MaxDuration": 31536000,
"UnlockPeriodDuration": 0,
"NoRewardsPeriodDuration": 0,
"Memo": "MHg2NDY1NzA2ZjczNjk3NDRmNjY2NjY1NzIyMDc0NjU3Mzc0MjMzMTIwMmQyMDcwNjk2MzZiNjE2MjZjNjUyMDYxNjY3NDY1NzIyMDZlNjU3NDc3NmY3MjZiMjA2MzcyNjU2MTc0Njk2ZjZlMjA2MTZlNjQyMDZlNmY3NDIwNjk2ZTIwNjc2NTZlNjU3MzY5NzMyMDYxNzMyMDY0NzU3MjYxNzQ2OTZmNmUyMDY5NzMyMDZlNmY3NDIwNjM2ODZmNmY3MzYxNjI2YzY1MjA3MDY1NzIyMDYxNmM2YzZmNjM2MTc0Njk2ZjZlMjEyOGZiMzE0ZQ==",
"Flags": 0
}
]
},
"id": 1
}
platform.getBalance
Verilen adresler tarafından kontrol edilen CAM bakiyesini alın.
İmza
platform.getBalance({
addresses: string[]
}) -> {
balances: {id: string},
unlockedOutputs: {id: string},
bondedOutputs: {id: string},
depositedOutputs: {id: string},
bondedDepositedOutputs: {id: string},
utxoIDs: []{
txID: string,
outputIndex: int
}
}
addresses
, bakiyesini almak istediğiniz adreslerin listesidir.balances
, toplam bakiyeyi, nCAM cinsinden gösterir. Yanıt,{ assetID: balance }
şeklinde bir haritadır. Daha fazla bilgi için bölümüne bakın.unlockedOutputs
, açık bakiyeyi, nCAM cinsinden belirtmektedir.bondedOutputs
, bağlanmış bakiyeyi, nCAM cinsinden belirtmektedir.depositedOutputs
, yatırılan bakiyeyi, nCAM cinsinden belirtmektedir.bondedDepositedOutputs
, bağlı ve yatırılan bakiyeyi, nCAM cinsinden belirtmektedir.utxoIDs
,address
'ı referans alan UTXO'ların kimlikleridir.
Depozitler ve bağlar hakkında daha fazla bilgi almak için sayfasını ziyaret edin.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc":"2.0",
"id": 1,
"method": "platform.getBalance",
"params": {
"addresses":["P-columbus1m8wnvtqvthsxxlrrsu3f43kf9wgch5tyfx4nmf"]
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"balances": {
"2qD5UA8E5a3rCyVGrxWHp4pwP14d8WicgCfM9KzdyWQ6AyK3w8": "104901417112028"
},
"unlockedOutputs": {
"2qD5UA8E5a3rCyVGrxWHp4pwP14d8WicgCfM9KzdyWQ6AyK3w8": "4901417112028"
},
"bondedOutputs": {},
"depositedOutputs": {},
"bondedDepositedOutputs": {
"2qD5UA8E5a3rCyVGrxWHp4pwP14d8WicgCfM9KzdyWQ6AyK3w8": "100000000000000"
},
"utxoIDs": [
{
"txID": "22cFMeT6vJKEw4CADLGMFeHMyogn7TSE44ZtZjGNFi7W6m2GyV",
"outputIndex": 0
},
{
"txID": "k91svvCsKQHQbuezUqiWtBT3PkGwtinrM4biuAv5CbfT7BjUG",
"outputIndex": 0
}
]
},
"id": 1
}
platform.getBlock
Bir bloğu kimliğine göre alın.
İmza
platform.getBlock({
blockID: string,
encoding: string // opsiyonel
}) -> {
block: string,
encoding: string
}
Talep
blockID
, bloğun kimliğidir. cb58 formatında olmalıdır.encoding
, kullanılacak kodlama formatıdır.cb58
,hex
veyajson
olabilir. Varsayılancb58
dir.
Yanıt
block
, işlemencoding
e kodlanmış halidir.encoding
, kullanılanencoding
dir.
CB58 Örneği
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getBlock",
"params": {
"blockID": "d7WYmb8VeZNHsny3EJCwMm6QA37s1EHwMxw1Y71V3FqPZ5EFG",
"encoding": "cb58"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"block": "11111BwoDGdFYQfsbfJ35VKjMP6z5dtggBJqFay7KN33GdqpU8ZFAvaSVegwfADYFipsCpTft27TA8h99krBjsMvFZ5TgFYrQCNN2DkyXQSVuGadYh8UhZ6Ptp3HwVYvXWHaDwjt3mEs9fkoS5JiTDfrrp3w6ws2LTksv3LGtb66iWjWgnHU46WgY2wVqnwrit2x7mYGTgJpXeziLCY66Hnnu1jAy5hYhK2Ek37XhvBcd1UeTcPAFsEtFdLr8Ku19K2dYYNvvuz7YnJjuqxUjtNoC61UcKrtTyJCqRuyA85NRFD7ZYVKwSd13CevyZWuBiBWZkukUpLhJwTcWnFnzbntKDCMdip4kAtQueDkjYnrXu2AWS3SXiJTSmZm55iwn4iE9sqBs6Rj1CnrakGi7sCcXg1UyYu5scmb5RVDKDtZPNLr5Vb6oTWaM4egHfwgT98koZ28rSw8otJfv4q1BH9vrS4N7pUJxh9grnksG9TQDtjBjD9tmhxC8iSLYTwGNxitAqjZd7SGE9",
"encoding": "cb58"
},
"id": 1
}
Hex Örneği
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getBlock",
"params": {
"blockID": "d7WYmb8VeZNHsny3EJCwMm6QA37s1EHwMxw1Y71V3FqPZ5EFG",
"encoding": "hex"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"block": "0x00000000000309473dc99a0851a29174d84e522da8ccb1a56ac23f7b0ba79f80acce34cf576900000000000f4241000000010000001200000001000000000000000000000000000000000000000000000000000000000000000000000000000000011c4c57e1bcb3c567f9f03caa75563502d1a21393173c06d9d79ea247b20e24800000000021e67317cbc4be2aeb00677ad6462778a8f52274b9d605df2591b23027a87dff000000050000000338e0465f0000000100000000000000000427d4b22a2a78bcddd456742caf91b56badbff985ee19aef14573e7343fd6520000000121e67317cbc4be2aeb00677ad6462778a8f52274b9d605df2591b23027a87dff000000070000000338d1041f0000000000000000000000010000000195a4467dd8f939554ea4e6501c08294386938cbf000000010000000900000001c79711c4b48dcde205b63603efef7c61773a0eb47efb503fcebe40d21962b7c25ebd734057400a12cce9cf99aceec8462923d5d91fffe1cb908372281ed738580119286dde",
"encoding": "hex"
},
"id": 1
}
JSON Örneği
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getBlock",
"params": {
"blockID": "d7WYmb8VeZNHsny3EJCwMm6QA37s1EHwMxw1Y71V3FqPZ5EFG",
"encoding": "json"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"block": {
"parentID": "5615di9ytxujackzaXNrVuWQy5y8Yrt8chPCscMr5Ku9YxJ1S",
"height": 1000001,
"txs": [
{
"unsignedTx": {
"inputs": {
"networkID": 1,
"blockchainID": "11111111111111111111111111111111LpoYY",
"outputs": [],
"inputs": [
{
"txID": "DTqiagiMFdqbNQ62V2Gt1GddTVLkKUk2caGr4pyza9hTtsfta",
"outputIndex": 0,
"assetID": "o8seyjX6WupqJ1CE8CeaozK13kqVgc4DFvdvc4crfacLFBauW",
"fxID": "spdxUxVJQbX85MGxMHbKw1sHxMnSqJ3QBzDyDYEP3h6TLuxqQ",
"input": {
"amount": 13839124063,
"signatureIndices": [0]
}
}
],
"memo": "0x"
},
"destinationChain": "2q9e4r6Mu3U68nU1fYjgbR6JvwrRx36CohpAX5UQxse55x1Q5",
"exportedOutputs": [
{
"assetID": "o8seyjX6WupqJ1CE8CeaozK13kqVgc4DFvdvc4crfacLFBauW",
"fxID": "spdxUxVJQbX85MGxMHbKw1sHxMnSqJ3QBzDyDYEP3h6TLuxqQ",
"output": {
"addresses": [
"P-columbus1jkjyvlwclyu42n4yuegpczpfgwrf8r9lyj0d3c"
],
"amount": 13838124063,
"locktime": 0,
"threshold": 1
}
}
]
},
"credentials": [
{
"signatures": [
"0xc79711c4b48dcde205b63603efef7c61773a0eb47efb503fcebe40d21962b7c25ebd734057400a12cce9cf99aceec8462923d5d91fffe1cb908372281ed7385801"
]
}
]
}
]
},
"encoding": "json"
},
"id": 1
}
platform.getBlockchains
Mevcut olan tüm blok zincirlerini alın (P-Chain hariç).
İmza
platform.getBlockchains() ->
{
blockchains: []{
id: string,
name: string,
subnetID: string,
vmID: string
}
}
blockchains
, Camino ağında mevcut olan tüm blok zincirleridir.name
, bu blok zincirinin insan tarafından okunabilir adıdır.id
, blok zincirinin kimliğidir.subnetID
, bu blok zincirini doğrulayan alt ağın kimliğidir.vmID
, bu blok zincirinin çalıştığı Sanal Makine kimliğidir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getBlockchains",
"params": {},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"blockchains": [
{
"id": "28Pp3JZJBABUmFQcC9ZXPjuDS6WVX8LeQP9y3DvpCXGiNiTQFV",
"name": "X-Chain",
"subnetID": "11111111111111111111111111111111LpoYY",
"vmID": "jvYyfQTxGMJLuGWa55kdP2p2zSUYsQ5Raupu4TW34ZAUBAbtq"
},
{
"id": "fnVV12Px5y6FGM5Ua8moqmTPCQT2im18SZEW2xgMDGurimFZg",
"name": "C-Chain",
"subnetID": "11111111111111111111111111111111LpoYY",
"vmID": "mgj786NP7uDwBCcq6YwThhaN8FLyybkCa4zBWTQbNgmK6k9A6"
},
{
"id": "2SMYrx4Dj6QqCEA3WjnUTYEFSnpqVTwyV3GPNgQqQZbBbFgoJX",
"name": "Timestamp VM",
"subnetID": "11111111111111111111111111111111LpoYY",
"vmID": "tGas3T58KzdjLHhBDMnH2TvrddhqTji5iZAMZ3RXs2NLpSnhH"
}
]
},
"id": 1
}
platform.getBlockchainStatus
Bir blok zincirinin durumunu alın.
İmza
platform.getBlockchainStatus(
{
blockchainID: string
}
) -> {status: string}
status
aşağıdaki değerlerden biri olabilir:
Validating
: Blok zinciri bu düğüm tarafından doğrulanmaktadır.Created
: Blok zinciri mevcut ancak bu düğüm tarafından doğrulanmamaktadır.Preferred
: Blok zincirinin oluşturulması önerilmiştir ve muhtemelen oluşturulacaktır, ancak işlem henüz kabul edilmemiştir.Syncing
: Bu düğüm, bu blok zincirinde doğrulamayan bir düğüm olarak katılmaktadır.Unknown
: Blok zinciri ya önerilmemiştir ya da oluşturulması önerisi tercih edilmemektedir. Öneri tekrar gönderilebilir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getBlockchainStatus",
"params": {
"blockchainID": "fnVV12Px5y6FGM5Ua8moqmTPCQT2im18SZEW2xgMDGurimFZg"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"status": "Created"
},
"id": 1
}
platform.getConfiguration
platformVM yapılandırmasını döndürür.
İmza
platform.getConfiguration() -> {
networkID: int,
assetID: string,
assetSymbol: string,
hrp: string,
blockchains: [
{
id: string,
name: string,
subnetID: string,
vmID: string
},
...
],
minStakeDuration: int,
maxStakeDuration: int,
minValidatorStake: int,
maxValidatorStake: int,
minDelegationFee: int,
minDelegatorStake: int,
minConsumptionRate: int,
maxConsumptionRate: int,
supplyCap: int,
codecVersion: int,
verifyNodeSignature: bool,
lockModeBondDeposit: bool
}
Örnek Çağrı
curl -X POST --data '{
"jsonrpc":"2.0",
"id": 1,
"method": "platform.getConfiguration"
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"networkID": "1002",
"assetID": "iTV3Gh5EY2aUqt6JyhKkHSH4thSsUUhGC8GhxwDrTxgmREpr1",
"assetSymbol": "CAM",
"hrp": "kopernikus",
"blockchains": [
{
"id": "2emXuWNR9Gn9Hbe5k3iwyBax8sQhGHv2BJwhDJwMrvXYAotBeL",
"name": "C-Chain",
"subnetID": "11111111111111111111111111111111LpoYY",
"vmID": "mgj786NP7uDwBCcq6YwThhaN8FLyybkCa4zBWTQbNgmK6k9A6"
},
{
"id": "2o3ApqF7hQCjBofo8hD8i8GLHhAkMv96Hu7kjd5NqsScraoZ1x",
"name": "X-Chain",
"subnetID": "11111111111111111111111111111111LpoYY",
"vmID": "jvYyfQTxGMJLuGWa55kdP2p2zSUYsQ5Raupu4TW34ZAUBAbtq"
}
],
"minStakeDuration": "86400000000000",
"maxStakeDuration": "31536000000000000",
"minValidatorStake": "2000000000000",
"maxValidatorStake": "2000000000000",
"minDelegationFee": "0",
"minDelegatorStake": "0",
"minConsumptionRate": "0",
"maxConsumptionRate": "0",
"supplyCap": "1000000000000000000",
"codecVersion": "0",
"verifyNodeSignature": true,
"lockModeBondDeposit": true
},
"id": 1
}
platform.getCurrentSupply
Mevcut CAM miktarı için bir üst sınır döndürür. Bu, yanma işlemlerini (işlem ücretleri dahil) dikkate almadığı için bir üst sınırdır.
İmza
platform.getCurrentSupply() -> {supply: int}
supply
, mevcut olan CAM miktarı için bir üst sınırdır; nCAM cinsindendir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getCurrentSupply",
"params": {},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"supply": "365865167637779183"
},
"id": 1
}
Bu örnekteki yanıt, CAM'ın arzının en fazla 365.865 milyon olduğunu belirtmektedir.
platform.getCurrentValidators
Verilen Alt Ağın mevcut doğrulayıcılarını listeleyin.
Üst seviye delegators
alanı v1.0.1 itibarıyla kullanımdan kaldırıldı ve v1.0.6'da kaldırıldı. Bunun yerine, her validators
elemanı artık o doğrulayıcı için delegatörler listesini içermektedir.
İmza
platform.getCurrentValidators({
subnetID: string, //isteğe bağlı
nodeIDs: string[], //isteğe bağlı
}) -> {
validators: []{
txID: string,
startTime: string,
endTime: string,
stakeAmount: string, //isteğe bağlı
nodeID: string,
weight: string, //isteğe bağlı
rewardOwner: {
locktime: string,
threshold: string,
addresses: string[]
},
potentialReward: string,
delegationFee: string,
uptime: string,
connected: bool,
delegators: []{
txID: string,
startTime: string,
endTime: string,
stakeAmount: string, //isteğe bağlı
nodeID: string,
rewardOwner: {
locktime: string,
threshold: string,
addresses: string[]
},
potentialReward: string,
}
}
}
subnetID
, mevcut doğrulayıcıların döndürüleceği alt ağdır. Atlandığında, Ana Ağın mevcut doğrulayıcıları döndürülür.nodeIDs
, istenen mevcut doğrulayıcıların nodeID'lerinin bir listesidir. Atlandığında, tüm mevcut doğrulayıcılar döndürülür. Belirtilen bir nodeID mevcut doğrulayıcılar setinde yoksa, cevapta yer almaz.validators
:txID
, doğrulayıcı işlemidir.startTime
, doğrulayıcının Alt Ağı doğrulamaya başladığı Unix zamanıdır.endTime
, doğrulayıcının Alt Ağı doğrulamayı durdurduğu Unix zamanıdır.stakeAmount
, bu doğrulayıcının stake ettiği nCAM miktarıdır.subnetID
Ana Ağ değilse atlanır.nodeID
, doğrulayıcının node ID'sidir.weight
, doğrulayıcıları örneklerken doğrulayıcının ağırlığıdır.subnetID
Ana Ağ değilse atlanır.rewardOwner
,locktime
,threshold
veaddresses
dizisini içeren birOutputOwners
çıktısıdır.potentialReward
, stake ederek kazanılan potansiyel ödüldür.delegationFeeRate
, diğerlerinin stake'lerini kendisine devretmesi durumunda bu doğrulayıcının talep ettiği yüzdelik ücrettir.uptime
, sorgulanan node'un peeri çevrimiçi olarak raporladığı zamanın yüzdesidir.connected
, node'un ağa bağlı olup olmadığını belirtir.delegators
, bu doğrulayıcıya delegatörler listesi:txID
, delegatör işlemidir.startTime
, delegatörün başladığı Unix zamanıdır.endTime
, delegatörün durdurduğu Unix zamanıdır.stakeAmount
, bu delegatörün stake ettiği nCAM miktarıdır.subnetID
Ana Ağ değilse atlanır.nodeID
, doğrulayıcı node'un node ID'sidir.rewardOwner
,locktime
,threshold
veaddresses
dizisini içeren birOutputOwners
çıktısıdır.potentialReward
, stake ederek kazanılan potansiyel ödüldür.
delegators
: (v1.0.1 itibariyle kullanım dışı. Yöntem belgelerinin üst kısmındaki notu inceleyin.)
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getCurrentValidators",
"params": {},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"validators": [
{
"txID": "2NNkpYTGfTFLSGXJcHtVv6drwVU2cczhmjK2uhvwDyxwsjzZMm",
"startTime": "1600368632",
"endTime": "1602960455",
"stakeAmount": "2000000000000",
"nodeID": "NodeID-5mb46qkSBj81k9g9e4VFjGGSbaaSLFRzD",
"rewardOwner": {
"locktime": "0",
"threshold": "1",
"addresses": ["P-columbus18jma8ppw3nhx5r4ap8clazz0dps7rv5u00z96u"]
},
"potentialReward": "117431493426",
"delegationFee": "10.0000",
"uptime": "0.0000",
"connected": false,
"delegators": [
{
"txID": "Bbai8nzGVcyn2VmeYcbS74zfjJLjDacGNVuzuvAQkHn1uWfoV",
"startTime": "1600368523",
"endTime": "1602960342",
"stakeAmount": "25000000000",
"nodeID": "NodeID-5mb46qkSBj81k9g9e4VFjGGSbaaSLFRzD",
"rewardOwner": {
"locktime": "0",
"threshold": "1",
"addresses": ["P-columbus18jma8ppw3nhx5r4ap8clazz0dps7rv5u00z96u"]
},
"potentialReward": "11743144774"
}
]
}
]
},
"id": 1
}
platform.getHeight
Son kabul edilen bloğun yüksekliğini döndürür.
İmza
platform.getHeight() ->
{
height: int,
}
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getHeight",
"params": {},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"height": "56"
},
"id": 1
}
platform.getMaxStakeAmount
Belirli bir zaman diliminde adlandırılan düğüm için en fazla nCAM stake miktarını döndürür.
İmza
platform.getMaxStakeAmount(
{
subnetID: string,
nodeID: string,
startTime: int,
endTime: int
}
) ->
{
amount: uint64
}
subnetID
, alt ağı temsil eden bir Buffer veya cb58 dizesidir.nodeID
, verilen süre boyunca stake miktarının gerekildiği düğümün ID'sini temsil eden bir dizedir.startTime
, düğümün stake miktarının gerekli olduğu süre için başlangıç zamanını belirten büyük bir sayıdır.endTime
, düğümün stake miktarının gerekli olduğu süre için bitiş zamanını belirten büyük bir sayıdır.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getMaxStakeAmount",
"params": {
"subnetID":"11111111111111111111111111111111LpoYY",
"nodeID":"NodeID-AK7sPBsZM9rQwse23aLhEEBPHZD5gkLrL",
"startTime": 1644240334,
"endTime": 1644240634
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"amount": "2000000000000000"
},
"id": 1
}
platform.getMinStake
Ana Ağı doğrulamak için gereken minimum CAM miktarını ve delege edilebilecek minimum CAM miktarını alır.
İmza
platform.getMinStake() ->
{
minValidatorStake : uint64,
minDelegatorStake : uint64
}
Örnek Çağrı
curl -X POST --data '{
"jsonrpc":"2.0",
"id" :1,
"method" :"platform.getMinStake"
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"minValidatorStake": "2000000000000",
"minDelegatorStake": "25000000000"
},
"id": 1
}
platform.getPendingValidators
Belirtilen Alt Ağın bekleyen doğrulayıcı setindeki doğrulayıcıları listeleyin. Her doğrulayıcı şu anda Alt Ağı doğrulamıyor ancak gelecekte doğrulayacaktır.
İmza
platform.getPendingValidators({
subnetID: string, //isteğe bağlı
nodeIDs: string[], //isteğe bağlı
}) -> {
validators: []{
txID: string,
startTime: string,
endTime: string,
stakeAmount: string, //isteğe bağlı
nodeID: string,
delegationFee: string,
connected: bool,
weight: string, //isteğe bağlı
},
delegators: []{
txID: string,
startTime: string,
endTime: string,
stakeAmount: string,
nodeID: string
}
}
subnetID
, mevcut doğrulayıcıların döndürüleceği alt ağdır. Atlandığında, Ana Ağın mevcut doğrulayıcıları döndürülür.nodeIDs
, istenen bekleyen doğrulayıcıların nodeID'lerinin bir listesidir. Atlandığında, tüm bekleyen doğrulayıcılar döndürülür. Belirtilen bir nodeID bekleyen doğrulayıcılar setinde yoksa, cevapta yer almaz.validators
:txID
, doğrulayıcı işlemidir.startTime
, doğrulayıcının Alt Ağı doğrulamaya başladığı Unix zamanıdır.endTime
, doğrulayıcının Alt Ağı doğrulamayı durdurduğu Unix zamanıdır.stakeAmount
, bu doğrulayıcının stake ettiği nCAM miktarıdır.subnetID
Ana Ağ değilse atlanır.nodeID
, doğrulayıcının node ID'sidir.connected
, eğer node bağlıysa.weight
, doğrulayıcının ağırlığıdır.subnetID
Ana Ağ değilse atlanır.
delegators
:txID
, delegatör işlemidir.startTime
, delegatörün başladığı Unix zamanıdır.endTime
, delegatörün durdurduğu Unix zamanıdır.stakeAmount
, bu delegatörün stake ettiği nCAM miktarıdır.subnetID
Ana Ağ değilse atlanır.nodeID
, doğrulayıcı node'un node ID'sidir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getPendingValidators",
"params": {},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"validators": [
{
"txID": "2NNkpYTGfTFLSGXJcHtVv6drwVU2cczhmjK2uhvwDyxwsjzZMm",
"startTime": "1600368632",
"endTime": "1602960455",
"stakeAmount": "200000000000",
"nodeID": "NodeID-5mb46qkSBj81k9g9e4VFjGGSbaaSLFRzD",
"delegationFee": "10.0000",
"connected": false
}
],
"delegators": [
{
"txID": "Bbai8nzGVcyn2VmeYcbS74zfjJLjDacGNVuzuvAQkHn1uWfoV",
"startTime": "1600368523",
"endTime": "1602960342",
"stakeAmount": "20000000000",
"nodeID": "NodeID-AK7sPBsZM9rQwse23aLhEEBPHZD5gkLrL"
}
]
},
"id": 1
}
platform.getRewardUTXOs
Belirtilen işlemin stake veya delegasyon döneminin sona ermesinin ardından ödüllendirilen UTXO'ları döndürür.
İmza
platform.getRewardUTXOs({
txID: string,
encoding: string //isteğe bağlı
}) -> {
numFetched: integer,
utxos: []string,
encoding: string
}
txID
, staking veya delegasyon işleminin kimliğidir.numFetched
, döndürülen UTXO sayısını belirtir.utxos
, kodlanmış ödül UTXO'larının dizisidir.encoding
, döndürülen UTXO'lar için formatı belirtir. "cb58" veya "hex" olabilir ve varsayılan olarak "cb58"dır.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getRewardUTXOs",
"params": {
"txID": "2nmH8LithVbdjaXsxVQCQfXtzN9hBbmebrsaEYnLM9T32Uy2Y5"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"numFetched": "2",
"utxos": [
"11Zf8cc55Qy1rVgy3t87MJVCSEu539whRSwpdbrtHS6oh5Hnwv1gz8G3BtLJ73MPspLkD83cygZufT4TPYZCmuxW5cRdPrVMbZAHfb6uyGM1jNGBhBiQAgQ6V1yceYf825g27TT6WU4bTdbniWdECDWdGdi84hdiqSJH2y",
"11Zf8cc55Qy1rVgy3t87MJVCSEu539whRSwpdbrtHS6oh5Hnwv1NjNhqZnievVs2kBD9qTrayBYRs81emGTtmnu2wzqpLstbAPJDdVjf3kjwGWywNCdjV6TPGojVR5vHpJhBVRtHTQXR9VP9MBdHXge8zEBsQJAoZhTbr2"
],
"encoding": "cb58"
},
"id": 1
}
platform.getStakingAssetID
Bir alt ağın staking varlığı için bir assetID'si alır. Şu anda yalnızca Ana Ağın staking assetID'sini döndürmektedir.
İmza
platform.getStakingAssetID({
subnetID: string //isteğe bağlı
}) -> {
assetID: string
}
subnetID
, varlık kimliğinin talep edildiği alt ağı belirtir.assetID
, bir alt ağın staking varlığı için assetID'dir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getStakingAssetID",
"params": {
"subnetID": "11111111111111111111111111111111LpoYY"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"assetID": "o8seyjX6WupqJ1CE8CeaozK13kqVgc4DFvdvc4crfacLFBauW"
},
"id": 1
}
platform.getSubnets
Alt ağlar hakkında bilgi alır.
İmza
platform.getSubnets(
{ids: []string}
) ->
{
subnets: []{
id: string,
controlKeys: []string,
threshold: string
}
}
ids
, bilgi almak için alt ağların kimlikleridir. Atlandığında, tüm alt ağlar hakkında bilgi alır.id
, Alt Ağın kimliğidir.threshold
,controlKeys
dizisindeki adreslerden doğrulayıcı eklemek için gereken imzalardır.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getSubnets",
"params": {"ids":["hW8Ma7dLMA7o4xmJf3AXBbo17bXzE7xnThUd3ypM4VAWo1sNJ"]},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"subnets": [
{
"id": "hW8Ma7dLMA7o4xmJf3AXBbo17bXzE7xnThUd3ypM4VAWo1sNJ",
"controlKeys": [
"KNjXsaA1sZsaKCD1cd85YXauDuxshTes2",
"Aiz4eEt5xv9t4NCnAWaQJFNz5ABqLtJkR"
],
"threshold": "2"
}
]
},
"id": 1
}
platform.getStake
Belirtilen adresler tarafından stake edilen nCAM miktarını alır. Döndürülen miktar stake ödüllerini içermez.
İmza
platform.getStake({addresses: []string}) -> {staked: int}
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getStake",
"params": {
"addresses": [
"P-everest1g3ea9z5kmkzwnxp8vr8rpjh6lqw4r0ufec460d",
"P-everest12un03rm579fewele99c4v53qnmymwu46dv3s5v"
]
},
"id": 1
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"staked": "5000000"
},
"id": 1
}
platform.getTimestamp
Mevcut P-Chain zaman damgasını alır.
İmza
platform.getTimestamp() -> {time: string}
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getTimestamp",
"params": {},
"id": 1
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"timestamp": "2021-09-07T00:00:00-04:00"
},
"id": 1
}
platform.getTotalStake
Ana Ağda stake edilen toplam nCAM miktarını alır.
İmza
platform.getTotalStake() -> {stake: int}
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getTotalStake",
"params": {},
"id": 1
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"stake": "279825917679866811"
},
"id": 1
}
platform.getTx
Bir işlemi kimliği ile getirir.
Dönüş işlemi için formatı belirtmek için isteğe bağlı encoding
parametresi. "cb58", "hex" veya "json" olabilir. Varsayılan "cb58"dır.
İmza
platform.getTx({
txID: string,
encoding: string //isteğe bağlı
}) -> {
tx: string,
encoding: string,
}
CB58 Örneği
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getTx",
"params": {
"txID":"2Eug3Y6j1yD745y5bQ9bFCf5nvU2qT1eB53GSpD15EkGUfu8xh",
"encoding": "cb58"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"tx": "111117ukQs6mcsKobtCH2jrVemXbPL2SgZTxJ4Lg7zazMjo4Kyyo33YNwnwhUJToHRk7zmCFXbL6BieJWpLch9Aa8opKr7qJeWPjSWhriX9TQLBt5jxq9ijX9JB3dwNG7MtY5KXS6EWF3w3tHBL5GTfL36F2b1PJfcWQQoTgeQWoe8MJXM27LGjnkhTMEzuNpTyrEcranPgXwdy9nNVZiLGMyYpzXbnmV2JUkGZXap8Ye3faWBwNg1La4aCXFKZ7ADMSiQUgqWYDMGZkDEg3yXNifSsBiAvqeCTx8kKp4B5W1vsgf3Tko2XW6A3SrkNVFVmbqCNjPKPpKeoSPnAC5Wmrb9zTMSZqYG9F6E7myow4o7tubbeDU3FC6fSws5ytQAnFseKUUT94jBGFGDD9pAuXExFwdwgRRUUS228ai4AZMqEF7KW5J9FhFQCUxMyprLxdPEUrjw3jW",
"encoding": "cb58"
},
"id": 1
}
JSON Örneği
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getTx",
"params": {
"txID":"2Eug3Y6j1yD745y5bQ9bFCf5nvU2qT1eB53GSpD15EkGUfu8xh",
"encoding": "json"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"tx": {
"unsignedTx": {
"inputs": {
"networkID": 5,
"blockchainID": "11111111111111111111111111111111LpoYY",
"outputs": [],
"inputs": [
{
"txID": "2QYG5yR6YW55ixmBvR4zXLCZKV9we9bmSWHHiGppF4Ko17bTPn",
"outputIndex": 0,
"assetID": "U8iRqJoiJm8xZHAacmvYyZVwqQx6uDNtQeP3CQ6fcgQk3JqnK",
"fxID": "spdxUxVJQbX85MGxMHbKw1sHxMnSqJ3QBzDyDYEP3h6TLuxqQ",
"input": {
"amount": 1998000000,
"signatureIndices": [0]
}
}
],
"memo": "0x"
},
"destinationChain": "yH8D7ThNJkxmtkuv2jgBa4P1Rn3Qpr4pPr7QYNfcdoS6k6HWp",
"exportedOutputs": [
{
"assetID": "U8iRqJoiJm8xZHAacmvYyZVwqQx6uDNtQeP3CQ6fcgQk3JqnK",
"fxID": "spdxUxVJQbX85MGxMHbKw1sHxMnSqJ3QBzDyDYEP3h6TLuxqQ",
"output": {
"addresses": [
"P-columbus1yhem6kev6gkfsyse3m5z09e6qsuxujz0arpw8v"
],
"amount": 1997000000,
"locktime": 0,
"threshold": 1
}
}
]
},
"credentials": [
{
"signatures": [
"0xdbc03ebd7d06927baacf7aea85cdebd7e0b95cf5b57715a09981fd5a75dac2cb610636bf3657ba4ca47dad4beed2e7f0ec692e7f12f1bbc9f3c34fc5c18ae35d01"
]
}
]
},
"encoding": "json"
},
"id": 1
}
platform.getTxStatus
Bir işlemin durumunu kimliği ile alır. Eğer işlem atıldıysa, yanıt bir reason
alanı içerecek ve işlemin neden atıldığını daha fazla bilgilendirecektir.
İmza
platform.getTxStatus({
txID: string
}) -> {status: string}
status
, aşağıdakilerden biri olabilir:
Committed
: İşlem her nodo tarafından kabul edilecek (veya kabul edildi) ise.Processing
: İşlem bu nodo tarafından oylanmakta.Dropped
: İşlem ağın hiçbir nodu tarafından kabul edilmeyecek, nedenini öğrenmek içinreason
alanını kontrol edin.Unknown
: İşlem bu nodo tarafından görülmedi.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getTxStatus",
"params": {
"txID":"TAG9Ns1sa723mZy1GSoGqWipK6Mvpaj7CAswVJGM6MkVJDF9Q"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"status": "Committed"
},
"id": 1
}
### platform.getUTXOs
Verilen adres kümesine referans veren UTXO'ları alır.
**Imza**
```sh
platform.getUTXOs(
{
addresses: []string,
limit: int, //isteğe bağlı
startIndex: { //isteğe bağlı
address: string,
utxo: string
},
sourceChain: string, //isteğe bağlı
encoding: string, //isteğe bağlı
},
) ->
{
numFetched: int,
utxos: []string,
endIndex: {
address: string,
utxo: string
},
encoding: string,
}
utxos
, her bir UTXO'nunaddresses
içinde en az bir adrese referans verdiği bir UTXO listesidir.En fazla
limit
kadar UTXO döner. Eğerlimit
verilmezse veya 1024'ten büyükse, 1024 olarak ayarlanır.Bu yöntem sayfalama destekler.
endIndex
, dönen son UTXO'yu belirtir. Bir sonraki UTXO kümesini almak için,endIndex
değerini bir sonraki çağrıdastartIndex
olarak kullanın.startIndex
verilmezse,limit
kadar tüm UTXO'lar alınır.Sayfalama kullanırken (yani
startIndex
sağlandığında), UTXO'ların birden fazla çağrı arasında benzersiz olacağı garanti edilmez. Yani, bir UTXO ilk çağrının sonucunda görünürken, ikinci çağrıda yine görünebilir.Sayfalama kullanırken, tutarlılık birden fazla çağrı arasında garanti edilmez. Yani, adreslerin UTXO seti çağrılar arasında değişebilir.
encoding
, dönen UTXO'lar için formatı belirtir. "cb58" veya "hex" olarak ayarlanabilir ve varsayılan olarak "cb58"dır.
Örnek
Diyelim ki P-columbus1s994jad0rtwvlfpkpyg2yau9nxt60qqfv023qx
ve P-columbus1fquvrjkj7ma5srtayfvx7kncu7um3ym73ztydr
adreslerinden en az birine referans veren tüm UTXO'ları almak istiyoruz.
curl -X POST --data '{
"jsonrpc":"2.0",
"id" :1,
"method" :"platform.getUTXOs",
"params" :{
"addresses":["P-columbus1s994jad0rtwvlfpkpyg2yau9nxt60qqfv023qx", "P-columbus1fquvrjkj7ma5srtayfvx7kncu7um3ym73ztydr"],
"limit":5,
"encoding": "cb58"
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P
Bu, aşağıdaki yanıtı verir:
{
"jsonrpc": "2.0",
"result": {
"numFetched": "5",
"utxos": [
"11PQ1sNw9tcXjVki7261souJnr1TPFrdVCu5JGZC7Shedq3a7xvnTXkBQ162qMYxoerMdwzCM2iM1wEQPwTxZbtkPASf2tWvddnsxPEYndVSxLv8PDFMwBGp6UoL35gd9MQW3UitpfmFsLnAUCSAZHWCgqft2iHKnKRQRz",
"11RCDVNLzFT8KmriEJN7W1in6vB2cPteTZHnwaQF6kt8B2UANfUkcroi8b8ZSEXJE74LzX1mmBvtU34K6VZPNAVxzF6KfEA8RbYT7xhraioTsHqxVr2DJhZHpR3wGWdjUnRrqSSeeKGE76HTiQQ8WXoABesvs8GkhVpXMK",
"11GxS4Kj2od4bocNWMQiQhcBEHsC3ZgBP6edTgYbGY7iiXgRVjPKQGkhX5zj4NC62ZdYR3sZAgp6nUc75RJKwcvBKm4MGjHvje7GvegYFCt4RmwRbFDDvbeMYusEnfVwvpYwQycXQdPFMe12z4SP4jXjnueernYbRtC4qL",
"11S1AL9rxocRf2NVzQkZ6bfaWxgCYch7Bp2mgzBT6f5ru3XEMiVZM6F8DufeaVvJZnvnHWtZqocoSRZPHT5GM6qqCmdbXuuqb44oqdSMRvLphzhircmMnUbNz4TjBxcChtks3ZiVFhdkCb7kBNLbBEmtuHcDxM7MkgPjHw",
"11Cn3i2T9SMArCmamYUBt5xhNEsrdRCYKQsANw3EqBkeThbQgAKxVJomfc2DE4ViYcPtz4tcEfja38nY7kQV7gGb3Fq5gxvbLdb4yZatwCZE7u4mrEXT3bNZy46ByU8A3JnT91uJmfrhHPV1M3NUHYbt6Q3mJ3bFM1KQjE"
],
"endIndex": {
"address": "P-columbus1fquvrjkj7ma5srtayfvx7kncu7um3ym73ztydr",
"utxo": "kbUThAUfmBXUmRgTpgD6r3nLj7rJUGho6xyht5nouNNypH45j"
},
"encoding": "cb58"
},
"id": 1
}
numFetched
değeri limit
ile aynı olduğu için, daha fazla UTXO olabileceğini anlarız. Yöntemi yeniden çağırarak, bu sefer startIndex
ile elde edelim:
curl -X POST --data '{
"jsonrpc": "2.0",
"id" :1,
"method" :"platform.getUTXOs",
"params" :{
"addresses":["P-columbus1fquvrjkj7ma5srtayfvx7kncu7um3ym73ztydr"],
"limit":5,
"startIndex": {
"address": "P-columbus1fquvrjkj7ma5srtayfvx7kncu7um3ym73ztydr",
"utxo": "kbUThAUfmBXUmRgTpgD6r3nLj7rJUGho6xyht5nouNNypH45j"
},
"encoding": "cb58"
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P
Bu, aşağıdaki yanıtı verir:
{
"jsonrpc": "2.0",
"result": {
"numFetched": "4",
"utxos": [
"115ZLnNqzCsyugMY5kbLnsyP2y4se4GJBbKHjyQnbPfRBitqLaxMizsaXbDMU61fHV2MDd7fGsDnkMzsTewULi94mcjk1bfvP7aHYUG2i3XELpV9guqsCtv7m3m3Kg4Ya1m6tAWqT7PhvAaW4D3fk8W1KnXu5JTWvYBqD2",
"11QASUuhw9M1r52maTFUZ4fnuQby9inX77VYxePQoNavEyCPuHN5cCWPQnwf8fMrydFXVMPAcS4UJAcLjSFskNEmtVPDMY4UyHwh2MChBju6Y7V8yYf3JBmYt767NPsdS3EqgufYJMowpud8fNyH1to4pAdd6A9CYbD8KG",
"11MHPUWT8CsdrtMWstYpFR3kobsvRrLB4W8tP9kDjhjgLkCJf9aaJQM832oPcvKBsRhCCxfKdWr2UWPztRCU9HEv4qXVwRhg9fknAXzY3a9rXXPk9HmArxMHLzGzRECkXpXb2dAeqaCsZ637MPMrJeWiovgeAG8c5dAw2q",
"11K9kKhFg75JJQUFJEGiTmbdFm7r1Uw5zsyDLDY1uVc8zo42WNbgcpscNQhyNqNPKrgtavqtRppQNXSEHnBQxEEh5KbAEcb8SxVZjSCqhNxME8UTrconBkTETSA23SjUSk8AkbTRrLz5BAqB6jo9195xNmM3WLWt7mLJ24"
],
"endIndex": {
"address": "P-columbus1fquvrjkj7ma5srtayfvx7kncu7um3ym73ztydr",
"utxo": "21jG2RfqyHUUgkTLe2tUp6ETGLriSDTW3th8JXFbPRNiSZ11jK"
},
"encoding": "cb58"
},
"id": 1
}
numFetched
değeri limit
'ten az olduğu için, UTXO'ları alma işleminin tamamlandığını ve bu yöntemi yeniden çağırmamıza gerek olmadığını anlarız.
Diyelim ki X Zincirinden P Zincirine aktarılmış UTXO'ları almak istiyoruz, bu durumda bir ImportTx oluşturmak için GetUTXOs
çağrısında sourceChain
argümanını kullanmamız gerekir:
curl -X POST --data '{
"jsonrpc": "2.0",
"id" :1,
"method" :"platform.getUTXOs",
"params" :{
"addresses":["P-columbus1fquvrjkj7ma5srtayfvx7kncu7um3ym73ztydr"],
"sourceChain": "X",
"encoding": "cb58"
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P
Bu, aşağıdaki yanıtı verir:
{
"jsonrpc": "2.0",
"result": {
"numFetched": "1",
"utxos": [
"115P1k9aSVFBfi9siZZz135jkrBCdEMZMbZ82JaLLuML37cgVMvGwefFXr2EaH2FML6mZuCehMLDdXSVE5aBwc8ePn8WqtZgDv9W641JZoLQhWY8fmvitiBLrc3Zd1aJPDxPouUVXFmLEbmcUnQxfw1Hyz1jpPbWSioowb"
],
"endIndex": {
"address": "P-columbus1fquvrjkj7ma5srtayfvx7kncu7um3ym73ztydr",
"utxo": "S5UKgWoVpoGFyxfisebmmRf8WqC7ZwcmYwS7XaDVZqoaFcCwK"
},
"encoding": "cb58"
},
"id": 1
}
platform.getValidatorsAt
Belirli bir P-Zincir yüksekliğinde bir alt ağın veya Ana Ağın doğrulayıcılarını ve ağırlıklarını alır.
Imza
platform.getValidatorsAt(
{
height: int,
subnetID: string, // isteğe bağlı
}
)
height
, doğrulayıcı kümesinin alınacağı P-Zincir yüksekliğidir.subnetID
, doğrulayıcı kümesinin alınacağı alt ağın ID'sidir. Verilmezse, Ana Ağın doğrulayıcı kümesi alınır.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getValidatorsAt",
"params": {
"height":1
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"validators": {
"NodeID-AK7sPBsZM9rQwse23aLhEEBPHZD5gkLrL": 2000000000000000,
"NodeID-5ZUdznHckQcqucAnNf3vzXnPF97tfRtfn": 2000000000000000,
"NodeID-D1LbWvUf9iaeEyUbTYYtYq4b7GaYR5tnJ": 2000000000000000,
"NodeID-PM2LqrGsxudhZSP49upMonevbQvnvAciv": 2000000000000000,
"NodeID-EoYFkbokZEukfWrUovo74YkTFnAMaqTG7": 2000000000000000
}
},
"id": 1
}
platform.importAVAX
X-Zincirinden P-Zincirine CAM transferini tamamlayın.
Bu yöntem çağrılmadan önce, X-Zincirinin yöntemini CAM
varlık kimliği ile çağırarak transferi başlatmalısınız.
Imza
platform.importAVAX(
{
from: []string, //isteğe bağlı
to: string,
changeAddr: string, //isteğe bağlı
username: string,
password: string
}
) ->
{
tx: string,
changeAddr: string
}
to
, CAM'in ithal edileceği adresin kimliğidir. Bu, X-Zincirininexport
çağrısındakito
argümanı ile aynı olmalıdır.from
, bu işlem için kullanmak istediğiniz adreslerdir. Verilmezse, ihtiyaç duyuldukça kullanıcıya ait herhangi bir adres kullanılır.changeAddr
, herhangi bir değişikliğin gönderileceği adresdir. Verilmezse, değişiklik kullanıcı tarafından kontrol edilen adreslerden birine gönderilir.username
,from
ve değişim adreslerini kontrol eden kullanıcıdır.password
,username
'in şifresidir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.importAVAX",
"params": {
"to": "P-columbus1apzq2zt0uaaatum3wdz83u4z7dv4st7l5m5n2a",
"from": ["P-columbus1gss39m5sx6jn7wlyzeqzm086yfq2l02xkvmecy"],
"changeAddr": "P-columbus103y30cxeulkjfe3kwfnpt432ylmnxux8r73r8u",
"username": "myUsername",
"password": "myPassword"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"txID": "P63NjowXaQJXt5cmspqdoD3VcuQdXUPM5eoZE2Vcg63aVEx8R",
"changeAddr": "P-columbus103y30cxeulkjfe3kwfnpt432ylmnxux8r73r8u"
},
"id": 1
}
platform.importKey
Bir adrese kontrol verme amacıyla, o adresi kontrol eden özel anahtarı sağlayın.
Imza
platform.importKey({
username: string,
password: string,
privateKey: string
}) -> {address: string}
privateKey
,username
'in özel anahtarlar setine eklenir.address
,username
in artık özel anahtarla kontrol ettiği adrestir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc":"2.0",
"id" :1,
"method" :"platform.importKey",
"params" :{
"username": "myUsername",
"password": "myPassword",
"privateKey": "PrivateKey-2w4XiXxPfQK4TypYqnohRL8DRNTz9cGiGmwQ1zmgEqD9c9KWLq"
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"address": "P-columbus19hwpvkx2p5q99w87dlpfhqpt3czyh8ywasfaym"
}
}
platform.issueTx
Platform Zincirine bir işlem talep edin.
Imza
platform.issueTx({
tx: string,
encoding: string, //isteğe bağlı
}) -> {txID: string}
tx
, bir işlemin byte temsildir.encoding
, işlem byte'ları için encoding formatını belirtir. "cb58" veya "hex" olarak ayarlanabilir. Varsayılan değer "cb58"dir.txID
, işlemin kimliğidir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.issueTx",
"params": {
"tx":"111Bit5JNASbJyTLrd2kWkYRoc96swEWoWdmEhuGAFK3rCAyTnTzomuFwgx1SCUdUE71KbtXPnqj93KGr3CeftpPN37kVyqBaAQ5xaDjr7wVBTUYi9iV7kYJnHF61yovViJF74mJJy7WWQKeRMDRTiPuii5gsd11gtNahCCsKbm9seJtk2h1wAPZn9M1eL84CGVPnLUiLP",
"encoding": "cb58"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"txID": "G3BuH6ytQ2averrLxJJugjWZHTRubzCrUZEXoheG5JMqL5ccY"
},
"id": 1
}
platform.listAddresses
Verilen kullanıcı tarafından kontrol edilen adresleri listeleyin.
Imza
platform.listAddresses({
username: string,
password: string
}) -> {addresses: []string}
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.listAddresses",
"params": {
"username":"myUsername",
"password":"myPassword"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"addresses": ["P-columbus1ffksh2m592yjzwfp2xmdxe3z4ushln9s09z5p0"]
},
"id": 1
}
platform.registerNode
Bir düğümü konsorsiyum üyesi adresi ile kaydedin. Böylece diğer yöntemlerde kullanılabilir. (ör: )
Imza
platform.registerNode(
{
oldNodeID: string,
newNodeID: string,
consortiumMemberAddress: string,
username: string,
password: string
}
) ->
{
txID: string,
changeAddr: string
}
oldNodeID
,oldNodeID
'dennewNodeID
'ye değiştirilecek olan düğüm kimliğidir. Eğer yoksa, aynı düğüm kimliği yeni olarak sağlanabilir.newNodeID
, adres ile kaydedilecek olan düğüm kimliğidir.consortiumMemberAddress
, konsorsiyum üyesinin adresidir.username
,camino-node
'un anahtar deposundaki kullanıcı adıdır.password
, anahtar deposundaki kullanıcının şifesidir.
Lütfen unutmayın ki bir Konsorsiyum Üyesi (adres), sadece bir NodeID
ile kaydedilebilir.
Lütfen, API düğümünüzün anahtar deposuna consortiumMemberAddress
ve newNodeID
'nin özel anahtarlarını içeri aktarmanız gerektiğini unutmayın. Bunun için bakınız.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.registerNode",
"params": {
"oldNodeID": "NodeID-D1LbWvUf9iaeEyUbTYYtYq4b7GaYR5tnJ",
"newNodeID": "NodeID-D1LbWvUf9iaeEyUbTYYtYq4b7GaYR5tnJ",
"consortiumMemberAddress": "P-kopernikus18jma8ppw3nhx5r4ap8clazz0dps7rv5uuvjh68",
"username": "username",
"password": "passw0rd"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"txID": "krj1ix5PEeHmd2C7son7uTDGMTr4DGFfCdzMdCbZfUstT3Fk2",
"changeAddr": "P-kopernikus1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqv3qzan"
},
"id": 1
}
platform.sampleValidators
Belirtilen Alt Ağdan örnek doğrulayıcıları alın.
Imza
platform.sampleValidators(
{
size: int,
subnetID: string, //isteğe bağlı
}
) ->
{
validators: []string
}
size
, örnek alınacak doğrulayıcı sayısını belirtir.subnetID
, örnek alınacak Alt Ağa karşılık gelir. Verilmezse, varsayılan olarak Ana Ağdır.validators
öğelerinin her biri, bir doğrulayıcının kimliğidir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc":"2.0",
"id" :1,
"method" :"platform.sampleValidators",
"params" :{
"size":2
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"validators": [
"NodeID-D1LbWvUf9iaeEyUbTYYtYq4b7GaYR5tnJ",
"NodeID-PM2LqrGsxudhZSP49upMonevbQvnvAciv"
]
}
}
platform.setAddressState
Bir Adres Durumu İşlemine sahiptir ve bir adrese durum atar.
Imza
platform.setAddressStateTx({
from: []string, //isteğe bağlı
changeAddr: string, //isteğe bağlı
username: string,
password: string,
address: string,
state: int,
remove: bool,
}) -> {
txID: string
}
from
, bu işlem için kullanmak istediğiniz adreslerdir. Verilmezse, ihtiyaç duyuldukça kullanıcıya ait herhangi bir adres kullanılır.changeAddr
, herhangi bir değişikliğin gönderileceği adresdir. Verilmezse, UTXO'nun sahibi değişmez.username
,from
imzalama anahtarlarının alındığı anahtar deposu kullanıcısıdır.password
,username
'in şifresidir.address
, durumunu değiştireceğiniz adrestir.state
, ayarlanacak veya kaldırılacak olan durumdur (bkz. remove).remove
, durumun ayarlanıp ayarlanmayacağını belirtir.
state
için olası değerler
AddressStateRoleAdmin = uint8(0)
AddressStateRoleKyc = uint8(1)
AddressStateKycVerified = uint8(32)
AddressStateKycExpired = uint8(33)
AddressStateConsortium = uint8(38)
AddressStateNodeDeferred = uint8(39)
Yalnızca AddressStateRoleAdmin
durumundaki imzacılar yeni rolleri verme/geri alma iznine sahiptir.
Yalnızca AddressStateRoleKyc
durumundaki imzacılar KYC durumu bayraklarını değiştirme iznine sahiptir.
Yalnızca AddressStateRoleValidator
durumundaki imzacılar Doğrulayıcı durumu bayraklarını değiştirme iznine sahiptir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc":"2.0",
"id" : 1,
"method" :"platform.setAddressState",
"params" :{
"from":["P-columbus1m8wnvtqvthsxxlrrsu3f43kf9wgch5tyfx4nmf"],
"username":"myUsername",
"password":"myPassword",
"address":"P-columbus1m8wnvtqvthsxxlrrsu3f43kf9wgch5tyfx4nmf",
"state": 1,
"remove": false
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"txID": "2Kz69TNBSeABuaVjKa6ZJCTLobbe5xo9c5eU8QwdUSvPo2dBk3"
},
"id": 1
}
platform.validatedBy
Verilen bir blok zincirini doğrulayan alt ağı alır.
Imza
platform.validatedBy(
{
blockchainID: string
}
) -> {subnetID: string}
blockchainID
, blok zincirinin kimliğidir.subnetID
, blok zincirini doğrulayan alt ağın kimliğidir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.validatedBy",
"params": {
"blockchainID": "KDYHHKjM4yTJTT8H8qPs5KXzE6gQH5TZrmP1qVr1P6qECj3XN"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"subnetID": "2bRCr6B4MiEfSjidDwxDpdCyviwnfUVqB2HGwhm947w9YYqb7r"
},
"id": 1
}
platform.validates
Bir Alt Ağın doğruladığı blok zincirlerinin kimliklerini alır.
Imza
platform.validates(
{
subnetID: string
}
) -> {blockchainIDs: []string}
subnetID
, alt ağın kimliğidir.blockchainIDs
öğelerinin her biri, Alt Ağın doğruladığı bir blok zincirinin kimliğidir.
Örnek Çağrı
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.validates",
"params": {
"subnetID":"2bRCr6B4MiEfSjidDwxDpdCyviwnfUVqB2HGwhm947w9YYqb7r"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
Örnek Yanıt
{
"jsonrpc": "2.0",
"result": {
"blockchainIDs": [
"KDYHHKjM4yTJTT8H8qPs5KXzE6gQH5TZrmP1qVr1P6qECj3XN",
"2TtHFqEAAJ6b33dromYMqfgavGPF3iCpdG3hwNMiart2aB5QHi"
]
},
"id": 1
}