diff --git a/monero/library.php b/monero/library.php new file mode 100644 index 0000000..54585e8 --- /dev/null +++ b/monero/library.php @@ -0,0 +1,155 @@ +ip = $ip; + $this->port = $port; + // I need to implement a sort of validating http or https + $this->url = $protocol.'://'.$ip.':'.$port.'/json_rpc'; + $this->client = new jsonRPCClient($this->url); + } + + /* + * Run a method or method + parameters + * @param $method Name of Method + */ + private function _run($method,$params = null) { + $result = $this->client->_run($method, $params); + return $result; + } + + private function _transform($amount){ + $new_amount = $amount * 100000000; + return $new_amount; + } + + /** + * Print json (for api) + * @return $json + */ + public function _print($json){ + $json_parsed = json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); + echo $json_parsed; + } + + /** + * Print Monero Address as JSON Array + */ + public function address(){ + $address = $this->_run('getaddress'); + return $address; + } + + /* + * Print Monero Balance as JSON Array + */ + public function getbalance(){ + $balance = $this->_run('getbalance'); + return $balance; + } + + /* + * Print Monero Height as JSON Array + */ + public function getheight(){ + $height = $this->_run('getheight'); + return $height; + } + + /* + * Incoming Transfer + * $type must be All + */ + public function incoming_transfer($type){ + $incoming_parameters = array('transfer_type' => $type); + $incoming_transfers = $this->_run('incoming_transfers', $incoming_parameters); + return $incoming_transfers; + } + + public function get_transfers($input_type, $input_value){ + $get_parameters = array($input_type => $input_value); + $get_transfers = $this->_run('get_transfers', $get_parameters); + return $get_transfers; + } + + public function view_key(){ + $query_key = array('key_type' => 'view_key'); + $query_key_method = $this->_run('query_key', $query_key); + return $query_key_method; + } + + /* A payment id can be passed as a string + A random payment id will be generatd if one is not given */ + public function make_integrated_address($payment_id){ + $integrate_address_parameters = array('payment_id' => $payment_id); + $integrate_address_method = $this->_run('make_integrated_address', $integrate_address_parameters); + return $integrate_address_method; + } + + public function split_integrated_address($integrated_address){ + if(!isset($integrated_address)){ + echo "Error: Integrated_Address mustn't be null"; + } + else{ + $split_params = array('integrated_address' => $integrated_address); + $split_methods = $this->_run('split_integrated_address', $split_params); + return $split_methods; + } + } + + public function make_uri($address, $amount, $recipient_name = null, $description = null){ + // If I pass 1, it will be 1 xmr. Then + $new_amount = $amount * 1000000000000; + + $uri_params = array('address' => $address, 'amount' => $new_amount, 'payment_id' => '', 'recipient_name' => $recipient_name, 'tx_description' => $description); + $uri = $this->_run('make_uri', $uri_params); + return $uri; + } + + + public function parse_uri($uri){ + $uri_parameters = array('uri' => $uri); + $parsed_uri = $this->_run('parse_uri', $uri_parameters); + return $parsed_uri; + } + + public function transfer($amount, $address, $mixin = 4){ + $new_amount = $amount * 1000000000000; + $destinations = array('amount' => $new_amount, 'address' => $address); + $transfer_parameters = array('destinations' => array($destinations), 'mixin' => $mixin, 'get_tx_key' => true, 'unlock_time' => 0, 'payment_id' => ''); + $transfer_method = $this->_run('transfer', $transfer_parameters); + return $transfer_method; + } + + public function get_payments($payment_id){ + $get_payments_parameters = array('payment_id' => $payment_id); + $get_payments = $this->_run('get_payments', $get_payments_parameters); + return $get_payments; + } + + public function get_bulk_payments($payment_id, $min_block_height){ + $get_bulk_payments_parameters = array('payment_id' => $payment_id, 'min_block_height' => $min_block_height); + $get_bulk_payments = $this->_run('get_bulk_payments', $get_bulk_payments_parameters); + return $get_bulk_payments; + } +}