everscale-client-ruby 1.1.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,196 @@
1
+ module TonClient
2
+
3
+ class Abi
4
+ include CommonInstanceHelpers
5
+
6
+ attr_reader :core, :context
7
+ MODULE = self.to_s.downcase.gsub(/^(.+::|)(\w+)$/, '\2').freeze
8
+
9
+ def initialize(context: Context.new, core: TonClient::TonBinding)
10
+ @context = context
11
+ @core = core
12
+ end
13
+
14
+ # INPUT: ParamsOfEncodeMessageBody
15
+ # abi: Value - # # Contract ABI.
16
+ # call_set: CallSet - # # Function call parameters. # # Must be specified in non deploy message.
17
+ # In case of deploy message contains parameters of constructor.
18
+ # is_internal: Boolean - # # True if internal message body must be encoded.
19
+ # signer: Signer - # # Signing parameters.
20
+ # processing_try_index: Number<Optional> - # # Processing try index. # # Used in message processing with retries.
21
+ # Encoder uses the provided try index to calculate messageexpiration time.
22
+ # Expiration timeouts will grow with every retry.
23
+ # Default value is 0.
24
+ # RESPONSE: ResultOfEncodeMessageBody
25
+ # body: String - # # Message body BOC encoded with `base64`.
26
+ # data_to_sign: String<Optional> - # # Optional data to sign. # # Encoded with `base64`.
27
+ # # Presents when `message` is unsigned. Can be used for externalmessage signing. Is this case you need to sing this data andproduce signed message using `abi.attach_signature`.
28
+ def encode_message_body(payload, &block)
29
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
30
+ end
31
+
32
+ # INPUT: ParamsOfAttachSignatureToMessageBody
33
+ # abi: Value - # # Contract ABI
34
+ # public_key: String - # # Public key. # # Must be encoded with `hex`.
35
+ # message: String - # # Unsigned message body BOC. # # Must be encoded with `base64`.
36
+ # signature: String - # # Signature. # # Must be encoded with `hex`.
37
+ # RESPONSE: ResultOfAttachSignatureToMessageBody
38
+ # body: String -
39
+ def attach_signature_to_message_body(payload, &block)
40
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
41
+ end
42
+
43
+ # INPUT: ParamsOfEncodeMessage
44
+ # abi: Value - # # Contract ABI.
45
+ # address: String<Optional> - # # Target address the message will be sent to. # # Must be specified in case of non-deploy message.
46
+ # deploy_set: DeploySet<Optional> - # # Deploy parameters. # # Must be specified in case of deploy message.
47
+ # call_set: CallSet<Optional> - # # Function call parameters. # # Must be specified in case of non-deploy message.
48
+ # In case of deploy message it is optional and contains parametersof the functions that will to be called upon deploy transaction.
49
+ # signer: Signer - # # Signing parameters.
50
+ # processing_try_index: Number<Optional> - # # Processing try index. # # Used in message processing with retries (if contract's ABI includes "expire" header).
51
+ # Encoder uses the provided try index to calculate messageexpiration time. The 1st message expiration time is specified inClient config.
52
+ # Expiration timeouts will grow with every retry.
53
+ # Retry grow factor is set in Client config:
54
+ # <.....add config parameter with default value here>Default value is 0.
55
+ # RESPONSE: ResultOfEncodeMessage
56
+ # message: String - # # Message BOC encoded with `base64`.
57
+ # data_to_sign: String<Optional> - # # Optional data to be signed encoded in `base64`. # # Returned in case of `Signer::External`. Can be used for externalmessage signing. Is this case you need to use this data to create signature andthen produce signed message using `abi.attach_signature`.
58
+ # address: String - # # Destination address.
59
+ # message_id: String - # # Message id.
60
+ def encode_message(payload, &block)
61
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
62
+ end
63
+
64
+ # INPUT: ParamsOfEncodeInternalMessage
65
+ # abi: Value<Optional> - # # Contract ABI. # # Can be None if both deploy_set and call_set are None.
66
+ # address: String<Optional> - # # Target address the message will be sent to. # # Must be specified in case of non-deploy message.
67
+ # src_address: String<Optional> - # # Source address of the message.
68
+ # deploy_set: DeploySet<Optional> - # # Deploy parameters. # # Must be specified in case of deploy message.
69
+ # call_set: CallSet<Optional> - # # Function call parameters. # # Must be specified in case of non-deploy message.
70
+ # In case of deploy message it is optional and contains parametersof the functions that will to be called upon deploy transaction.
71
+ # value: String - # # Value in nanotokens to be sent with message.
72
+ # bounce: Boolean<Optional> - # # Flag of bounceable message. # # Default is true.
73
+ # enable_ihr: Boolean<Optional> - # # Enable Instant Hypercube Routing for the message. # # Default is false.
74
+ # RESPONSE: ResultOfEncodeInternalMessage
75
+ # message: String - # # Message BOC encoded with `base64`.
76
+ # address: String - # # Destination address.
77
+ # message_id: String - # # Message id.
78
+ def encode_internal_message(payload, &block)
79
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
80
+ end
81
+
82
+ # INPUT: ParamsOfAttachSignature
83
+ # abi: Value - # # Contract ABI
84
+ # public_key: String - # # Public key encoded in `hex`.
85
+ # message: String - # # Unsigned message BOC encoded in `base64`.
86
+ # signature: String - # # Signature encoded in `hex`.
87
+ # RESPONSE: ResultOfAttachSignature
88
+ # message: String - # # Signed message BOC
89
+ # message_id: String - # # Message ID
90
+ def attach_signature(payload, &block)
91
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
92
+ end
93
+
94
+ # INPUT: ParamsOfDecodeMessage
95
+ # abi: Value - # # contract ABI
96
+ # message: String - # # Message BOC
97
+ # RESPONSE: DecodedMessageBody
98
+ # body_type: MessageBodyType - # # Type of the message body content.
99
+ # name: String - # # Function or event name.
100
+ # value: Value<Optional> - # # Parameters or result value.
101
+ # header: FunctionHeader<Optional> - # # Function header.
102
+ def decode_message(payload, &block)
103
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
104
+ end
105
+
106
+ # INPUT: ParamsOfDecodeMessageBody
107
+ # abi: Value - # # Contract ABI used to decode.
108
+ # body: String - # # Message body BOC encoded in `base64`.
109
+ # is_internal: Boolean - # # True if the body belongs to the internal message.
110
+ # RESPONSE: DecodedMessageBody
111
+ # body_type: MessageBodyType - # # Type of the message body content.
112
+ # name: String - # # Function or event name.
113
+ # value: Value<Optional> - # # Parameters or result value.
114
+ # header: FunctionHeader<Optional> - # # Function header.
115
+ def decode_message_body(payload, &block)
116
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
117
+ end
118
+
119
+ # INPUT: ParamsOfEncodeAccount
120
+ # state_init: StateInitSource - # # Source of the account state init.
121
+ # balance: BigInt<Optional> - # # Initial balance.
122
+ # last_trans_lt: BigInt<Optional> - # # Initial value for the `last_trans_lt`.
123
+ # last_paid: Number<Optional> - # # Initial value for the `last_paid`.
124
+ # boc_cache: BocCacheType<Optional> - # # Cache type to put the result. # # The BOC itself returned if no cache type provided
125
+ # RESPONSE: ResultOfEncodeAccount
126
+ # account: String - # # Account BOC encoded in `base64`.
127
+ # id: String - # # Account ID encoded in `hex`.
128
+ def encode_account(payload, &block)
129
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
130
+ end
131
+
132
+ # INPUT: ParamsOfDecodeAccountData
133
+ # abi: Value - # # Contract ABI
134
+ # data: String - # # Data BOC or BOC handle
135
+ # RESPONSE: ResultOfDecodeAccountData
136
+ # data: Value - # # Decoded data as a JSON structure.
137
+ def decode_account_data(payload, &block)
138
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
139
+ end
140
+
141
+ # INPUT: ParamsOfUpdateInitialData
142
+ # abi: Value<Optional> - # # Contract ABI
143
+ # data: String - # # Data BOC or BOC handle
144
+ # initial_data: Value - # # List of initial values for contract's static variables. # # `abi` parameter should be provided to set initial data
145
+ # initial_pubkey: String<Optional> - # # Initial account owner's public key to set into account data
146
+ # boc_cache: BocCacheType<Optional> - # # Cache type to put the result. The BOC itself returned if no cache type provided.
147
+ # RESPONSE: ResultOfUpdateInitialData
148
+ # data: String - # # Updated data BOC or BOC handle
149
+ def update_initial_data(payload, &block)
150
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
151
+ end
152
+
153
+ # INPUT: ParamsOfEncodeInitialData
154
+ # abi: Value<Optional> - # # Contract ABI
155
+ # initial_data: Value - # # List of initial values for contract's static variables. # # `abi` parameter should be provided to set initial data
156
+ # initial_pubkey: String<Optional> - # # Initial account owner's public key to set into account data
157
+ # boc_cache: BocCacheType<Optional> - # # Cache type to put the result. The BOC itself returned if no cache type provided.
158
+ # RESPONSE: ResultOfEncodeInitialData
159
+ # data: String - # # Updated data BOC or BOC handle
160
+ def encode_initial_data(payload, &block)
161
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
162
+ end
163
+
164
+ # INPUT: ParamsOfDecodeInitialData
165
+ # abi: Value<Optional> - # # Contract ABI. # # Initial data is decoded if this parameter is provided
166
+ # data: String - # # Data BOC or BOC handle
167
+ # RESPONSE: ResultOfDecodeInitialData
168
+ # initial_data: Value<Optional> - # # List of initial values of contract's public variables. # # Initial data is decoded if `abi` input parameter is provided
169
+ # initial_pubkey: String - # # Initial account owner's public key
170
+ def decode_initial_data(payload, &block)
171
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
172
+ end
173
+
174
+ # INPUT: ParamsOfDecodeBoc
175
+ # params: Array - # # Parameters to decode from BOC
176
+ # boc: String - # # Data BOC or BOC handle
177
+ # allow_partial: Boolean -
178
+ # RESPONSE: ResultOfDecodeBoc
179
+ # data: Value - # # Decoded data as a JSON structure.
180
+ def decode_boc(payload, &block)
181
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
182
+ end
183
+
184
+ # INPUT: ParamsOfAbiEncodeBoc
185
+ # params: Array - # # Parameters to encode into BOC
186
+ # data: Value - # # Parameters and values as a JSON structure
187
+ # boc_cache: BocCacheType<Optional> - # # Cache type to put the result. # # The BOC itself returned if no cache type provided
188
+ # RESPONSE: ResultOfAbiEncodeBoc
189
+ # boc: String - # # BOC encoded as base64
190
+ def encode_boc(payload, &block)
191
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
192
+ end
193
+
194
+ end
195
+ end
196
+
@@ -0,0 +1,196 @@
1
+ module TonClient
2
+
3
+ class Boc
4
+ include CommonInstanceHelpers
5
+
6
+ attr_reader :core, :context
7
+ MODULE = self.to_s.downcase.gsub(/^(.+::|)(\w+)$/, '\2').freeze
8
+
9
+ def initialize(context: Context.new, core: TonClient::TonBinding)
10
+ @context = context
11
+ @core = core
12
+ end
13
+
14
+ # INPUT: ParamsOfParse
15
+ # boc: String - # # BOC encoded as base64
16
+ # RESPONSE: ResultOfParse
17
+ # parsed: Value - # # JSON containing parsed BOC
18
+ def parse_message(payload, &block)
19
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
20
+ end
21
+
22
+ # INPUT: ParamsOfParse
23
+ # boc: String - # # BOC encoded as base64
24
+ # RESPONSE: ResultOfParse
25
+ # parsed: Value - # # JSON containing parsed BOC
26
+ def parse_transaction(payload, &block)
27
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
28
+ end
29
+
30
+ # INPUT: ParamsOfParse
31
+ # boc: String - # # BOC encoded as base64
32
+ # RESPONSE: ResultOfParse
33
+ # parsed: Value - # # JSON containing parsed BOC
34
+ def parse_account(payload, &block)
35
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
36
+ end
37
+
38
+ # INPUT: ParamsOfParse
39
+ # boc: String - # # BOC encoded as base64
40
+ # RESPONSE: ResultOfParse
41
+ # parsed: Value - # # JSON containing parsed BOC
42
+ def parse_block(payload, &block)
43
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
44
+ end
45
+
46
+ # INPUT: ParamsOfParseShardstate
47
+ # boc: String - # # BOC encoded as base64
48
+ # id: String - # # Shardstate identificator
49
+ # workchain_id: Number - # # Workchain shardstate belongs to
50
+ # RESPONSE: ResultOfParse
51
+ # parsed: Value - # # JSON containing parsed BOC
52
+ def parse_shardstate(payload, &block)
53
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
54
+ end
55
+
56
+ # INPUT: ParamsOfGetBlockchainConfig
57
+ # block_boc: String - # # Key block BOC or zerostate BOC encoded as base64
58
+ # RESPONSE: ResultOfGetBlockchainConfig
59
+ # config_boc: String - # # Blockchain config BOC encoded as base64
60
+ def get_blockchain_config(payload, &block)
61
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
62
+ end
63
+
64
+ # INPUT: ParamsOfGetBocHash
65
+ # boc: String - # # BOC encoded as base64 or BOC handle
66
+ # RESPONSE: ResultOfGetBocHash
67
+ # hash: String - # # BOC root hash encoded with hex
68
+ def get_boc_hash(payload, &block)
69
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
70
+ end
71
+
72
+ # INPUT: ParamsOfGetBocDepth
73
+ # boc: String - # # BOC encoded as base64 or BOC handle
74
+ # RESPONSE: ResultOfGetBocDepth
75
+ # depth: Number - # # BOC root cell depth
76
+ def get_boc_depth(payload, &block)
77
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
78
+ end
79
+
80
+ # INPUT: ParamsOfGetCodeFromTvc
81
+ # tvc: String - # # Contract TVC image or image BOC handle
82
+ # RESPONSE: ResultOfGetCodeFromTvc
83
+ # code: String - # # Contract code encoded as base64
84
+ def get_code_from_tvc(payload, &block)
85
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
86
+ end
87
+
88
+ # INPUT: ParamsOfBocCacheGet
89
+ # boc_ref: String - # # Reference to the cached BOC
90
+ # RESPONSE: ResultOfBocCacheGet
91
+ # boc: String<Optional> - # # BOC encoded as base64.
92
+ def cache_get(payload, &block)
93
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
94
+ end
95
+
96
+ # INPUT: ParamsOfBocCacheSet
97
+ # boc: String - # # BOC encoded as base64 or BOC reference
98
+ # cache_type: BocCacheType - # # Cache type
99
+ # RESPONSE: ResultOfBocCacheSet
100
+ # boc_ref: String - # # Reference to the cached BOC
101
+ def cache_set(payload, &block)
102
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
103
+ end
104
+
105
+ # INPUT: ParamsOfBocCacheUnpin
106
+ # pin: String - # # Pinned name
107
+ # boc_ref: String<Optional> - # # Reference to the cached BOC. # # If it is provided then only referenced BOC is unpinned
108
+ def cache_unpin(payload, &block)
109
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
110
+ end
111
+
112
+ # INPUT: ParamsOfEncodeBoc
113
+ # builder: Array - # # Cell builder operations.
114
+ # boc_cache: BocCacheType<Optional> - # # Cache type to put the result. The BOC itself returned if no cache type provided.
115
+ # RESPONSE: ResultOfEncodeBoc
116
+ # boc: String - # # Encoded cell BOC or BOC cache key.
117
+ def encode_boc(payload, &block)
118
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
119
+ end
120
+
121
+ # INPUT: ParamsOfGetCodeSalt
122
+ # code: String - # # Contract code BOC encoded as base64 or code BOC handle
123
+ # boc_cache: BocCacheType<Optional> - # # Cache type to put the result. The BOC itself returned if no cache type provided.
124
+ # RESPONSE: ResultOfGetCodeSalt
125
+ # salt: String<Optional> - # # Contract code salt if present. # # BOC encoded as base64 or BOC handle
126
+ def get_code_salt(payload, &block)
127
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
128
+ end
129
+
130
+ # INPUT: ParamsOfSetCodeSalt
131
+ # code: String - # # Contract code BOC encoded as base64 or code BOC handle
132
+ # salt: String - # # Code salt to set. # # BOC encoded as base64 or BOC handle
133
+ # boc_cache: BocCacheType<Optional> - # # Cache type to put the result. The BOC itself returned if no cache type provided.
134
+ # RESPONSE: ResultOfSetCodeSalt
135
+ # code: String - # # Contract code with salt set. # # BOC encoded as base64 or BOC handle
136
+ def set_code_salt(payload, &block)
137
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
138
+ end
139
+
140
+ # INPUT: ParamsOfDecodeTvc
141
+ # tvc: String - # # Contract TVC image BOC encoded as base64 or BOC handle
142
+ # boc_cache: BocCacheType<Optional> - # # Cache type to put the result. The BOC itself returned if no cache type provided.
143
+ # RESPONSE: ResultOfDecodeTvc
144
+ # code: String<Optional> - # # Contract code BOC encoded as base64 or BOC handle
145
+ # code_hash: String<Optional> - # # Contract code hash
146
+ # code_depth: Number<Optional> - # # Contract code depth
147
+ # data: String<Optional> - # # Contract data BOC encoded as base64 or BOC handle
148
+ # data_hash: String<Optional> - # # Contract data hash
149
+ # data_depth: Number<Optional> - # # Contract data depth
150
+ # library: String<Optional> - # # Contract library BOC encoded as base64 or BOC handle
151
+ # tick: Boolean<Optional> - # # `special.tick` field. # # Specifies the contract ability to handle tick transactions
152
+ # tock: Boolean<Optional> - # # `special.tock` field. # # Specifies the contract ability to handle tock transactions
153
+ # split_depth: Number<Optional> - # # Is present and non-zero only in instances of large smart contracts
154
+ # compiler_version: String<Optional> - # # Compiler version, for example 'sol 0.49.0'
155
+ def decode_tvc(payload, &block)
156
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
157
+ end
158
+
159
+ # INPUT: ParamsOfEncodeTvc
160
+ # code: String<Optional> - # # Contract code BOC encoded as base64 or BOC handle
161
+ # data: String<Optional> - # # Contract data BOC encoded as base64 or BOC handle
162
+ # library: String<Optional> - # # Contract library BOC encoded as base64 or BOC handle
163
+ # tick: Boolean<Optional> - # # `special.tick` field. # # Specifies the contract ability to handle tick transactions
164
+ # tock: Boolean<Optional> - # # `special.tock` field. # # Specifies the contract ability to handle tock transactions
165
+ # split_depth: Number<Optional> - # # Is present and non-zero only in instances of large smart contracts
166
+ # boc_cache: BocCacheType<Optional> - # # Cache type to put the result. The BOC itself returned if no cache type provided.
167
+ # RESPONSE: ResultOfEncodeTvc
168
+ # tvc: String - # # Contract TVC image BOC encoded as base64 or BOC handle of boc_cache parameter was specified
169
+ def encode_tvc(payload, &block)
170
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
171
+ end
172
+
173
+ # INPUT: ParamsOfEncodeExternalInMessage
174
+ # src: String<Optional> - # # Source address.
175
+ # dst: String - # # Destination address.
176
+ # init: String<Optional> - # # Bag of cells with state init (used in deploy messages).
177
+ # body: String<Optional> - # # Bag of cells with the message body encoded as base64.
178
+ # boc_cache: BocCacheType<Optional> - # # Cache type to put the result. # # The BOC itself returned if no cache type provided
179
+ # RESPONSE: ResultOfEncodeExternalInMessage
180
+ # message: String - # # Message BOC encoded with `base64`.
181
+ # message_id: String - # # Message id.
182
+ def encode_external_in_message(payload, &block)
183
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
184
+ end
185
+
186
+ # INPUT: ParamsOfGetCompilerVersion
187
+ # code: String - # # Contract code BOC encoded as base64 or code BOC handle
188
+ # RESPONSE: ResultOfGetCompilerVersion
189
+ # version: String<Optional> - # # Compiler version, for example 'sol 0.49.0'
190
+ def get_compiler_version(payload, &block)
191
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
192
+ end
193
+
194
+ end
195
+ end
196
+
@@ -0,0 +1,83 @@
1
+ module TonClient
2
+
3
+ class Client
4
+ include CommonInstanceHelpers
5
+
6
+ attr_reader :core, :context
7
+ private_accessor :_crypto, :_abi, :_boc, :_processing, :_utils, :_tvm, :_net, :_debot, :_proofs
8
+ MODULE = self.to_s.downcase.gsub(/^(.+::|)(\w+)$/, '\2').freeze
9
+
10
+ def initialize(context: Context.new, core: TonClient::TonBinding)
11
+ @context = context
12
+ @core = core
13
+ end
14
+
15
+ def destroy_context
16
+ core.tc_destroy_context(context.id)
17
+ end
18
+
19
+ def crypto
20
+ _crypto ||= Crypto.new(context: context)
21
+ end
22
+
23
+ def abi
24
+ _abi ||= Abi.new(context: context)
25
+ end
26
+
27
+ def boc
28
+ _boc ||= Boc.new(context: context)
29
+ end
30
+
31
+ def processing
32
+ _processing ||= Processing.new(context: context)
33
+ end
34
+
35
+ def utils
36
+ _utils ||= Utils.new(context: context)
37
+ end
38
+
39
+ def tvm
40
+ _tvm ||= Tvm.new(context: context)
41
+ end
42
+
43
+ def net
44
+ _net ||= Net.new(context: context)
45
+ end
46
+
47
+ def debot
48
+ _debot ||= Debot.new(context: context)
49
+ end
50
+
51
+ def proofs
52
+ _proofs ||= Proofs.new(context: context)
53
+ end
54
+
55
+ # RESPONSE: ResultOfGetApiReference
56
+ # api: Value -
57
+ def get_api_reference(&block)
58
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: {}, &block)
59
+ end
60
+
61
+ # RESPONSE: ResultOfVersion
62
+ # version: String - # # Core Library version
63
+ def version(&block)
64
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: {}, &block)
65
+ end
66
+
67
+ # RESPONSE: ResultOfBuildInfo
68
+ # build_number: Number - # # Build number assigned to this build by the CI.
69
+ # dependencies: Array - # # Fingerprint of the most important dependencies.
70
+ def build_info(&block)
71
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: {}, &block)
72
+ end
73
+
74
+ # INPUT: ParamsOfResolveAppRequest
75
+ # app_request_id: Number - # # Request ID received from SDK
76
+ # result: AppRequestResult - # # Result of request processing
77
+ def resolve_app_request(payload, &block)
78
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
79
+ end
80
+
81
+ end
82
+ end
83
+
@@ -0,0 +1,34 @@
1
+ module TonClient
2
+ class Context
3
+
4
+ attr_reader :id
5
+
6
+ def initialize(config: {})
7
+ TonClient.check_configuration
8
+ @config = TonBinding.make_string(config.to_json)
9
+ context = TonBinding.tc_create_context(@config)
10
+ @id = TonBinding.read_string_to_hash(context)['result']
11
+ ObjectSpace.define_finalizer(self, self.class.finalize(@id))
12
+ end
13
+
14
+ def config=(value = {})
15
+ @config = TonBinding.make_string(value.to_json)
16
+ end
17
+
18
+ def config
19
+ TonBinding.read_string_to_hash(@config)
20
+ end
21
+
22
+ def destroy
23
+ TonBinding.tc_destroy_context(id)
24
+ end
25
+
26
+ def self.finalize(id)
27
+ Proc.new do
28
+ if (id != nil) && (id > 0)
29
+ TonBinding.tc_destroy_context(id)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end