everscale-client-ruby 1.1.23
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/ton-client-ruby +50 -0
- data/lib/code_generator/api.json +13837 -0
- data/lib/code_generator/api_converter.rb +400 -0
- data/lib/code_generator/code_generator.rb +339 -0
- data/lib/code_generator/helpers.rb +13 -0
- data/lib/code_generator/release.rb +48 -0
- data/lib/everscale-client-ruby/Binding/binding.rb +209 -0
- data/lib/everscale-client-ruby/Binding/struct.rb +21 -0
- data/lib/everscale-client-ruby/Client/Abi.rb +196 -0
- data/lib/everscale-client-ruby/Client/Boc.rb +196 -0
- data/lib/everscale-client-ruby/Client/Client.rb +83 -0
- data/lib/everscale-client-ruby/Client/Context.rb +34 -0
- data/lib/everscale-client-ruby/Client/Crypto.rb +465 -0
- data/lib/everscale-client-ruby/Client/Debot.rb +60 -0
- data/lib/everscale-client-ruby/Client/Net.rb +237 -0
- data/lib/everscale-client-ruby/Client/Processing.rb +59 -0
- data/lib/everscale-client-ruby/Client/Proofs.rb +34 -0
- data/lib/everscale-client-ruby/Client/Tvm.rb +62 -0
- data/lib/everscale-client-ruby/Client/Utils.rb +59 -0
- data/lib/everscale-client-ruby/Helpers/CommonHelpers.rb +70 -0
- data/lib/everscale-client-ruby/version.rb +4 -0
- data/lib/everscale-client-ruby.rb +44 -0
- metadata +164 -0
@@ -0,0 +1,465 @@
|
|
1
|
+
module TonClient
|
2
|
+
|
3
|
+
class Crypto
|
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: ParamsOfFactorize
|
15
|
+
# composite: String - # # Hexadecimal representation of u64 composite number.
|
16
|
+
# RESPONSE: ResultOfFactorize
|
17
|
+
# factors: Array - # # Two factors of composite or empty if composite can't be factorized.
|
18
|
+
def factorize(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: ParamsOfModularPower
|
23
|
+
# base: String - # # `base` argument of calculation.
|
24
|
+
# exponent: String - # # `exponent` argument of calculation.
|
25
|
+
# modulus: String - # # `modulus` argument of calculation.
|
26
|
+
# RESPONSE: ResultOfModularPower
|
27
|
+
# modular_power: String - # # Result of modular exponentiation
|
28
|
+
def modular_power(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: ParamsOfTonCrc16
|
33
|
+
# data: String - # # Input data for CRC calculation. # # Encoded with `base64`.
|
34
|
+
# RESPONSE: ResultOfTonCrc16
|
35
|
+
# crc: Number - # # Calculated CRC for input data.
|
36
|
+
def ton_crc16(payload, &block)
|
37
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
38
|
+
end
|
39
|
+
|
40
|
+
# INPUT: ParamsOfGenerateRandomBytes
|
41
|
+
# length: Number - # # Size of random byte array.
|
42
|
+
# RESPONSE: ResultOfGenerateRandomBytes
|
43
|
+
# bytes: String - # # Generated bytes encoded in `base64`.
|
44
|
+
def generate_random_bytes(payload, &block)
|
45
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
46
|
+
end
|
47
|
+
|
48
|
+
# INPUT: ParamsOfConvertPublicKeyToTonSafeFormat
|
49
|
+
# public_key: String - # # Public key - 64 symbols hex string
|
50
|
+
# RESPONSE: ResultOfConvertPublicKeyToTonSafeFormat
|
51
|
+
# ton_public_key: String - # # Public key represented in TON safe format.
|
52
|
+
def convert_public_key_to_ton_safe_format(payload, &block)
|
53
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
54
|
+
end
|
55
|
+
|
56
|
+
# RESPONSE: KeyPair
|
57
|
+
# public: String - # # Public key - 64 symbols hex string
|
58
|
+
# secret: String - # # Private key - u64 symbols hex string
|
59
|
+
def generate_random_sign_keys(&block)
|
60
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: {}, &block)
|
61
|
+
end
|
62
|
+
|
63
|
+
# INPUT: ParamsOfSign
|
64
|
+
# unsigned: String - # # Data that must be signed encoded in `base64`.
|
65
|
+
# keys: KeyPair - # # Sign keys.
|
66
|
+
# RESPONSE: ResultOfSign
|
67
|
+
# signed: String - # # Signed data combined with signature encoded in `base64`.
|
68
|
+
# signature: String - # # Signature encoded in `hex`.
|
69
|
+
def sign(payload, &block)
|
70
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
71
|
+
end
|
72
|
+
|
73
|
+
# INPUT: ParamsOfVerifySignature
|
74
|
+
# signed: String - # # Signed data that must be verified encoded in `base64`.
|
75
|
+
# public: String - # # Signer's public key - 64 symbols hex string
|
76
|
+
# RESPONSE: ResultOfVerifySignature
|
77
|
+
# unsigned: String - # # Unsigned data encoded in `base64`.
|
78
|
+
def verify_signature(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: ParamsOfHash
|
83
|
+
# data: String - # # Input data for hash calculation. # # Encoded with `base64`.
|
84
|
+
# RESPONSE: ResultOfHash
|
85
|
+
# hash: String - # # Hash of input `data`. # # Encoded with 'hex'.
|
86
|
+
def sha256(payload, &block)
|
87
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
88
|
+
end
|
89
|
+
|
90
|
+
# INPUT: ParamsOfHash
|
91
|
+
# data: String - # # Input data for hash calculation. # # Encoded with `base64`.
|
92
|
+
# RESPONSE: ResultOfHash
|
93
|
+
# hash: String - # # Hash of input `data`. # # Encoded with 'hex'.
|
94
|
+
def sha512(payload, &block)
|
95
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
96
|
+
end
|
97
|
+
|
98
|
+
# INPUT: ParamsOfScrypt
|
99
|
+
# password: String - # # The password bytes to be hashed. Must be encoded with `base64`.
|
100
|
+
# salt: String - # # Salt bytes that modify the hash to protect against Rainbow table attacks. Must be encoded with `base64`.
|
101
|
+
# log_n: Number - # # CPU/memory cost parameter
|
102
|
+
# r: Number - # # The block size parameter, which fine-tunes sequential memory read size and performance.
|
103
|
+
# p: Number - # # Parallelization parameter.
|
104
|
+
# dk_len: Number - # # Intended output length in octets of the derived key.
|
105
|
+
# RESPONSE: ResultOfScrypt
|
106
|
+
# key: String - # # Derived key. # # Encoded with `hex`.
|
107
|
+
def scrypt(payload, &block)
|
108
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
109
|
+
end
|
110
|
+
|
111
|
+
# INPUT: ParamsOfNaclSignKeyPairFromSecret
|
112
|
+
# secret: String - # # Secret key - unprefixed 0-padded to 64 symbols hex string
|
113
|
+
# RESPONSE: KeyPair
|
114
|
+
# public: String - # # Public key - 64 symbols hex string
|
115
|
+
# secret: String - # # Private key - u64 symbols hex string
|
116
|
+
def nacl_sign_keypair_from_secret_key(payload, &block)
|
117
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
118
|
+
end
|
119
|
+
|
120
|
+
# INPUT: ParamsOfNaclSign
|
121
|
+
# unsigned: String - # # Data that must be signed encoded in `base64`.
|
122
|
+
# secret: String - # # Signer's secret key - unprefixed 0-padded to 128 symbols hex string (concatenation of 64 symbols secret and 64 symbols public keys). See `nacl_sign_keypair_from_secret_key`.
|
123
|
+
# RESPONSE: ResultOfNaclSign
|
124
|
+
# signed: String - # # Signed data, encoded in `base64`.
|
125
|
+
def nacl_sign(payload, &block)
|
126
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
127
|
+
end
|
128
|
+
|
129
|
+
# INPUT: ParamsOfNaclSignOpen
|
130
|
+
# signed: String - # # Signed data that must be unsigned. # # Encoded with `base64`.
|
131
|
+
# public: String - # # Signer's public key - unprefixed 0-padded to 64 symbols hex string
|
132
|
+
# RESPONSE: ResultOfNaclSignOpen
|
133
|
+
# unsigned: String - # # Unsigned data, encoded in `base64`.
|
134
|
+
def nacl_sign_open(payload, &block)
|
135
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
136
|
+
end
|
137
|
+
|
138
|
+
# INPUT: ParamsOfNaclSign
|
139
|
+
# unsigned: String - # # Data that must be signed encoded in `base64`.
|
140
|
+
# secret: String - # # Signer's secret key - unprefixed 0-padded to 128 symbols hex string (concatenation of 64 symbols secret and 64 symbols public keys). See `nacl_sign_keypair_from_secret_key`.
|
141
|
+
# RESPONSE: ResultOfNaclSignDetached
|
142
|
+
# signature: String - # # Signature encoded in `hex`.
|
143
|
+
def nacl_sign_detached(payload, &block)
|
144
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
145
|
+
end
|
146
|
+
|
147
|
+
# INPUT: ParamsOfNaclSignDetachedVerify
|
148
|
+
# unsigned: String - # # Unsigned data that must be verified. # # Encoded with `base64`.
|
149
|
+
# signature: String - # # Signature that must be verified. # # Encoded with `hex`.
|
150
|
+
# public: String - # # Signer's public key - unprefixed 0-padded to 64 symbols hex string.
|
151
|
+
# RESPONSE: ResultOfNaclSignDetachedVerify
|
152
|
+
# succeeded: Boolean - # # `true` if verification succeeded or `false` if it failed
|
153
|
+
def nacl_sign_detached_verify(payload, &block)
|
154
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
155
|
+
end
|
156
|
+
|
157
|
+
# RESPONSE: KeyPair
|
158
|
+
# public: String - # # Public key - 64 symbols hex string
|
159
|
+
# secret: String - # # Private key - u64 symbols hex string
|
160
|
+
def nacl_box_keypair(&block)
|
161
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: {}, &block)
|
162
|
+
end
|
163
|
+
|
164
|
+
# INPUT: ParamsOfNaclBoxKeyPairFromSecret
|
165
|
+
# secret: String - # # Secret key - unprefixed 0-padded to 64 symbols hex string
|
166
|
+
# RESPONSE: KeyPair
|
167
|
+
# public: String - # # Public key - 64 symbols hex string
|
168
|
+
# secret: String - # # Private key - u64 symbols hex string
|
169
|
+
def nacl_box_keypair_from_secret_key(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: ParamsOfNaclBox
|
174
|
+
# decrypted: String - # # Data that must be encrypted encoded in `base64`.
|
175
|
+
# nonce: String - # # Nonce, encoded in `hex`
|
176
|
+
# their_public: String - # # Receiver's public key - unprefixed 0-padded to 64 symbols hex string
|
177
|
+
# secret: String - # # Sender's private key - unprefixed 0-padded to 64 symbols hex string
|
178
|
+
# RESPONSE: ResultOfNaclBox
|
179
|
+
# encrypted: String - # # Encrypted data encoded in `base64`.
|
180
|
+
def nacl_box(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: ParamsOfNaclBoxOpen
|
185
|
+
# encrypted: String - # # Data that must be decrypted. # # Encoded with `base64`.
|
186
|
+
# nonce: String - # # Nonce
|
187
|
+
# their_public: String - # # Sender's public key - unprefixed 0-padded to 64 symbols hex string
|
188
|
+
# secret: String - # # Receiver's private key - unprefixed 0-padded to 64 symbols hex string
|
189
|
+
# RESPONSE: ResultOfNaclBoxOpen
|
190
|
+
# decrypted: String - # # Decrypted data encoded in `base64`.
|
191
|
+
def nacl_box_open(payload, &block)
|
192
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
193
|
+
end
|
194
|
+
|
195
|
+
# INPUT: ParamsOfNaclSecretBox
|
196
|
+
# decrypted: String - # # Data that must be encrypted. # # Encoded with `base64`.
|
197
|
+
# nonce: String - # # Nonce in `hex`
|
198
|
+
# key: String - # # Secret key - unprefixed 0-padded to 64 symbols hex string
|
199
|
+
# RESPONSE: ResultOfNaclBox
|
200
|
+
# encrypted: String - # # Encrypted data encoded in `base64`.
|
201
|
+
def nacl_secret_box(payload, &block)
|
202
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
203
|
+
end
|
204
|
+
|
205
|
+
# INPUT: ParamsOfNaclSecretBoxOpen
|
206
|
+
# encrypted: String - # # Data that must be decrypted. # # Encoded with `base64`.
|
207
|
+
# nonce: String - # # Nonce in `hex`
|
208
|
+
# key: String - # # Secret key - unprefixed 0-padded to 64 symbols hex string
|
209
|
+
# RESPONSE: ResultOfNaclBoxOpen
|
210
|
+
# decrypted: String - # # Decrypted data encoded in `base64`.
|
211
|
+
def nacl_secret_box_open(payload, &block)
|
212
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
213
|
+
end
|
214
|
+
|
215
|
+
# INPUT: ParamsOfMnemonicWords
|
216
|
+
# dictionary: MnemonicDictionary - # # Dictionary identifier
|
217
|
+
# RESPONSE: ResultOfMnemonicWords
|
218
|
+
# words: String - # # The list of mnemonic words
|
219
|
+
def mnemonic_words(payload, &block)
|
220
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
221
|
+
end
|
222
|
+
|
223
|
+
# INPUT: ParamsOfMnemonicFromRandom
|
224
|
+
# dictionary: MnemonicDictionary - # # Dictionary identifier
|
225
|
+
# word_count: Number<Optional> - # # Mnemonic word count
|
226
|
+
# RESPONSE: ResultOfMnemonicFromRandom
|
227
|
+
# phrase: String - # # String of mnemonic words
|
228
|
+
def mnemonic_from_random(payload, &block)
|
229
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
230
|
+
end
|
231
|
+
|
232
|
+
# INPUT: ParamsOfMnemonicFromEntropy
|
233
|
+
# entropy: String - # # Entropy bytes. # # Hex encoded.
|
234
|
+
# dictionary: MnemonicDictionary - # # Dictionary identifier
|
235
|
+
# word_count: Number<Optional> - # # Mnemonic word count
|
236
|
+
# RESPONSE: ResultOfMnemonicFromEntropy
|
237
|
+
# phrase: String - # # Phrase
|
238
|
+
def mnemonic_from_entropy(payload, &block)
|
239
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
240
|
+
end
|
241
|
+
|
242
|
+
# INPUT: ParamsOfMnemonicVerify
|
243
|
+
# phrase: String - # # Phrase
|
244
|
+
# dictionary: MnemonicDictionary - # # Dictionary identifier
|
245
|
+
# word_count: Number<Optional> - # # Word count
|
246
|
+
# RESPONSE: ResultOfMnemonicVerify
|
247
|
+
# valid: Boolean - # # Flag indicating if the mnemonic is valid or not
|
248
|
+
def mnemonic_verify(payload, &block)
|
249
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
250
|
+
end
|
251
|
+
|
252
|
+
# INPUT: ParamsOfMnemonicDeriveSignKeys
|
253
|
+
# phrase: String - # # Phrase
|
254
|
+
# path: String<Optional> - # # Derivation path, for instance "m/44'/396'/0'/0/0"
|
255
|
+
# dictionary: MnemonicDictionary - # # Dictionary identifier
|
256
|
+
# word_count: Number<Optional> - # # Word count
|
257
|
+
# RESPONSE: KeyPair
|
258
|
+
# public: String - # # Public key - 64 symbols hex string
|
259
|
+
# secret: String - # # Private key - u64 symbols hex string
|
260
|
+
def mnemonic_derive_sign_keys(payload, &block)
|
261
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
262
|
+
end
|
263
|
+
|
264
|
+
# INPUT: ParamsOfHDKeyXPrvFromMnemonic
|
265
|
+
# phrase: String - # # String with seed phrase
|
266
|
+
# dictionary: MnemonicDictionary - # # Dictionary identifier
|
267
|
+
# word_count: Number<Optional> - # # Mnemonic word count
|
268
|
+
# RESPONSE: ResultOfHDKeyXPrvFromMnemonic
|
269
|
+
# xprv: String - # # Serialized extended master private key
|
270
|
+
def hdkey_xprv_from_mnemonic(payload, &block)
|
271
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
272
|
+
end
|
273
|
+
|
274
|
+
# INPUT: ParamsOfHDKeyDeriveFromXPrv
|
275
|
+
# xprv: String - # # Serialized extended private key
|
276
|
+
# child_index: Number - # # Child index (see BIP-0032)
|
277
|
+
# hardened: Boolean - # # Indicates the derivation of hardened/not-hardened key (see BIP-0032)
|
278
|
+
# RESPONSE: ResultOfHDKeyDeriveFromXPrv
|
279
|
+
# xprv: String - # # Serialized extended private key
|
280
|
+
def hdkey_derive_from_xprv(payload, &block)
|
281
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
282
|
+
end
|
283
|
+
|
284
|
+
# INPUT: ParamsOfHDKeyDeriveFromXPrvPath
|
285
|
+
# xprv: String - # # Serialized extended private key
|
286
|
+
# path: String - # # Derivation path, for instance "m/44'/396'/0'/0/0"
|
287
|
+
# RESPONSE: ResultOfHDKeyDeriveFromXPrvPath
|
288
|
+
# xprv: String - # # Derived serialized extended private key
|
289
|
+
def hdkey_derive_from_xprv_path(payload, &block)
|
290
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
291
|
+
end
|
292
|
+
|
293
|
+
# INPUT: ParamsOfHDKeySecretFromXPrv
|
294
|
+
# xprv: String - # # Serialized extended private key
|
295
|
+
# RESPONSE: ResultOfHDKeySecretFromXPrv
|
296
|
+
# secret: String - # # Private key - 64 symbols hex string
|
297
|
+
def hdkey_secret_from_xprv(payload, &block)
|
298
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
299
|
+
end
|
300
|
+
|
301
|
+
# INPUT: ParamsOfHDKeyPublicFromXPrv
|
302
|
+
# xprv: String - # # Serialized extended private key
|
303
|
+
# RESPONSE: ResultOfHDKeyPublicFromXPrv
|
304
|
+
# public: String - # # Public key - 64 symbols hex string
|
305
|
+
def hdkey_public_from_xprv(payload, &block)
|
306
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
307
|
+
end
|
308
|
+
|
309
|
+
# INPUT: ParamsOfChaCha20
|
310
|
+
# data: String - # # Source data to be encrypted or decrypted. # # Must be encoded with `base64`.
|
311
|
+
# key: String - # # 256-bit key. # # Must be encoded with `hex`.
|
312
|
+
# nonce: String - # # 96-bit nonce. # # Must be encoded with `hex`.
|
313
|
+
# RESPONSE: ResultOfChaCha20
|
314
|
+
# data: String - # # Encrypted/decrypted data. # # Encoded with `base64`.
|
315
|
+
def chacha20(payload, &block)
|
316
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
317
|
+
end
|
318
|
+
|
319
|
+
# INPUT: ParamsOfCreateCryptoBox
|
320
|
+
# secret_encryption_salt: String - # # Salt used for secret encryption. For example, a mobile device can use device ID as salt.
|
321
|
+
# secret: CryptoBoxSecret - # # Cryptobox secret
|
322
|
+
# RESPONSE: RegisteredCryptoBox
|
323
|
+
# handle: CryptoBoxHandle -
|
324
|
+
def create_crypto_box(payload, &block)
|
325
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
326
|
+
end
|
327
|
+
|
328
|
+
# INPUT: RegisteredCryptoBox
|
329
|
+
# handle: CryptoBoxHandle -
|
330
|
+
def remove_crypto_box(payload, &block)
|
331
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
332
|
+
end
|
333
|
+
|
334
|
+
# INPUT: RegisteredCryptoBox
|
335
|
+
# handle: CryptoBoxHandle -
|
336
|
+
# RESPONSE: ResultOfGetCryptoBoxInfo
|
337
|
+
# encrypted_secret: String - # # Secret (seed phrase) encrypted with salt and password.
|
338
|
+
def get_crypto_box_info(payload, &block)
|
339
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
340
|
+
end
|
341
|
+
|
342
|
+
# INPUT: RegisteredCryptoBox
|
343
|
+
# handle: CryptoBoxHandle -
|
344
|
+
# RESPONSE: ResultOfGetCryptoBoxSeedPhrase
|
345
|
+
# phrase: String -
|
346
|
+
# dictionary: MnemonicDictionary -
|
347
|
+
# wordcount: Number -
|
348
|
+
def get_crypto_box_seed_phrase(payload, &block)
|
349
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
350
|
+
end
|
351
|
+
|
352
|
+
# INPUT: ParamsOfGetSigningBoxFromCryptoBox
|
353
|
+
# handle: Number - # # Crypto Box Handle.
|
354
|
+
# hdpath: String<Optional> - # # HD key derivation path. # # By default, Everscale HD path is used.
|
355
|
+
# secret_lifetime: Number<Optional> - # # Store derived secret for this lifetime (in ms). The timer starts after each signing box operation. Secrets will be deleted immediately after each signing box operation, if this value is not set.
|
356
|
+
# RESPONSE: RegisteredSigningBox
|
357
|
+
# handle: SigningBoxHandle - # # Handle of the signing box.
|
358
|
+
def get_signing_box_from_crypto_box(payload, &block)
|
359
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
360
|
+
end
|
361
|
+
|
362
|
+
# INPUT: ParamsOfGetEncryptionBoxFromCryptoBox
|
363
|
+
# handle: Number - # # Crypto Box Handle.
|
364
|
+
# hdpath: String<Optional> - # # HD key derivation path. # # By default, Everscale HD path is used.
|
365
|
+
# algorithm: BoxEncryptionAlgorithm - # # Encryption algorithm.
|
366
|
+
# secret_lifetime: Number<Optional> - # # Store derived secret for encryption algorithm for this lifetime (in ms). The timer starts after each encryption box operation. Secrets will be deleted (overwritten with zeroes) after each encryption operation, if this value is not set.
|
367
|
+
# RESPONSE: RegisteredEncryptionBox
|
368
|
+
# handle: EncryptionBoxHandle - # # Handle of the encryption box.
|
369
|
+
def get_encryption_box_from_crypto_box(payload, &block)
|
370
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
371
|
+
end
|
372
|
+
|
373
|
+
# INPUT: RegisteredCryptoBox
|
374
|
+
# handle: CryptoBoxHandle -
|
375
|
+
def clear_crypto_box_secret_cache(payload, &block)
|
376
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
377
|
+
end
|
378
|
+
|
379
|
+
# RESPONSE: RegisteredSigningBox
|
380
|
+
# handle: SigningBoxHandle - # # Handle of the signing box.
|
381
|
+
def register_signing_box(&block)
|
382
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: {}, &block)
|
383
|
+
end
|
384
|
+
|
385
|
+
# INPUT: KeyPair
|
386
|
+
# public: String - # # Public key - 64 symbols hex string
|
387
|
+
# secret: String - # # Private key - u64 symbols hex string
|
388
|
+
# RESPONSE: RegisteredSigningBox
|
389
|
+
# handle: SigningBoxHandle - # # Handle of the signing box.
|
390
|
+
def get_signing_box(payload, &block)
|
391
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
392
|
+
end
|
393
|
+
|
394
|
+
# INPUT: RegisteredSigningBox
|
395
|
+
# handle: SigningBoxHandle - # # Handle of the signing box.
|
396
|
+
# RESPONSE: ResultOfSigningBoxGetPublicKey
|
397
|
+
# pubkey: String - # # Public key of signing box. # # Encoded with hex
|
398
|
+
def signing_box_get_public_key(payload, &block)
|
399
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
400
|
+
end
|
401
|
+
|
402
|
+
# INPUT: ParamsOfSigningBoxSign
|
403
|
+
# signing_box: SigningBoxHandle - # # Signing Box handle.
|
404
|
+
# unsigned: String - # # Unsigned user data. # # Must be encoded with `base64`.
|
405
|
+
# RESPONSE: ResultOfSigningBoxSign
|
406
|
+
# signature: String - # # Data signature. # # Encoded with `hex`.
|
407
|
+
def signing_box_sign(payload, &block)
|
408
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
409
|
+
end
|
410
|
+
|
411
|
+
# INPUT: RegisteredSigningBox
|
412
|
+
# handle: SigningBoxHandle - # # Handle of the signing box.
|
413
|
+
def remove_signing_box(payload, &block)
|
414
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
415
|
+
end
|
416
|
+
|
417
|
+
# RESPONSE: RegisteredEncryptionBox
|
418
|
+
# handle: EncryptionBoxHandle - # # Handle of the encryption box.
|
419
|
+
def register_encryption_box(&block)
|
420
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: {}, &block)
|
421
|
+
end
|
422
|
+
|
423
|
+
# INPUT: RegisteredEncryptionBox
|
424
|
+
# handle: EncryptionBoxHandle - # # Handle of the encryption box.
|
425
|
+
def remove_encryption_box(payload, &block)
|
426
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
427
|
+
end
|
428
|
+
|
429
|
+
# INPUT: ParamsOfEncryptionBoxGetInfo
|
430
|
+
# encryption_box: EncryptionBoxHandle - # # Encryption box handle
|
431
|
+
# RESPONSE: ResultOfEncryptionBoxGetInfo
|
432
|
+
# info: EncryptionBoxInfo - # # Encryption box information
|
433
|
+
def encryption_box_get_info(payload, &block)
|
434
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
435
|
+
end
|
436
|
+
|
437
|
+
# INPUT: ParamsOfEncryptionBoxEncrypt
|
438
|
+
# encryption_box: EncryptionBoxHandle - # # Encryption box handle
|
439
|
+
# data: String - # # Data to be encrypted, encoded in Base64
|
440
|
+
# RESPONSE: ResultOfEncryptionBoxEncrypt
|
441
|
+
# data: String - # # Encrypted data, encoded in Base64. # # Padded to cipher block size
|
442
|
+
def encryption_box_encrypt(payload, &block)
|
443
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
444
|
+
end
|
445
|
+
|
446
|
+
# INPUT: ParamsOfEncryptionBoxDecrypt
|
447
|
+
# encryption_box: EncryptionBoxHandle - # # Encryption box handle
|
448
|
+
# data: String - # # Data to be decrypted, encoded in Base64
|
449
|
+
# RESPONSE: ResultOfEncryptionBoxDecrypt
|
450
|
+
# data: String - # # Decrypted data, encoded in Base64.
|
451
|
+
def encryption_box_decrypt(payload, &block)
|
452
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
453
|
+
end
|
454
|
+
|
455
|
+
# INPUT: ParamsOfCreateEncryptionBox
|
456
|
+
# algorithm: EncryptionAlgorithm - # # Encryption algorithm specifier including cipher parameters (key, IV, etc)
|
457
|
+
# RESPONSE: RegisteredEncryptionBox
|
458
|
+
# handle: EncryptionBoxHandle - # # Handle of the encryption box.
|
459
|
+
def create_encryption_box(payload, &block)
|
460
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
461
|
+
end
|
462
|
+
|
463
|
+
end
|
464
|
+
end
|
465
|
+
|
@@ -0,0 +1,60 @@
|
|
1
|
+
module TonClient
|
2
|
+
|
3
|
+
class Debot
|
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: ParamsOfInit
|
15
|
+
# address: String - # # Debot smart contract address
|
16
|
+
# RESPONSE: RegisteredDebot
|
17
|
+
# debot_handle: DebotHandle - # # Debot handle which references an instance of debot engine.
|
18
|
+
# debot_abi: String - # # Debot abi as json string.
|
19
|
+
# info: DebotInfo - # # Debot metadata.
|
20
|
+
def init(payload, &block)
|
21
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
22
|
+
end
|
23
|
+
|
24
|
+
# INPUT: ParamsOfStart
|
25
|
+
# debot_handle: DebotHandle - # # Debot handle which references an instance of debot engine.
|
26
|
+
def start(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: ParamsOfFetch
|
31
|
+
# address: String - # # Debot smart contract address.
|
32
|
+
# RESPONSE: ResultOfFetch
|
33
|
+
# info: DebotInfo - # # Debot metadata.
|
34
|
+
def fetch(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: ParamsOfExecute
|
39
|
+
# debot_handle: DebotHandle - # # Debot handle which references an instance of debot engine.
|
40
|
+
# action: DebotAction - # # Debot Action that must be executed.
|
41
|
+
def execute(payload, &block)
|
42
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
43
|
+
end
|
44
|
+
|
45
|
+
# INPUT: ParamsOfSend
|
46
|
+
# debot_handle: DebotHandle - # # Debot handle which references an instance of debot engine.
|
47
|
+
# message: String - # # BOC of internal message to debot encoded in base64 format.
|
48
|
+
def send(payload, &block)
|
49
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
50
|
+
end
|
51
|
+
|
52
|
+
# INPUT: ParamsOfRemove
|
53
|
+
# debot_handle: DebotHandle - # # Debot handle which references an instance of debot engine.
|
54
|
+
def remove(payload, &block)
|
55
|
+
core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|