open-platform/open-wallet-php

Open Platform Wallet PHP Library

dev-main 2023-05-01 12:50 UTC

This package is not auto-updated.

Last update: 2024-04-14 11:36:27 UTC


README

PHP 5.6.0 and later.

Dependencies

Install OPEN Trust Wallet Library

STEP 1 - Clone repository

git clone https://github.com/OpenFuturePlatform/wallet-core.git

STEP 2 - Build Open Library

cd wallet-core/open-platform/core-cpp
cmake . -DWALLET_CORE=../../
make

STEP 3 - Copy Open Library

Copying shared library to "/usr/lib" allows use it from everywhere

sudo cp libOpenWallet.so /usr/lib
sudo chmod 0755 /usr/lib/libOpenWallet.so

STEP 4 - Install PHP-CPP Library

The PHP-CPP library is a C++ library for developing PHP extensions. https://github.com/CopernicaMarketingSoftware/PHP-CPP

cd wallet-core/open-platform/php/php-cpp
make
sudo make install

STEP 5 - Build OPEN PHP Extension

cd wallet-core/open-platform/php
make
sudo make install	

Getting Started

require_once('lib/OPEN.php');

$open = new OPEN();
$open->setApiKey("op_api_key");
$open->setSecretKey("op_api_secret");

Coin Types

0   -> BTC
60  -> ETH
144 -> XRP
195 -> TRX
354 -> DOT
501 -> SOL
714 -> BNB

Generate new blockchain wallet

$result = $open->generateWallet($coinType, $saveAddress);

Import blockchain wallet

$address = $open->importWallet($privateKey, $coinType);

Get Nonce value of address

$nonce = $open->getNonce($address, $network);

Sign transaction

$signedTransaction = $open->sign($privateKey, $address, $chainId, $gasPrice, $gasLimit, $amount, $nonce);

Broadcast transaction

$trxHash = $open->broadcast($signedTransaction, $coinType);

Encrypt data with password

$encryptedData = $open->encrypt($privateKey, $password);

Decrypt data with password

$decryptedData = $open->decrypt($data, $password);

Generate Wallet for User

$wallets = $open->generateUserWallet($userId, $webHookAddress, $coinTypes = array(), $isTest);

Import user Wallet

$wallets = $open->importUserWallet($userId, $webHookAddress, $isTest, $encryptedData, $address, $coinType, $metadata)

Generate Wallet for Order

$wallets = $open->generateOrderWallet($webHookAddress, $coinTypes = array(), $isTest, $orderId, $amount, $orderCurrency, $metadata);

Import Wallet for Order

$wallets = $open->importOrderWallet($webHookAddress, $orderId, $amount, $isTest, $orderCurrency, $encryptedData, $address, $coinType, $metadata);