public function getData()
    {
        if (isset($this->functions) || isset($this->constructor)) {
            $arguments = func_get_args();
            $functionData = '';

            if (empty($this->toAddress) && !empty($this->bytecode)) {
                $constructor = $this->constructor;

                if (count($arguments) < count($constructor['inputs'])) {
                    throw new InvalidArgumentException('Please make sure you have put all constructor params and callback.');
                }
                if (!isset($this->bytecode)) {
                    throw new \InvalidArgumentException('Please call bytecode($bytecode) before getData().');
                }
                $params = array_splice($arguments, 0, count($constructor['inputs']));
                $data = $this->ethabi->encodeParameters($constructor, $params);
                $functionData = $this->bytecode . Utils::stripZero($data);
            } else {
                $method = array_splice($arguments, 0, 1)[0];

                if (!is_string($method)) {
                    throw new InvalidArgumentException('Please make sure the method is string.');
                }
    
                $functions = [];
                foreach ($this->functions as $function) {
                    if ($function["name"] === $method) {
                        $functions[] = $function;
                    }
                };
                if (count($functions) < 1) {
                    throw new InvalidArgumentException('Please make sure the method exists.');
                }
    
                $params = $arguments;
                $data = "";
                $functionName = "";
                foreach ($functions as $function) {
                    if (count($arguments) !== count($function['inputs'])) {
                        continue;
                    }
                    try {
                        $data = $this->ethabi->encodeParameters($function, $params);
                        $functionName = Utils::jsonMethodToString($function);
                    } catch (InvalidArgumentException $e) {
                        continue;
                    }
                    break;
                }
                if (empty($data) || empty($functionName)) {
                    throw new InvalidArgumentException('Please make sure you have put all function params and callback.');
                }
                $functionSignature = $this->ethabi->encodeFunctionSignature($functionName);
                $functionData = Utils::stripZero($functionSignature) . Utils::stripZero($data);
            }
            return $functionData;
        }
    }
public function getData()
    {
        if (isset($this->functions) || isset($this->constructor)) {
            $arguments = func_get_args();
            $functionData = '';

            if (empty($this->toAddress) && !empty($this->bytecode)) {
                $constructor = $this->constructor;

                if (count($arguments) < count($constructor['inputs'])) {
                    throw new InvalidArgumentException('Please make sure you have put all constructor params and callback.');
                }
                if (!isset($this->bytecode)) {
                    throw new \InvalidArgumentException('Please call bytecode($bytecode) before getData().');
                }
                $params = array_splice($arguments, 0, count($constructor['inputs']));
                $data = $this->ethabi->encodeParameters($constructor, $params);
                $functionData = $this->bytecode . Utils::stripZero($data);
            } else {
                $method = array_splice($arguments, 0, 1)[0];

                if (!is_string($method)) {
                    throw new InvalidArgumentException('Please make sure the method is string.');
                }
    
                $functions = [];
                foreach ($this->functions as $function) {
                    if ($function["name"] === $method) {
                        $functions[] = $function;
                    }
                };
                if (count($functions) < 1) {
                    throw new InvalidArgumentException('Please make sure the method exists.');
                }
    
                $params = $arguments;
                $data = "";
                $functionName = "";
                foreach ($functions as $function) {
                    if (count($arguments) !== count($function['inputs'])) {
                        continue;
                    }
                    try {
                        $data = $this->ethabi->encodeParameters($function, $params);
                        $functionName = Utils::jsonMethodToString($function);
                    } catch (InvalidArgumentException $e) {
                        continue;
                    }
                    break;
                }
                if (empty($data) || empty($functionName)) {
                    throw new InvalidArgumentException('Please make sure you have put all function params and callback.');
                }
                $functionSignature = $this->ethabi->encodeFunctionSignature($functionName);
                $functionData = Utils::stripZero($functionSignature) . Utils::stripZero($data);
            }
            return $functionData;
        }
    }
public function getData ( ) { if ( isset ( $ this -> functions ) || isset ( $ this -> constructor ) ) { $ arguments = func_get_args ( ) ; $ functionData = '' ; if ( empty ( $ this -> toAddress ) && ! empty ( $ this -> bytecode ) ) { $ constructor = $ this -> constructor ; if ( count ( $ arguments ) < count ( $ constructor [ 'inputs' ] ) ) { throw new InvalidArgumentException ( 'Please make sure you have put all constructor params and callback.' ) ; } if ( ! isset ( $ this -> bytecode ) ) { throw new \ InvalidArgumentException ( 'Please call bytecode($bytecode) before getData().' ) ; } $ params = array_splice ( $ arguments , 0 , count ( $ constructor [ 'inputs' ] ) ) ; $ data = $ this -> ethabi -> encodeParameters ( $ constructor , $ params ) ; $ functionData = $ this -> bytecode . Utils :: stripZero ( $ data ) ; } else { $ method = array_splice ( $ arguments , 0 , 1 ) [ 0 ] ; if ( ! is_string ( $ method ) ) { throw new InvalidArgumentException ( 'Please make sure the method is string.' ) ; } $ functions = [ ] ; foreach ( $ this -> functions as $ function ) { if ( $ function [ "name" ] === $ method ) { $ functions [ ] = $ function ; } } ; if ( count ( $ functions ) < 1 ) { throw new InvalidArgumentException ( 'Please make sure the method exists.' ) ; } $ params = $ arguments ; $ data = "" ; $ functionName = "" ; foreach ( $ functions as $ function ) { if ( count ( $ arguments ) !== count ( $ function [ 'inputs' ] ) ) { continue ; } try { $ data = $ this -> ethabi -> encodeParameters ( $ function , $ params ) ; $ functionName = Utils :: jsonMethodToString ( $ function ) ; } catch ( InvalidArgumentException $ e ) { continue ; } break ; } if ( empty ( $ data ) || empty ( $ functionName ) ) { throw new InvalidArgumentException ( 'Please make sure you have put all function params and callback.' ) ; } $ functionSignature = $ this -> ethabi -> encodeFunctionSignature ( $ functionName ) ; $ functionData = Utils :: stripZero ( $ functionSignature ) . Utils :: stripZero ( $ data ) ; } return $ functionData ; } }
getData
Get the function method call data.
With this function, you can send signed contract function transaction.
1. Get the funtion data with params.
2. Sign the data with user private key.
3. Call sendRawTransaction.

@param mixed
@return void
getData Get the function method call data . With this function you can send signed contract function transaction . 1 . Get the funtion data with params . 2 . Sign the data with user private key . 3 . Call sendRawTransaction .