Skip to content

Repository files navigation

ICONation logo

ICON SDK for PHP

License: MIT

This is an SDK to communicate with the ICON blockchain, built for PHP.

Disclaimer: I cannot guarantee optimal performance of this software. It is provided as is and without any assurances. Use it at your own risk.

Features

Fully or partially supports all Iconservice functions, IRC-2 tokens and IISS calls.

Requirements & Installation

Make sure you're using >=php7.2. Then check if you already have or install the required php extensions:

apt install php-curl php-xml php-gmp php-bcmath

Require the package in the composer.json file in your project:

composer require iconation/icon-sdk-php --no-dev

Testing

apt install php-mbstring
composer install
composer test

Usage

Iconservice:

  • icx_getLastBlock
useiconation\IconSDK\IconService\IconService;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$res = $iconservice->getLastBlock();
  • icx_getBlockByHeight
useiconation\IconSDK\IconService\IconService;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$res = $iconservice->getBlockByHeight('0x3');
  • icx_getBlockByHash
useiconation\IconSDK\IconService\IconService;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$res = $iconservice->getBlockByHash('0x123986e1c834632f6e65915c249d81cd01453ec915e3370d364d6df7be5e6c03');
  • icx_call
useiconation\IconSDK\IconService\IconService;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$score = "cx9ab3078e72c8d9017194d17b34b1a47b661945ca";
$params = newstdClass();
$params->method = "balanceOf";
$params->params = newstdClass();
$params->params->_owner = "hx70e8eeb5d23ab18a828ec95f769db6d953e5f0fd";
$res = $iconservice->call($score, $params);
  • icx_getBalance
useiconation\IconSDK\IconService\IconService;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$res = $iconservice->getBalance('hx70e8eeb5d23ab18a828ec95f769db6d953e5f0fd');
  • icx_getScoreApi
useiconation\IconSDK\IconService\IconService;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$score = "cx9ab3078e72c8d9017194d17b34b1a47b661945ca";
$res = $iconservice->getBalance($score);
  • icx_getTotalSupply
useiconation\IconSDK\IconService\IconService;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$res = $iconservice->getTotalSupply();
  • icx_getTransactionResult
useiconation\IconSDK\IconService\IconService;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$txHash = '0xb89690b7598e07c286db87f05c1ee4cfc1cf915bf061007ac3404a42dc4979e9';
$res = $iconservice->getTransactionResult($txHash);
  • icx_getTransactionByHash
useiconation\IconSDK\IconService\IconService;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$txHash = '0xb89690b7598e07c286db87f05c1ee4cfc1cf915bf061007ac3404a42dc4979e9';
$res = $iconservice->getTransactionByHash($txHash);
  • ise_getStatus
useiconation\IconSDK\IconService\IconService;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$keys = ['lastBlock'];
$res = $iconservice->getStatus($keys);
  • icx_sendTransaction
useiconation\IconSDK\IconService\IconService;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$private_key = "3468ea815d8896ef4552f10768caf2660689b965975c3ec2c1f5fe84bc3a77a5"; //Sender's private key$from = "hx8dc6ae3d93e60a2dddf80bfc5fb1cd16a2bf6160";
$to = "hxf8689d6c4c8f333651469fdea2ac59a18f6c242d";
$value = "0x2386f26fc10000"; // = 0.01 ICX$res = $iconservice->send($from, $to, $value, $private_key);
  • message
useiconation\IconSDK\IconService\IconService;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$private_key = "3468ea815d8896ef4552f10768caf2660689b965975c3ec2c1f5fe84bc3a77a5"; //Sender's private key$from = "hx8dc6ae3d93e60a2dddf80bfc5fb1cd16a2bf6160";
$to = "hxf8689d6c4c8f333651469fdea2ac59a18f6c242d";
$message = "Your message goes here"; // = 0.01 ICX$res = $iconservice->message($from, $to, $private_key, $message);

IRC-2:

  • name
useiconation\IconSDK\IconService\IconService;
useiconation\IconSDK\IconService\IRC2;
$contract = 'cx8901ee4f6df58bd437de0e66c9dd3385ba4c2328';
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$irc2 = newIRC2($contract, $iconservice);
$res = $irc2->name();
  • symbol
useiconation\IconSDK\IconService\IconService;
useiconation\IconSDK\IconService\IRC2;
$contract = 'cx8901ee4f6df58bd437de0e66c9dd3385ba4c2328';
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$irc2 = newIRC2($contract, $iconservice);
$res = $irc2->symbol();
  • decimals
