2017 © Pedro PelĂĄez
 

library node

Ethereum secp256k1 library in PHP

image

primas/node

Ethereum secp256k1 library in PHP

  • Wednesday, August 1, 2018
  • by primas
  • Repository
  • 1 Watchers
  • 1 Stars
  • 0 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

Primas SDK of PHP (v3)

Rely

Sign with a signature machine, (*1)

 "php": ">=7.0",
 "ext-gmp": "*",
 "guzzlehttp/guzzle": "~6.0"

Sign with the keystore, (*2)

 "php-64bit": ">=7.0",
 "ext-gmp": "*",
 "ext-scrypt": "~1.4",
 "ext-secp256k1": ">=0.1.0",
 "ext-keccak": "~0.2",
 "guzzlehttp/guzzle": "~6.0",
 "bitwasp/buffertools": "^0.5.0"

Install

  • 1、Use Git to clone the entire repository in the root folder, or export a zip of the repository and extract locally.
  • 2、composer require primas/node

Quick Start

  • Note: the API configuration needs to be initialized before using the API method
  • If you need a large integer, use it as a string

Example, (*3)

create root account * Remember to save the root account id, (*4)


$config = [ "http_options" => [ "base_uri" => "https://staging.primas.io" // testnet ] ]; $app = \Primas\Factory::account($config); // Sign with the keystore // Import the keystore $keystore = '{"version":3,"id":"e1a1909a-7a38-44aa-af04-61cd3a342008","address":"d75407ad8cabeeebfed78c4f3794208b3339fbf4","Crypto":{"ciphertext":"bcf8d3037432f731d3dbb0fde1b32be47faa202936c303ece7f53890a79f49d2","cipherparams":{"iv":"e28edaeff90032f24481c6117e593e01"},"cipher":"aes-128-ctr","kdf":"scrypt","kdfparams":{"dklen":32,"salt":"7d7c824367d7f6607128c721d6e1729abf706a3165384bbfc2aae80510ec0ce2","n":1024,"r":8,"p":1},"mac":"52f98caaa4959448ec612e4314146b6a2d5022d5394b77e31f5a79780079c22f"}}'; $password = "Test123:::"; \Primas\Kernel\Eth\Keystore::init($keyStore, $password); $parameters = [ "name" => "Test123", "abstract" => "first test", "created" => time(), "address" => (string)\Primas\Kernel\Eth\Keystore::getAddress(); ]; $metadataJson = $app->buildCreateAccount($parameters); $signature = $app->sign($metadataJson); $metadata = $app->setSignature($metadataJson, $signature); $res = $account->createAccount($metadata); // ...... // Sign with a signature machine $parameters = [ "name" => "Test123", "abstract" => "first test", "created" => time(), "address" => "0xd75407ad8cabeeebfed78c4f3794208"; ]; $metadataJson = $app->buildCreateAccount($parameters); // TODO request signature machine get signature // If it is asynchronous, save the correspondence between the signature result and the application. $signature="your signature from your signature machine"; $metadata = $app->setSignature($metadataJson, $signature); $res = $account->createAccount($metadata); var_dump($res); // save the root account id // save the root account id // save the root account id // result /* array(3) { ["result_code"]=> int(0) ["result_msg"]=> string(7) "success" ["data"]=> array(2) { ["id"]=> string(64) "e19aa9a8cdc217c345925b7e824baea0ef6dab0e11117dfd2746be469b412724" ["dna"]=> string(64) "4659b4848c8e9e3ec60c94ded2cc58a35419411f58ff27dc51f116bb05577eb9" } } */

Factory

1、static method


/** * Class Factory * * @method static \Primas\Account\Application account(array $config) * @method static \Primas\Content\Application content(array $config) * @method static \Primas\ContentInteraction\Application content_interaction(array $config) * @method static \Primas\Group\Application group(array $config) * @method static \Primas\Node\Application node(array $config) * @method static \Primas\Query\Application query(array $config) * @method static \Primas\System\Application system(array $config) * @method static \Primas\TimeLine\Application time_line(array $config) * @method static \Primas\Token\Application token(array $config) * * @package Primas */ class Factory { ... }

2、config introduce

  • An array type

$config = [ /* * refer guzzle http document http://guzzle.readthedocs.io/en/stable/request-options.html */ "http_options" => [ "base_uri" => BASE_URI, // default https://rigel-a.primas.network "headers" => [ /* * default application/json * when Content-Type is multipart/form-data,if you want to post a file,the file field should be a file path like "F:/tmp/test.png" or an object instance CURLFile */ "Content-Type" => "application/json" // // ... ], ], /* * root account id */ "account_id" => $account_id ];

API List

Error Code and Troubleshooting

result_code result_msg description
0 success Success
400 client error Client error
401 invalid data Invalid post data
402 parse input JSON format error Invalid JSON string
403 client signature error Signature verification failed
404 input parameter error Invalid parameter
405 input parameter empty Empty parameter
406 nonce less than lasted Nonce is used before
500 server error Server error

The Versions

01/08 2018

dev-master

9999999-dev

Ethereum secp256k1 library in PHP

  Sources   Download

MIT

The Requires

 

by Avatar xiongchao

php bitcoin ecdsa secp256k1 node cryptocurrency ecc bitwasp primas

01/08 2018

v0.1

0.1.0.0

Ethereum secp256k1 library in PHP

  Sources   Download

MIT

The Requires

 

by Avatar xiongchao

php bitcoin ecdsa secp256k1 node cryptocurrency ecc bitwasp primas