olifanton/interopを使用してください。 tonweb-boc JSライブラリのPHPポート
composer require olifanton/bocComposerを介してolifanton/bocパッケージをインストールし、Autoloadスクリプトを含めます。
<?php declare (strict_types= 1 );
require __DIR__ . " /vendor/autoload.php " ;
use Olifanton Boc BitString ;
use Olifanton Boc Cell ;
// Now you can use BoC classesOlifantonBocBitString BitStringは、バイナリデータを操作できるクラスです。 BitString 、TVMセルのPHP表現の中心にあります。 BitString 、バイナリデータの保存用に最適化されたメモリです。内部的には、BitStringはajf/typed-arraysパッケージが提供するUint8Arrayの実装を使用し、Olifantonライブラリの一部間でバイナリデータを転送するためのベースタイプとして使用されます。
ビットストリングインスタンスは、厳密に固定された長さで作成されます。 write% (writebit、writeuint、...)メソッドは内部カーソルを移動します。フリービットの長さを超える値を作成しようとすると、 BitStringException例外がスローされます。
/**
* @param int $length
*/
public function __construct( int $ length )パラメーター:
$length - UINT8ARRAYの長さ。 TVMセルのデフォルト値: 1023 (ドキュメント) ビットストリングの未使用のビットの長さを返します。
ビットストリングのビットの長さを返すことができます。
ビットストリングの長さを使用して使用されたリターン。
/**
* @param int $n Position
*/
public function get( int $ n ): bool $nポジションで少し値を返します。
/**
* @param int $n Position
*/
public function on( int $ n ): void位置$nで1に少し値を設定します。
/**
* @param int $n Position
*/
public function off( int $ n ): void位置$nでビット値を0に設定します。
/**
* @param int $n Position
*/
public function toggle( int $ n ): void位置$nでのトグル(逆)ビット値。
使用済みビットのジェネレーターを返します。
例:
<?php declare (strict_types= 1 );
use Olifanton Boc BitString ;
$ bs = new BitString ( 4 );
$ bs -> writeBit ( 1 );
$ bs -> writeBit ( 0 );
$ bs -> writeBit ( 1 );
$ bs -> writeBit ( 1 );
foreach ( $ bs -> iterate () as $ b ) {
echo ( int ) $ b ;
}
// Prints "1011" /**
* @param int|bool $b
*/
public function writeBit( int | bool $ b ): voidビットを書き、ビットストリング内部カーソルを増やします。
/**
* @param array<int | bool> $ba Array of bits
*/
public function writeBitArray( array $ ba ): voidビットの配列を書きます。
例:
<?php declare (strict_types= 1 );
use Olifanton Boc BitString ;
$ bs = new BitString ( 4 );
$ bs -> writeBitArray ([ 1 , false , 0 , true ]);
foreach ( $ bs -> iterate () as $ b ) {
echo ( int ) $ b ;
}
// Prints "1001" /**
* @param int|BrickMathBigInteger $number Unsigned integer
* @param int $bitLength Integer size (8, 16, 32, ...)
*/
public function writeUint( int | BigInteger $ number , int $ bitLength ): void$ BitLength-Bit Unsigned Integerを書き込みます。
/**
* @param int|BrickMathBigInteger $number Signed integer
* @param int $bitLength Integer size (8, 16, 32, ...)
*/
public function writeInt( int | BigInteger $ number , int $ bitLength ): void$ BitLength-Bit Signed Integerを書き込みます。
事前定義された$ BitLengthパラメーター値を使用したwriteUint()メソッドのエイリアス。
/**
* @param ajfTypedArraysUint8Array $ui8 Byte array
*/
public function writeBytes( Uint8Array $ ui8 ): void署名されていない8ビット整数の配列を書きます。
/**
* @param string $value
*/
public function writeString( string $ value ): voidUTF-8文字列を書き込みます。
/**
* @param int|BrickMathBigInteger $amount
*/
public function writeCoins( int | BigInteger $ amount ): void ;ナノトンコインにコインを書いています。 1トン=== 1000000000(10^9)ナノトンコイン。
/**
* @param OlifantonUtilsAddress|null $address TON Address
*/
public function writeAddress(? Address $ address ): voidトンアドレスを書き込みます。 Olifanton/Utilsパッケージのアドレス実装を参照してください。
/**
* @param OlifantonBocBitString $anotherBitString BitString instance
*/
public function writeBitString( BitString $ anotherBitString ): voidこのビットストリングに別のビットストリングを書いています。
このビットストリングをクローンし、新しいビットストリングインスタンスを返します。
ビットストリングのヘックスストリング表現を返します。
内部uint8arrayの不変のコピーを返します。
ビットストリングのサイズをビットで返します。
OlifantonBocCell Cell 、PHPでTVMセルの概念を実装するクラスです。ブロックチェーンから受信した新しいプロセスメッセージを作成するには、セルクラスのインスタンスを使用します。
パラメーターなし。
/**
* @param string|Uint8Array $serializedBoc Serialized BoC
* @return Cell[]
*/
public static function fromBoc( string | Uint8Array $ serializedBoc ): arrayバイトアレイまたはヘックスストリングからセルの配列を作成します。
/**
* @param string|Uint8Array $serializedBoc Serialized BoC
* @param bool $isBase64 Base64-serialized flag, default false
*/
public static function oneFromBoc( string | Uint8Array $ serializedBoc , bool $ isBase64 = false ): Cellバイトアレイまたはヘックスストリングから1つのルートセルを取得します。
/**
* @param Cell $anotherCell Another cell
* @return Cell This Cell
*/
public function writeCell( Cell $ anotherCell ): selfこのセルに別のセルを書き込み、このセルを返します。可変メソッド。
子細胞の最大深度を返します。
執筆と読書のために内部ビットストリングインスタンスを返します。
子供細胞のアレイのようなオブジェクトを返します。
このセルのSHA-256ハッシュを返します。
Fiftのようなセルのコンテンツを再帰的に印刷します。
/**
* @param bool $has_idx Default _true_
* @param bool $hash_crc32 Default _true_
* @param bool $has_cache_bits Default _false_
* @param int $flags Default _0_
*/
public function toBoc( bool $ has_idx = true ,
bool $ hash_crc32 = true ,
bool $ has_cache_bits = false ,
int $ flags = 0 ): Uint8ArrayBOCバイト配列を作成します。
OlifantonBocSlice Sliceはセルスライスのタイプです。セルはスライスに変換でき、次に、セルからのデータビットと他のセルへの参照をスライスからロードすることで得ることができます。
load% (Loadbit、Loaduint、...)メソッドは、スライス内部カーソルを移動します。フリービットの長さを超える値を読み取ろうとすると、 SliceException例外がスローされます。
/**
* @param ajfTypedArraysUint8Array $array
* @param int $length
* @param OlifantonBocSlice[] $refs
*/
public function __construct( Uint8Array $ array , int $ length , array $ refs )パラメーター:
$array - セルのビットストリング表現からのuint8array$length - ビットストリングの長さ$refs - 子供細胞のスライス内部カーソルに従って未読ビットを返します。
/**
* @param int $n
*/
public function get( int $ n ): bool位置$nで少し値を返します。
少し読み、カーソルを動かします。
/**
* @param int $bitLength
*/
public function loadBits( int $ bitLength ): Uint8Arrayビット配列を読み取ります。
/**
* @param int $bitLength
*/
public function loadUint( int $ bitLength ): BigInteger署名されていない整数を読み取ります。
/**
* @param int $bitLength
*/
public function loadInt( int $ bitLength ): BigInteger署名された整数を読み取ります。
/**
* @param int $bitLength
*/
public function loadVarUint( int $ bitLength ): BigInteger Nanotoncoinsでトン量を読み取ります。
アドレスを読み取ります。
子供セルのスライスを読みます。
composer run testmit