useiconation\IconSDK\IconService\IconService;
useiconation\IconSDK\IconService\IRC2;
$contract = 'cx8901ee4f6df58bd437de0e66c9dd3385ba4c2328';
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$irc2 = newIRC2($contract, $iconservice);
$res = $irc2->decimals();
  • totalSupply
useiconation\IconSDK\IconService\IconService;
useiconation\IconSDK\IconService\IRC2;
$contract = 'cx8901ee4f6df58bd437de0e66c9dd3385ba4c2328';
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$irc2 = newIRC2($contract, $iconservice);
$res = $irc2->totalSupply();
  • balanceOf
useiconation\IconSDK\IconService\IconService;
useiconation\IconSDK\IconService\IRC2;
$contract = 'cx8901ee4f6df58bd437de0e66c9dd3385ba4c2328';
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$irc2 = newIRC2($contract, $iconservice);
$account = 'hx8dc6ae3d93e60a2dddf80bfc5fb1cd16a2bf6160';
$res = $irc2->balanceOf($account);
  • transfer
useiconation\IconSDK\IconService\IconService;
useiconation\IconSDK\IconService\IRC2;
$contract = 'cx8901ee4f6df58bd437de0e66c9dd3385ba4c2328';
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$irc2 = newIRC2($contract, $iconservice);
$from = 'hx8dc6ae3d93e60a2dddf80bfc5fb1cd16a2bf6160';
$to = 'hxf8689d6c4c8f333651469fdea2ac59a18f6c242d';
$value = '1';
$privateKey = '3468ea815d8896ef4552f10768caf2660689b965975c3ec2c1f5fe84bc3a77a5';
$res = $irc2->transfer($from, $to, $value, $privateKey);

IISS:

  • setStake
useiconation\IconSDK\IconService\IconService;
useiconation\IconSDK\IISS\IISS;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$iiss = newIISS($iconservice);
$value = 0.5; //Stake 0.5 ICX$from = "hx8dc6ae3d93e60a2dddf80bfc5fb1cd16a2bf6160";
$private_key = "3468ea815d8896ef4552f10768caf2660689b965975c3ec2c1f5fe84bc3a77a5"; //Staker's private key$res = $iiss->setStake($value, $from, $private_key);
  • getStake
useiconation\IconSDK\IconService\IconService;
useiconation\IconSDK\IISS\IISS;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$iiss = newIISS($iconservice);
$address = "hx8dc6ae3d93e60a2dddf80bfc5fb1cd16a2bf6160";
$res = $iiss->getStake($address);
  • setDelegation
useiconation\IconSDK\IconService\IconService;
useiconation\IconSDK\IISS\IISS;
useiconation\IconSDK\IISS\Delegation;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$iiss = newIISS($iconservice);
$delegation1 = newDelegation("hxec79e9c1c882632688f8c8f9a07832bcabe8be8f", "0x2c68af0bb140000");
$delegation1 = $delegation1->getDelegationObject();
$delegation2 = newDelegation("hxd3be921dfe193cd49ed7494a53743044e3376cd3", "0x2c68af0bb140000");
$delegation2 = $delegation2->getDelegationObject();
$delegations = array(
$delegation1, $delegation2
);
$private_key = "3468ea815d8896ef4552f10768caf2660689b965975c3ec2c1f5fe84bc3a77a5"; //Staker's private key$from = "hx8dc6ae3d93e60a2dddf80bfc5fb1cd16a2bf6160";
$res = $iiss->setDelegation($delegations, $from, $private_key);
  • getDelegation
useiconation\IconSDK\IconService\IconService;
useiconation\IconSDK\IISS\IISS;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$iiss = newIISS($iconservice);
$address = "hx8dc6ae3d93e60a2dddf80bfc5fb1cd16a2bf6160";
$res = $iiss->getDelegation($address);
  • claimIScore
useiconation\IconSDK\IconService\IconService;
useiconation\IconSDK\IISS\IISS;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$iiss = newIISS($iconservice);
$private_key = "3468ea815d8896ef4552f10768caf2660689b965975c3ec2c1f5fe84bc3a77a5"; //Staker's private key$from = "hx8dc6ae3d93e60a2dddf80bfc5fb1cd16a2bf6160";
$res = $iiss->claimIScore($from, $private_key);
  • queryIScore
useiconation\IconSDK\IconService\IconService;
useiconation\IconSDK\IISS\IISS;
$iconservice = newIconService('https://ctz.solidwallet.io/api/v3');
$iiss = newIISS($iconservice);
$address = "hx8dc6ae3d93e60a2dddf80bfc5fb1cd16a2bf6160";
$res = $iiss->queryIScore($address);

About

ICON SDK for PHP (Unofficial)

Topics

Resources

Security policy

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages