Skip to content

Commit 60b020c

Browse files
authored
Feature/client v 1 4 0 (#12)
* New Boc functions * New functions in net and crypto modules * New features added in client version 1.3.0 * New features added in client version 1.4.0 * Debot module * Added changelog * Repaired broken libs * Updated library version
1 parent 0da5112 commit 60b020c

33 files changed

+1169
-104
lines changed

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Release Notes
2+
All notable changes to this project will be documented in this file.
3+
4+
## 1.4.0 Jan 12, 2021
5+
6+
### Featured
7+
- Support for TON-Client (1.4.0 Dec 18, 2020)
8+
9+
10+
## 1.0.0 Nov 17, 2020
11+
12+
### Featured
13+
- Support for TON-Client (1.0.0 Oct 27, 2020)

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Instead, a thin C wrapper is implemented. The wrapper translates Java calls into
1919

2020
## Compatibility
2121

22-
The current version is compatible with Freeton client v1.0.0, JDK 1.8+ and Scala 2.12.
22+
The current version is compatible with Freeton client v1.4.0, JDK 1.8+ and Scala 2.12.
2323

2424
We use CI on Linux Focal Fossa and MacOs X hosts to run our tests.
2525

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name := "freeton-sdk-client-scala-binding"
22

3-
version := "1.0.0-M3"
3+
version := "1.4.0-M1"
44

55
organization := "com.dancingcode"
66

src/main/c/build_mac_os_x.sh

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22

33
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
44

5-
6-
cd src/main/c
7-
85
gcc \
96
-dynamiclib \
107
-shared \
@@ -17,4 +14,8 @@ gcc \
1714
-lton_client \
1815
-Wl,-rpath,.
1916

17+
cd $LIBS
18+
19+
install_name_tool -change "libton_client.dylib" @loader_path/libton_client.dylib "libTonSdkClientJniBinding.dylib"
20+
2021
cd -

src/main/c/tonclient.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ enum tc_response_types_t {
1313
tc_response_success = 0,
1414
tc_response_error = 1,
1515
tc_response_nop = 2,
16+
tc_response_app_request = 3,
17+
tc_response_app_notify = 4,
1618
tc_response_custom = 100,
1719
};
1820

2.04 MB
Binary file not shown.
2 MB
Binary file not shown.

src/main/resources/ton_client.dll

2.12 MB
Binary file not shown.
198 Bytes
Binary file not shown.

src/main/scala/ton/sdk/client/binding/Api.scala

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,31 @@ object Api {
1616
sealed trait ResponseType {
1717
def code: Long
1818
}
19-
case object ResponseTypeResult extends ResponseType { override def code = 0L }
20-
case object ResponseTypeError extends ResponseType { override def code = 1L }
21-
case object ResponseTypeNop extends ResponseType { override def code = 2L }
22-
case class ResponseTypeReserved(override val code: Long) extends ResponseType
23-
case class ResponseTypeStream(override val code: Long) extends ResponseType
19+
case object ResponseTypeResult extends ResponseType { override def code = 0L }
20+
case object ResponseTypeError extends ResponseType { override def code = 1L }
21+
case object ResponseTypeNop extends ResponseType { override def code = 2L }
22+
case object ResponseTypeAppRequest extends ResponseType { override def code = 3L }
23+
case object ResponseTypeAppNotify extends ResponseType { override def code = 4L }
24+
25+
final case class ResponseTypeReserved(override val code: Long) extends ResponseType
26+
final case class ResponseTypeStream(override val code: Long) extends ResponseType
2427

2528
object ResponseType {
2629
def apply(code: Long): ResponseType = code match {
27-
case 0 => ResponseTypeResult
28-
case 1 => ResponseTypeError
29-
case 2 => ResponseTypeNop
30-
case x if x > 2 && x < 100 => ResponseTypeReserved(x)
31-
case x => ResponseTypeStream(x)
30+
case 0 => ResponseTypeResult
31+
case 1 => ResponseTypeError
32+
case 2 => ResponseTypeNop
33+
case 3 => ResponseTypeAppRequest
34+
case 4 => ResponseTypeAppNotify
35+
case x if x < 100 => ResponseTypeReserved(x)
36+
case x => ResponseTypeStream(x)
3237
}
3338
}
3439

40+
type DebotCallback = (ResponseType, Json) => Unit
41+
42+
type DebotHandle = Int
43+
3544
/**
3645
* @param code
3746
* -1 -> JsonApiParsingError
@@ -150,6 +159,18 @@ object Api {
150159
implicit val decoders = (implicitly[Decoder[R]], implicitly[Decoder[S]])
151160
}
152161

162+
/**
163+
* Representation of the debot SDK client call.
164+
* Can be used to call both sync and async methods.
165+
*
166+
* For the call parameter a json encoder must be available
167+
* For the result parameter a json decoder must be available
168+
*
169+
* @tparam P - the type of the call parameter
170+
* @tparam D - the type of the debot callback
171+
*/
172+
abstract class DebotCall[P: Encoder, R: Decoder] extends SdkCall[P, R]
173+
153174
/**
154175
* For the async call result we need a way to make messages and errors available to the caller.
155176
* This class represents this way.

0 commit comments

Comments
 (0)