olifanton/interop sebagai gantinya. Port php perpustakaan tonweb-boc js
composer require olifanton/boc Instal Paket olifanton/boc via Composer dan sertakan skrip 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 adalah kelas yang memungkinkan Anda memanipulasi data biner. BitString adalah jantung dari representasi PHP sel TVM. BitString adalah memori yang dioptimalkan untuk menyimpan data biner. Secara internal, Bitstring menggunakan implementasi Uint8Array yang disediakan oleh paket ajf/typed-arrays dan digunakan sebagai jenis dasar untuk mentransfer data biner antara bagian-bagian pustaka Olifanton.
Contoh bitstring dibuat dengan panjang yang sangat tetap. write% (writebit, writeUint, ...) Metode memindahkan kursor internal. Jika Anda mencoba menulis nilai yang melebihi panjang bit gratis, pengecualian BitStringException akan dilemparkan.
/**
* @param int $length
*/
public function __construct( int $ length )Parameter:
$length - Panjang UInt8Array. Nilai default untuk sel TVM: 1023 (dokumentasi) Mengembalikan bit yang tidak digunakan panjang bitstring.
Pengembalian bit yang digunakan panjang bitstring.
Pengembalian byte yang digunakan panjang bitstring.
/**
* @param int $n Position
*/
public function get( int $ n ): bool Mengembalikan nilai sedikit pada posisi $n .
/**
* @param int $n Position
*/
public function on( int $ n ): void Menetapkan nilai bit ke 1 pada posisi $n .
/**
* @param int $n Position
*/
public function off( int $ n ): void Menetapkan nilai bit ke 0 pada posisi $n .
/**
* @param int $n Position
*/
public function toggle( int $ n ): void Nilai bit sakelar (terbalik) pada posisi $n .
Mengembalikan generator bit yang digunakan.
Contoh:
<?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 ): voidMenulis sedikit dan meningkatkan kursor internal bitstring.
/**
* @param array<int | bool> $ba Array of bits
*/
public function writeBitArray( array $ ba ): voidMenulis serangkaian bit.
Contoh:
<?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 ): voidMenulis $ bitlength-bit integer unsigned.
/**
* @param int|BrickMathBigInteger $number Signed integer
* @param int $bitLength Integer size (8, 16, 32, ...)
*/
public function writeInt( int | BigInteger $ number , int $ bitLength ): voidMenulis $ bitlength-bit yang ditandatangani integer.
Alias of writeUint() Metode dengan nilai parameter $ bitlength yang telah ditentukan sebelumnya.
/**
* @param ajfTypedArraysUint8Array $ui8 Byte array
*/
public function writeBytes( Uint8Array $ ui8 ): voidTulis array bilangan bulat 8-bit yang tidak ditandatangani.
/**
* @param string $value
*/
public function writeString( string $ value ): voidMenulis string UTF-8.
/**
* @param int|BrickMathBigInteger $amount
*/
public function writeCoins( int | BigInteger $ amount ): void ;Menulis koin di nanotoncoin. 1 ton === 1000000000 (10^9) NanotonCoin.
/**
* @param OlifantonUtilsAddress|null $address TON Address
*/
public function writeAddress(? Address $ address ): voidMenulis alamat ton. Lihat Implementasi Alamat dalam paket Olifanton/Utils.
/**
* @param OlifantonBocBitString $anotherBitString BitString instance
*/
public function writeBitString( BitString $ anotherBitString ): voidMenulis bitstring lain untuk bitstring ini.
Klone bitstring ini dan mengembalikan instance bitstring baru.
Mengembalikan representasi string hex dari bitstring.
Mengembalikan salinan abadi UInt8Array internal.
Mengembalikan ukuran bitstring dalam bit.
OlifantonBocCell Cell adalah kelas yang mengimplementasikan konsep sel TVM dalam PHP. Untuk membuat pesan baru dan proses menerima dari blockchain, Anda akan bekerja dengan contoh kelas sel.
Tanpa parameter.
/**
* @param string|Uint8Array $serializedBoc Serialized BoC
* @return Cell[]
*/
public static function fromBoc( string | Uint8Array $ serializedBoc ): arrayMembuat array sel dari array byte atau string hex.
/**
* @param string|Uint8Array $serializedBoc Serialized BoC
* @param bool $isBase64 Base64-serialized flag, default false
*/
public static function oneFromBoc( string | Uint8Array $ serializedBoc , bool $ isBase64 = false ): CellAmbil satu sel akar dari array byte atau string hex.
/**
* @param Cell $anotherCell Another cell
* @return Cell This Cell
*/
public function writeCell( Cell $ anotherCell ): selfMenulis sel lain ke sel ini dan mengembalikan sel ini. Metode yang bisa berubah.
Mengembalikan kedalaman sel anak.
Mengembalikan contoh bitstring internal untuk menulis dan membaca.
Mengembalikan objek seperti array sel anak.
Mengembalikan hash sel-256 sel ini.
Cetak Konten Sel secara Rekursif seperti 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 ): Uint8ArrayMembuat array BOC BYTE.
OlifantonBocSlice Slice adalah jenis irisan sel. Sel dapat diubah menjadi irisan, dan kemudian bit data dan referensi ke sel lain dari sel dapat diperoleh dengan memuatnya dari irisan.
load% (loadbit, loaduint, ...) Metode Pindahkan kursor internal irisan. Jika Anda mencoba membaca nilai yang melebihi panjang bit gratis, pengecualian SliceException akan dilemparkan.
/**
* @param ajfTypedArraysUint8Array $array
* @param int $length
* @param OlifantonBocSlice[] $refs
*/
public function __construct( Uint8Array $ array , int $ length , array $ refs )Parameter:
$array - Uint8Array dari representasi sel sel$length - panjang bitstring$refs - Irisan sel anak Mengembalikan bit yang belum dibaca sesuai dengan kursor internal.
/**
* @param int $n
*/
public function get( int $ n ): bool Mengembalikan nilai bit pada posisi $n .
Membaca sedikit dan menggerakkan kursor.
/**
* @param int $bitLength
*/
public function loadBits( int $ bitLength ): Uint8ArrayMembaca array bit.
/**
* @param int $bitLength
*/
public function loadUint( int $ bitLength ): BigIntegerMembaca Integer yang tidak ditandatangani.
/**
* @param int $bitLength
*/
public function loadInt( int $ bitLength ): BigIntegerBacaan Integer yang ditandatangani.
/**
* @param int $bitLength
*/
public function loadVarUint( int $ bitLength ): BigInteger Membaca jumlah ton dalam nanotoncoin.
Membaca alamat.
Membaca Slice of Children Cell.
composer run testMit