Skip to content

Commit cacb98c

Browse files
committed
Add BOC load support, fix cell hashes
Signed-off-by: andreypfau <[email protected]>
1 parent 3622c49 commit cacb98c

File tree

14 files changed

+948
-155
lines changed

14 files changed

+948
-155
lines changed

bitstring/api/ton-sdk-bitstring.api

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public abstract interface class org/ton/sdk/bitstring/BitSource {
5252

5353
public final class org/ton/sdk/bitstring/BitString : java/lang/Comparable {
5454
public static final field Companion Lorg/ton/sdk/bitstring/BitString$Companion;
55+
public static final field EMPTY Lorg/ton/sdk/bitstring/BitString;
5556
public fun <init> (Ljava/lang/String;)V
5657
public fun <init> ([B)V
5758
public fun <init> ([BI)V

bitstring/api/ton-sdk-bitstring.klib.api

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,10 @@ final class org.ton.sdk.bitstring/BitString : kotlin/Comparable<org.ton.sdk.bits
7070
final fun toByteArray(): kotlin/ByteArray // org.ton.sdk.bitstring/BitString.toByteArray|toByteArray(){}[0]
7171
final fun toString(): kotlin/String // org.ton.sdk.bitstring/BitString.toString|toString(){}[0]
7272

73-
final object Companion // org.ton.sdk.bitstring/BitString.Companion|null[0]
73+
final object Companion { // org.ton.sdk.bitstring/BitString.Companion|null[0]
74+
final val EMPTY // org.ton.sdk.bitstring/BitString.Companion.EMPTY|{}EMPTY[0]
75+
final fun <get-EMPTY>(): org.ton.sdk.bitstring/BitString // org.ton.sdk.bitstring/BitString.Companion.EMPTY.<get-EMPTY>|<get-EMPTY>(){}[0]
76+
}
7477
}
7578

7679
final class org.ton.sdk.bitstring/BitStringBuilder : org.ton.sdk.bitstring/BitSink { // org.ton.sdk.bitstring/BitStringBuilder|null[0]

bitstring/src/BitString.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import org.ton.sdk.bitstring.internal.bitsCompare
44
import org.ton.sdk.bitstring.internal.bitsCopy
55
import org.ton.sdk.bitstring.internal.bitsParseHex
66
import org.ton.sdk.bitstring.internal.bitsToHex
7+
import kotlin.jvm.JvmField
78
import kotlin.math.min
89

910
private val KEEP_MASK = intArrayOf(0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE)
@@ -125,6 +126,7 @@ public class BitString internal constructor(
125126
internal fun getBackingArrayReference(): ByteArray = data
126127

127128
public companion object {
129+
@JvmField
128130
public val EMPTY: BitString = BitString(ByteArray(0), 0, 0)
129131
}
130132
}

cell/api/ton-sdk-cell.api

Lines changed: 77 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public abstract interface class org/ton/sdk/cell/Cell {
1414
public fun isEmpty ()Z
1515
public fun isExotic ()Z
1616
public abstract fun virtualize (I)Lorg/ton/sdk/cell/Cell;
17+
public static synthetic fun virtualize$default (Lorg/ton/sdk/cell/Cell;IILjava/lang/Object;)Lorg/ton/sdk/cell/Cell;
1718
}
1819

1920
public final class org/ton/sdk/cell/Cell$Companion {
@@ -22,12 +23,15 @@ public final class org/ton/sdk/cell/Cell$Companion {
2223
}
2324

2425
public final class org/ton/sdk/cell/CellBuilder {
26+
public static final field Companion Lorg/ton/sdk/cell/CellBuilder$Companion;
2527
public fun <init> ()V
2628
public final fun append (Lorg/ton/sdk/cell/CellBuilder;)Lorg/ton/sdk/cell/CellBuilder;
2729
public final fun build ()Lorg/ton/sdk/cell/Cell;
2830
public final fun build (Lorg/ton/sdk/cell/CellContext;Z)Lorg/ton/sdk/cell/Cell;
2931
public final fun build (Z)Lorg/ton/sdk/cell/Cell;
3032
public static synthetic fun build$default (Lorg/ton/sdk/cell/CellBuilder;Lorg/ton/sdk/cell/CellContext;ZILjava/lang/Object;)Lorg/ton/sdk/cell/Cell;
33+
public static final fun createPrunedBranch (Lorg/ton/sdk/cell/Cell;I)Lorg/ton/sdk/cell/Cell;
34+
public static final fun createPrunedBranch (Lorg/ton/sdk/cell/Cell;ILorg/ton/sdk/cell/CellContext;)Lorg/ton/sdk/cell/Cell;
3135
public final fun getBits ()I
3236
public final fun getBitsRemaining ()I
3337
public final fun getRefs ()I
@@ -51,6 +55,12 @@ public final class org/ton/sdk/cell/CellBuilder {
5155
public static synthetic fun storeULong$default (Lorg/ton/sdk/cell/CellBuilder;JIILjava/lang/Object;)Lorg/ton/sdk/cell/CellBuilder;
5256
}
5357

58+
public final class org/ton/sdk/cell/CellBuilder$Companion {
59+
public final fun createPrunedBranch (Lorg/ton/sdk/cell/Cell;I)Lorg/ton/sdk/cell/Cell;
60+
public final fun createPrunedBranch (Lorg/ton/sdk/cell/Cell;ILorg/ton/sdk/cell/CellContext;)Lorg/ton/sdk/cell/Cell;
61+
public static synthetic fun createPrunedBranch$default (Lorg/ton/sdk/cell/CellBuilder$Companion;Lorg/ton/sdk/cell/Cell;ILorg/ton/sdk/cell/CellContext;ILjava/lang/Object;)Lorg/ton/sdk/cell/Cell;
62+
}
63+
5464
public final class org/ton/sdk/cell/CellBuilderKt {
5565
public static final fun plus (Lorg/ton/sdk/cell/CellBuilder;Lorg/ton/sdk/cell/CellBuilder;)Lorg/ton/sdk/cell/CellBuilder;
5666
public static final fun plusAssign (Lorg/ton/sdk/cell/CellBuilder;Lorg/ton/sdk/cell/CellBuilder;)V
@@ -126,13 +136,14 @@ public final class org/ton/sdk/cell/CellType : java/lang/Enum {
126136
public static fun values ()[Lorg/ton/sdk/cell/CellType;
127137
}
128138

129-
public final class org/ton/sdk/cell/LevelMask {
139+
public final class org/ton/sdk/cell/LevelMask : java/lang/Iterable, kotlin/jvm/internal/markers/KMappedMarker {
130140
public static final field Companion Lorg/ton/sdk/cell/LevelMask$Companion;
131141
public static final field MAX_LEVEL I
132142
public fun <init> ()V
133143
public fun <init> (I)V
134144
public synthetic fun <init> (IILkotlin/jvm/internal/DefaultConstructorMarker;)V
135145
public final fun apply (I)Lorg/ton/sdk/cell/LevelMask;
146+
public final fun contains (I)Z
136147
public fun equals (Ljava/lang/Object;)Z
137148
public static final fun getEMPTY ()Lorg/ton/sdk/cell/LevelMask;
138149
public final fun getHashCount ()I
@@ -141,7 +152,7 @@ public final class org/ton/sdk/cell/LevelMask {
141152
public final fun getMask ()I
142153
public fun hashCode ()I
143154
public final fun isEmpty ()Z
144-
public final fun isSignificant (I)Z
155+
public fun iterator ()Ljava/util/Iterator;
145156
public static final fun level (I)Lorg/ton/sdk/cell/LevelMask;
146157
public final fun or (Lorg/ton/sdk/cell/LevelMask;)Lorg/ton/sdk/cell/LevelMask;
147158
public final fun shr (I)Lorg/ton/sdk/cell/LevelMask;
@@ -156,9 +167,73 @@ public final class org/ton/sdk/cell/LevelMask$Companion {
156167
}
157168

158169
public abstract interface class org/ton/sdk/cell/LoadedCell : org/ton/sdk/cell/Cell {
170+
public abstract fun getBits ()Lorg/ton/sdk/bitstring/BitString;
159171
public abstract fun reference (I)Lorg/ton/sdk/cell/Cell;
160172
}
161173

174+
public abstract class org/ton/sdk/cell/boc/BagOfCells {
175+
public fun <init> ()V
176+
public abstract fun getRootCell (I)Lorg/ton/sdk/cell/Cell;
177+
}
178+
179+
public final class org/ton/sdk/cell/boc/BagOfCellsHeader {
180+
public static final field BOC_GENERIC_MAGIC I
181+
public static final field BOC_INDEXED_CRC32C_MAGIC I
182+
public static final field BOC_INDEXED_MAGIC I
183+
public static final field Companion Lorg/ton/sdk/cell/boc/BagOfCellsHeader$Companion;
184+
public fun <init> (IIIIIIZZZZJJJJJ)V
185+
public final fun getAbsentCount ()I
186+
public final fun getCellCount ()I
187+
public final fun getDataOffset ()J
188+
public final fun getDataSize ()J
189+
public final fun getHasCacheBits ()Z
190+
public final fun getHasCrc32c ()Z
191+
public final fun getHasIndex ()Z
192+
public final fun getHasRoots ()Z
193+
public final fun getIndexOffset ()J
194+
public final fun getMagic ()I
195+
public final fun getOffsetByteSize ()I
196+
public final fun getRefByteSize ()I
197+
public final fun getRootCount ()I
198+
public final fun getRootsOffset ()J
199+
public final fun getTotalSize ()J
200+
}
201+
202+
public final class org/ton/sdk/cell/boc/BagOfCellsHeader$Companion {
203+
public final fun parse (Lkotlinx/io/Source;)Lorg/ton/sdk/cell/boc/BagOfCellsHeader;
204+
}
205+
206+
public final class org/ton/sdk/cell/boc/StaticBagOfCells : org/ton/sdk/cell/boc/BagOfCells, org/ton/sdk/cell/CellContext {
207+
public fun <init> (Lkotlinx/io/bytestring/ByteString;)V
208+
public fun <init> ([B)V
209+
public fun finalizeCell (Lorg/ton/sdk/cell/CellBuilder;)Lorg/ton/sdk/cell/Cell;
210+
public final fun getHeader ()Lorg/ton/sdk/cell/boc/BagOfCellsHeader;
211+
public synthetic fun getRootCell (I)Lorg/ton/sdk/cell/Cell;
212+
public fun getRootCell (I)Lorg/ton/sdk/cell/LoadedCell;
213+
public fun loadCell (Lorg/ton/sdk/cell/Cell;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
214+
public fun toString ()Ljava/lang/String;
215+
}
216+
217+
public final class org/ton/sdk/cell/boc/StaticBagOfCells$RootCell : org/ton/sdk/cell/LoadedCell {
218+
public fun <init> (Lorg/ton/sdk/cell/boc/StaticBagOfCells;ILorg/ton/sdk/cell/LoadedCell;)V
219+
public fun depth (I)I
220+
public fun getBits ()Lorg/ton/sdk/bitstring/BitString;
221+
public final fun getBoc ()Lorg/ton/sdk/cell/boc/StaticBagOfCells;
222+
public final fun getCell ()Lorg/ton/sdk/cell/LoadedCell;
223+
public fun getCellType ()Lorg/ton/sdk/cell/CellType;
224+
public fun getDescriptor ()Lorg/ton/sdk/cell/CellDescriptor;
225+
public final fun getIndex ()I
226+
public fun getLevel ()I
227+
public fun getLevelMask ()Lorg/ton/sdk/cell/LevelMask;
228+
public fun getReferenceCount ()I
229+
public fun hash (I)Lorg/ton/sdk/crypto/HashBytes;
230+
public fun isEmpty ()Z
231+
public fun isExotic ()Z
232+
public fun reference (I)Lorg/ton/sdk/cell/Cell;
233+
public fun toString ()Ljava/lang/String;
234+
public fun virtualize (I)Lorg/ton/sdk/cell/Cell;
235+
}
236+
162237
public final class org/ton/sdk/cell/exception/CellOverflowException : java/lang/RuntimeException {
163238
public fun <init> ()V
164239
}

0 commit comments

Comments
 (0)