ton-client-ruby 1.1.11 → 1.1.18

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8ebbb39e22c8415e52b4a1a34a4fcdecda60d34e0a3b85ccd109deaeb8312ce2
4
- data.tar.gz: 91bcc4be9bf929d08e6459a4b8c2e2ed565487f8729d57bd0b71504b6cc807bf
3
+ metadata.gz: 59b280110fc9b2cd8979471ccf3696aeab60f6eecfe27a0d391e7ffd017da51b
4
+ data.tar.gz: 69a485fc49ee06c59d245cdb97133b0a12cfb030e740a9a30e1d48e7c130bcb3
5
5
  SHA512:
6
- metadata.gz: 70a7e68ded2db81139ca93a28e0baec2d6b65743ea7670d373947867552d8b3323fce5107e43f53599d835ac06b00d84596d536319e2db9dc07f2097db50dc86
7
- data.tar.gz: a000c4bd41e2abf7805fad1e0464116bbd2849b0107ed162c3a877c1f2e15e17a8544b667ff4291549bbe67ca9b8898212314f3c1052594a8013ea8c026d7f3d
6
+ metadata.gz: 4cd29a349f661ab70149bef382001909d32a41aa414dfae0c2acf9a99c0a24a78d4edee9c1f3b2baf8787c0e0682b956b3e13b0c2529e402f56992849fad83ee
7
+ data.tar.gz: b9b17e11673771ff7f0942f60cdf29d1c309ff5cd23dd3f19a498b965a4af58408a2a435f850d0677b9220907cd084feb7eb420a62453323a5f60f8b32bedb38
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.23.0",
2
+ "version": "1.28.0",
3
3
  "modules": [
4
4
  {
5
5
  "name": "client",
@@ -247,6 +247,13 @@
247
247
  "value": "34",
248
248
  "summary": null,
249
249
  "description": null
250
+ },
251
+ {
252
+ "name": "LocalStorageError",
253
+ "type": "Number",
254
+ "value": "35",
255
+ "summary": null,
256
+ "description": null
250
257
  }
251
258
  ],
252
259
  "summary": null,
@@ -324,6 +331,25 @@
324
331
  },
325
332
  "summary": null,
326
333
  "description": null
334
+ },
335
+ {
336
+ "name": "proofs",
337
+ "type": "Optional",
338
+ "optional_inner": {
339
+ "type": "Ref",
340
+ "ref_name": "client.ProofsConfig"
341
+ },
342
+ "summary": null,
343
+ "description": null
344
+ },
345
+ {
346
+ "name": "local_storage_path",
347
+ "type": "Optional",
348
+ "optional_inner": {
349
+ "type": "String"
350
+ },
351
+ "summary": "For file based storage is a folder name where SDK will store its data. For browser based is a browser async storage key prefix. Default (recommended) value is \"~/.tonclient\" for native environments and \".tonclient\" for web-browser.",
352
+ "description": null
327
353
  }
328
354
  ],
329
355
  "summary": null,
@@ -461,7 +487,7 @@
461
487
  "number_type": "UInt",
462
488
  "number_size": 32
463
489
  },
464
- "summary": "Maximum value for the endpoint's blockchain data syncronization latency (time-lag). Library periodically checks the current endpoint for blockchain data syncronization latency. If the latency (time-lag) is less then `NetworkConfig.max_latency` then library selects another endpoint.",
490
+ "summary": "Maximum value for the endpoint's blockchain data syncronization latency (time-lag). Library periodically checks the current endpoint for blockchain data synchronization latency. If the latency (time-lag) is less then `NetworkConfig.max_latency` then library selects another endpoint.",
465
491
  "description": "Must be specified in milliseconds. Default is 60000 (1 min)."
466
492
  },
467
493
  {
@@ -587,6 +613,23 @@
587
613
  "summary": null,
588
614
  "description": null
589
615
  },
616
+ {
617
+ "name": "ProofsConfig",
618
+ "type": "Struct",
619
+ "struct_fields": [
620
+ {
621
+ "name": "cache_in_local_storage",
622
+ "type": "Optional",
623
+ "optional_inner": {
624
+ "type": "Boolean"
625
+ },
626
+ "summary": "Cache proofs in the local storage.",
627
+ "description": "Default is `true`. If this value is set to `true`, downloaded proofs and master-chain BOCs are saved into the\npersistent local storage (e.g. file system for native environments or browser's IndexedDB\nfor the web); otherwise all the data is cached only in memory in current client's context\nand will be lost after destruction of the client."
628
+ }
629
+ ],
630
+ "summary": null,
631
+ "description": null
632
+ },
590
633
  {
591
634
  "name": "BuildInfoDependency",
592
635
  "type": "Struct",
@@ -5732,7 +5775,7 @@
5732
5775
  "description": null
5733
5776
  },
5734
5777
  {
5735
- "name": "ResultOfDecodeData",
5778
+ "name": "ResultOfDecodeAccountData",
5736
5779
  "type": "Struct",
5737
5780
  "struct_fields": [
5738
5781
  {
@@ -5813,6 +5856,67 @@
5813
5856
  "summary": null,
5814
5857
  "description": null
5815
5858
  },
5859
+ {
5860
+ "name": "ParamsOfEncodeInitialData",
5861
+ "type": "Struct",
5862
+ "struct_fields": [
5863
+ {
5864
+ "name": "abi",
5865
+ "type": "Optional",
5866
+ "optional_inner": {
5867
+ "type": "Ref",
5868
+ "ref_name": "abi.Abi"
5869
+ },
5870
+ "summary": "Contract ABI",
5871
+ "description": null
5872
+ },
5873
+ {
5874
+ "name": "initial_data",
5875
+ "type": "Optional",
5876
+ "optional_inner": {
5877
+ "type": "Ref",
5878
+ "ref_name": "Value"
5879
+ },
5880
+ "summary": "List of initial values for contract's static variables.",
5881
+ "description": "`abi` parameter should be provided to set initial data"
5882
+ },
5883
+ {
5884
+ "name": "initial_pubkey",
5885
+ "type": "Optional",
5886
+ "optional_inner": {
5887
+ "type": "String"
5888
+ },
5889
+ "summary": "Initial account owner's public key to set into account data",
5890
+ "description": null
5891
+ },
5892
+ {
5893
+ "name": "boc_cache",
5894
+ "type": "Optional",
5895
+ "optional_inner": {
5896
+ "type": "Ref",
5897
+ "ref_name": "boc.BocCacheType"
5898
+ },
5899
+ "summary": "Cache type to put the result. The BOC itself returned if no cache type provided.",
5900
+ "description": null
5901
+ }
5902
+ ],
5903
+ "summary": null,
5904
+ "description": null
5905
+ },
5906
+ {
5907
+ "name": "ResultOfEncodeInitialData",
5908
+ "type": "Struct",
5909
+ "struct_fields": [
5910
+ {
5911
+ "name": "data",
5912
+ "type": "String",
5913
+ "summary": "Updated data BOC or BOC handle",
5914
+ "description": null
5915
+ }
5916
+ ],
5917
+ "summary": null,
5918
+ "description": null
5919
+ },
5816
5920
  {
5817
5921
  "name": "ParamsOfDecodeInitialData",
5818
5922
  "type": "Struct",
@@ -5860,6 +5964,51 @@
5860
5964
  ],
5861
5965
  "summary": null,
5862
5966
  "description": null
5967
+ },
5968
+ {
5969
+ "name": "ParamsOfDecodeBoc",
5970
+ "type": "Struct",
5971
+ "struct_fields": [
5972
+ {
5973
+ "name": "params",
5974
+ "type": "Array",
5975
+ "array_item": {
5976
+ "type": "Ref",
5977
+ "ref_name": "abi.AbiParam"
5978
+ },
5979
+ "summary": "Parameters to decode from BOC",
5980
+ "description": null
5981
+ },
5982
+ {
5983
+ "name": "boc",
5984
+ "type": "String",
5985
+ "summary": "Data BOC or BOC handle",
5986
+ "description": null
5987
+ },
5988
+ {
5989
+ "name": "allow_partial",
5990
+ "type": "Boolean",
5991
+ "summary": null,
5992
+ "description": null
5993
+ }
5994
+ ],
5995
+ "summary": null,
5996
+ "description": null
5997
+ },
5998
+ {
5999
+ "name": "ResultOfDecodeBoc",
6000
+ "type": "Struct",
6001
+ "struct_fields": [
6002
+ {
6003
+ "name": "data",
6004
+ "type": "Ref",
6005
+ "ref_name": "Value",
6006
+ "summary": "Decoded data as a JSON structure.",
6007
+ "description": null
6008
+ }
6009
+ ],
6010
+ "summary": null,
6011
+ "description": null
5863
6012
  }
5864
6013
  ],
5865
6014
  "functions": [
@@ -6199,7 +6348,7 @@
6199
6348
  "generic_args": [
6200
6349
  {
6201
6350
  "type": "Ref",
6202
- "ref_name": "abi.ResultOfDecodeData"
6351
+ "ref_name": "abi.ResultOfDecodeAccountData"
6203
6352
  }
6204
6353
  ]
6205
6354
  },
@@ -6243,6 +6392,44 @@
6243
6392
  },
6244
6393
  "errors": null
6245
6394
  },
6395
+ {
6396
+ "name": "encode_initial_data",
6397
+ "summary": "Encodes initial account data with initial values for the contract's static variables and owner's public key into a data BOC that can be passed to `encode_tvc` function afterwards.",
6398
+ "description": "This function is analogue of `tvm.buildDataInit` function in Solidity.",
6399
+ "params": [
6400
+ {
6401
+ "name": "context",
6402
+ "type": "Generic",
6403
+ "generic_name": "Arc",
6404
+ "generic_args": [
6405
+ {
6406
+ "type": "Ref",
6407
+ "ref_name": "ClientContext"
6408
+ }
6409
+ ],
6410
+ "summary": null,
6411
+ "description": null
6412
+ },
6413
+ {
6414
+ "name": "params",
6415
+ "type": "Ref",
6416
+ "ref_name": "abi.ParamsOfEncodeInitialData",
6417
+ "summary": null,
6418
+ "description": null
6419
+ }
6420
+ ],
6421
+ "result": {
6422
+ "type": "Generic",
6423
+ "generic_name": "ClientResult",
6424
+ "generic_args": [
6425
+ {
6426
+ "type": "Ref",
6427
+ "ref_name": "abi.ResultOfEncodeInitialData"
6428
+ }
6429
+ ]
6430
+ },
6431
+ "errors": null
6432
+ },
6246
6433
  {
6247
6434
  "name": "decode_initial_data",
6248
6435
  "summary": "Decodes initial values of a contract's static variables and owner's public key from account initial data This operation is applicable only for initial account data (before deploy). If the contract is already deployed, its data doesn't contain this data section any more.",
@@ -6280,6 +6467,44 @@
6280
6467
  ]
6281
6468
  },
6282
6469
  "errors": null
6470
+ },
6471
+ {
6472
+ "name": "decode_boc",
6473
+ "summary": "Decodes BOC into JSON as a set of provided parameters.",
6474
+ "description": "Solidity functions use ABI types for [builder encoding](https://github.com/tonlabs/TON-Solidity-Compiler/blob/master/API.md#tvmbuilderstore).\nThe simplest way to decode such a BOC is to use ABI decoding.\nABI has it own rules for fields layout in cells so manually encoded\nBOC can not be described in terms of ABI rules.\n\nTo solve this problem we introduce a new ABI type `Ref(<ParamType>)`\nwhich allows to store `ParamType` ABI parameter in cell reference and, thus,\ndecode manually encoded BOCs. This type is available only in `decode_boc` function\nand will not be available in ABI messages encoding until it is included into some ABI revision.\n\nSuch BOC descriptions covers most users needs. If someone wants to decode some BOC which\ncan not be described by these rules (i.e. BOC with TLB containing constructors of flags\ndefining some parsing conditions) then they can decode the fields up to fork condition,\ncheck the parsed data manually, expand the parsing schema and then decode the whole BOC\nwith the full schema.",
6475
+ "params": [
6476
+ {
6477
+ "name": "context",
6478
+ "type": "Generic",
6479
+ "generic_name": "Arc",
6480
+ "generic_args": [
6481
+ {
6482
+ "type": "Ref",
6483
+ "ref_name": "ClientContext"
6484
+ }
6485
+ ],
6486
+ "summary": null,
6487
+ "description": null
6488
+ },
6489
+ {
6490
+ "name": "params",
6491
+ "type": "Ref",
6492
+ "ref_name": "abi.ParamsOfDecodeBoc",
6493
+ "summary": null,
6494
+ "description": null
6495
+ }
6496
+ ],
6497
+ "result": {
6498
+ "type": "Generic",
6499
+ "generic_name": "ClientResult",
6500
+ "generic_args": [
6501
+ {
6502
+ "type": "Ref",
6503
+ "ref_name": "abi.ResultOfDecodeBoc"
6504
+ }
6505
+ ]
6506
+ },
6507
+ "errors": null
6283
6508
  }
6284
6509
  ]
6285
6510
  },
@@ -6466,7 +6691,7 @@
6466
6691
  {
6467
6692
  "name": "boc",
6468
6693
  "type": "String",
6469
- "summary": "BOC encoded as base64",
6694
+ "summary": "BOC encoded as base64 or BOC handle",
6470
6695
  "description": null
6471
6696
  }
6472
6697
  ],
@@ -6487,6 +6712,36 @@
6487
6712
  "summary": null,
6488
6713
  "description": null
6489
6714
  },
6715
+ {
6716
+ "name": "ParamsOfGetBocDepth",
6717
+ "type": "Struct",
6718
+ "struct_fields": [
6719
+ {
6720
+ "name": "boc",
6721
+ "type": "String",
6722
+ "summary": "BOC encoded as base64 or BOC handle",
6723
+ "description": null
6724
+ }
6725
+ ],
6726
+ "summary": null,
6727
+ "description": null
6728
+ },
6729
+ {
6730
+ "name": "ResultOfGetBocDepth",
6731
+ "type": "Struct",
6732
+ "struct_fields": [
6733
+ {
6734
+ "name": "depth",
6735
+ "type": "Number",
6736
+ "number_type": "UInt",
6737
+ "number_size": 32,
6738
+ "summary": "BOC root cell depth",
6739
+ "description": null
6740
+ }
6741
+ ],
6742
+ "summary": null,
6743
+ "description": null
6744
+ },
6490
6745
  {
6491
6746
  "name": "ParamsOfGetCodeFromTvc",
6492
6747
  "type": "Struct",
@@ -6845,6 +7100,26 @@
6845
7100
  "summary": "Contract code BOC encoded as base64 or BOC handle",
6846
7101
  "description": null
6847
7102
  },
7103
+ {
7104
+ "name": "code_hash",
7105
+ "type": "Optional",
7106
+ "optional_inner": {
7107
+ "type": "String"
7108
+ },
7109
+ "summary": "Contract code hash",
7110
+ "description": null
7111
+ },
7112
+ {
7113
+ "name": "code_depth",
7114
+ "type": "Optional",
7115
+ "optional_inner": {
7116
+ "type": "Number",
7117
+ "number_type": "UInt",
7118
+ "number_size": 32
7119
+ },
7120
+ "summary": "Contract code depth",
7121
+ "description": null
7122
+ },
6848
7123
  {
6849
7124
  "name": "data",
6850
7125
  "type": "Optional",
@@ -6854,6 +7129,26 @@
6854
7129
  "summary": "Contract data BOC encoded as base64 or BOC handle",
6855
7130
  "description": null
6856
7131
  },
7132
+ {
7133
+ "name": "data_hash",
7134
+ "type": "Optional",
7135
+ "optional_inner": {
7136
+ "type": "String"
7137
+ },
7138
+ "summary": "Contract data hash",
7139
+ "description": null
7140
+ },
7141
+ {
7142
+ "name": "data_depth",
7143
+ "type": "Optional",
7144
+ "optional_inner": {
7145
+ "type": "Number",
7146
+ "number_type": "UInt",
7147
+ "number_size": 32
7148
+ },
7149
+ "summary": "Contract data depth",
7150
+ "description": null
7151
+ },
6857
7152
  {
6858
7153
  "name": "library",
6859
7154
  "type": "Optional",
@@ -6891,6 +7186,15 @@
6891
7186
  },
6892
7187
  "summary": "Is present and non-zero only in instances of large smart contracts",
6893
7188
  "description": null
7189
+ },
7190
+ {
7191
+ "name": "compiler_version",
7192
+ "type": "Optional",
7193
+ "optional_inner": {
7194
+ "type": "String"
7195
+ },
7196
+ "summary": "Compiler version, for example 'sol 0.49.0'",
7197
+ "description": null
6894
7198
  }
6895
7199
  ],
6896
7200
  "summary": null,
@@ -7283,6 +7587,44 @@
7283
7587
  },
7284
7588
  "errors": null
7285
7589
  },
7590
+ {
7591
+ "name": "get_boc_depth",
7592
+ "summary": "Calculates BOC depth",
7593
+ "description": null,
7594
+ "params": [
7595
+ {
7596
+ "name": "context",
7597
+ "type": "Generic",
7598
+ "generic_name": "Arc",
7599
+ "generic_args": [
7600
+ {
7601
+ "type": "Ref",
7602
+ "ref_name": "ClientContext"
7603
+ }
7604
+ ],
7605
+ "summary": null,
7606
+ "description": null
7607
+ },
7608
+ {
7609
+ "name": "params",
7610
+ "type": "Ref",
7611
+ "ref_name": "boc.ParamsOfGetBocDepth",
7612
+ "summary": null,
7613
+ "description": null
7614
+ }
7615
+ ],
7616
+ "result": {
7617
+ "type": "Generic",
7618
+ "generic_name": "ClientResult",
7619
+ "generic_args": [
7620
+ {
7621
+ "type": "Ref",
7622
+ "ref_name": "boc.ResultOfGetBocDepth"
7623
+ }
7624
+ ]
7625
+ },
7626
+ "errors": null
7627
+ },
7286
7628
  {
7287
7629
  "name": "get_code_from_tvc",
7288
7630
  "summary": "Extracts code from TVC contract image",
@@ -11392,6 +11734,13 @@
11392
11734
  "value": "812",
11393
11735
  "summary": null,
11394
11736
  "description": null
11737
+ },
11738
+ {
11739
+ "name": "DebotNoCode",
11740
+ "type": "Number",
11741
+ "value": "813",
11742
+ "summary": null,
11743
+ "description": null
11395
11744
  }
11396
11745
  ],
11397
11746
  "summary": null,
@@ -11555,6 +11904,12 @@
11555
11904
  },
11556
11905
  "summary": "Vector with IDs of DInterfaces used by DeBot.",
11557
11906
  "description": null
11907
+ },
11908
+ {
11909
+ "name": "dabiVersion",
11910
+ "type": "String",
11911
+ "summary": "ABI version (\"x.y\") supported by DeBot",
11912
+ "description": null
11558
11913
  }
11559
11914
  ],
11560
11915
  "summary": "[UNSTABLE](UNSTABLE.md) Describes DeBot metadata.",
@@ -12225,6 +12580,207 @@
12225
12580
  "errors": null
12226
12581
  }
12227
12582
  ]
12583
+ },
12584
+ {
12585
+ "name": "proofs",
12586
+ "summary": "[UNSTABLE](UNSTABLE.md) Module for proving data, retrieved from TONOS API.",
12587
+ "description": null,
12588
+ "types": [
12589
+ {
12590
+ "name": "ProofsErrorCode",
12591
+ "type": "EnumOfConsts",
12592
+ "enum_consts": [
12593
+ {
12594
+ "name": "InvalidData",
12595
+ "type": "Number",
12596
+ "value": "901",
12597
+ "summary": null,
12598
+ "description": null
12599
+ },
12600
+ {
12601
+ "name": "ProofCheckFailed",
12602
+ "type": "Number",
12603
+ "value": "902",
12604
+ "summary": null,
12605
+ "description": null
12606
+ },
12607
+ {
12608
+ "name": "InternalError",
12609
+ "type": "Number",
12610
+ "value": "903",
12611
+ "summary": null,
12612
+ "description": null
12613
+ },
12614
+ {
12615
+ "name": "DataDiffersFromProven",
12616
+ "type": "Number",
12617
+ "value": "904",
12618
+ "summary": null,
12619
+ "description": null
12620
+ }
12621
+ ],
12622
+ "summary": null,
12623
+ "description": null
12624
+ },
12625
+ {
12626
+ "name": "ParamsOfProofBlockData",
12627
+ "type": "Struct",
12628
+ "struct_fields": [
12629
+ {
12630
+ "name": "block",
12631
+ "type": "Ref",
12632
+ "ref_name": "Value",
12633
+ "summary": "Single block's data, retrieved from TONOS API, that needs proof. Required fields are `id` and/or top-level `boc` (for block identification), others are optional.",
12634
+ "description": null
12635
+ }
12636
+ ],
12637
+ "summary": null,
12638
+ "description": null
12639
+ },
12640
+ {
12641
+ "name": "ParamsOfProofTransactionData",
12642
+ "type": "Struct",
12643
+ "struct_fields": [
12644
+ {
12645
+ "name": "transaction",
12646
+ "type": "Ref",
12647
+ "ref_name": "Value",
12648
+ "summary": "Single transaction's data as queried from DApp server, without modifications. The required fields are `id` and/or top-level `boc`, others are optional. In order to reduce network requests count, it is recommended to provide `block_id` and `boc` of transaction.",
12649
+ "description": null
12650
+ }
12651
+ ],
12652
+ "summary": null,
12653
+ "description": null
12654
+ },
12655
+ {
12656
+ "name": "ParamsOfProofMessageData",
12657
+ "type": "Struct",
12658
+ "struct_fields": [
12659
+ {
12660
+ "name": "message",
12661
+ "type": "Ref",
12662
+ "ref_name": "Value",
12663
+ "summary": "Single message's data as queried from DApp server, without modifications. The required fields are `id` and/or top-level `boc`, others are optional. In order to reduce network requests count, it is recommended to provide at least `boc` of message and non-null `src_transaction.id` or `dst_transaction.id`.",
12664
+ "description": null
12665
+ }
12666
+ ],
12667
+ "summary": null,
12668
+ "description": null
12669
+ }
12670
+ ],
12671
+ "functions": [
12672
+ {
12673
+ "name": "proof_block_data",
12674
+ "summary": "Proves that a given block's data, which is queried from TONOS API, can be trusted.",
12675
+ "description": "This function checks block proofs and compares given data with the proven.\nIf the given data differs from the proven, the exception will be thrown.\nThe input param is a single block's JSON object, which was queried from DApp server using\nfunctions such as `net.query`, `net.query_collection` or `net.wait_for_collection`.\nIf block's BOC is not provided in the JSON, it will be queried from DApp server\n(in this case it is required to provide at least `id` of block).\n\nPlease note, that joins (like `signatures` in `Block`) are separated entities and not supported,\nso function will throw an exception in a case if JSON being checked has such entities in it.\n\nIf `cache_in_local_storage` in config is set to `true` (default), downloaded proofs and\nmaster-chain BOCs are saved into the persistent local storage (e.g. file system for native\nenvironments or browser's IndexedDB for the web); otherwise all the data is cached only in\nmemory in current client's context and will be lost after destruction of the client.\n\n**Why Proofs are needed**\n\nProofs are needed to ensure that the data downloaded from a DApp server is real blockchain\ndata. Checking proofs can protect from the malicious DApp server which can potentially provide\nfake data, or also from \"Man in the Middle\" attacks class.\n\n**What Proofs are**\n\nSimply, proof is a list of signatures of validators', which have signed this particular master-\nblock.\n\nThe very first validator set's public keys are included in the zero-state. Whe know a root hash\nof the zero-state, because it is stored in the network configuration file, it is our authority\nroot. For proving zero-state it is enough to calculate and compare its root hash.\n\nIn each new validator cycle the validator set is changed. The new one is stored in a key-block,\nwhich is signed by the validator set, which we already trust, the next validator set will be\nstored to the new key-block and signed by the current validator set, and so on.\n\nIn order to prove any block in the master-chain we need to check, that it has been signed by\na trusted validator set. So we need to check all key-blocks' proofs, started from the zero-state\nand until the block, which we want to prove. But it can take a lot of time and traffic to\ndownload and prove all key-blocks on a client. For solving this, special trusted blocks are used\nin TON-SDK.\n\nThe trusted block is the authority root, as well, as the zero-state. Each trusted block is the\n`id` (e.g. `root_hash`) of the already proven key-block. There can be plenty of trusted\nblocks, so there can be a lot of authority roots. The hashes of trusted blocks for MainNet\nand DevNet are hardcoded in SDK in a separated binary file (trusted_key_blocks.bin) and can\nbe updated for each release.\nIn future SDK releases, one will also be able to provide their hashes of trusted blocks for\nother networks, besides for MainNet and DevNet.\nBy using trusted key-blocks, in order to prove any block, we can prove chain of key-blocks to\nthe closest previous trusted key-block, not only to the zero-state.\n\nBut shard-blocks don't have proofs on DApp server. In this case, in order to prove any shard-\nblock data, we search for a corresponding master-block, which contains the root hash of this\nshard-block, or some shard block which is linked to that block in shard-chain. After proving\nthis master-block, we traverse through each link and calculate and compare hashes with links,\none-by-one. After that we can ensure that this shard-block has also been proven.",
12676
+ "params": [
12677
+ {
12678
+ "name": "context",
12679
+ "type": "Generic",
12680
+ "generic_name": "Arc",
12681
+ "generic_args": [
12682
+ {
12683
+ "type": "Ref",
12684
+ "ref_name": "ClientContext"
12685
+ }
12686
+ ],
12687
+ "summary": null,
12688
+ "description": null
12689
+ },
12690
+ {
12691
+ "name": "params",
12692
+ "type": "Ref",
12693
+ "ref_name": "proofs.ParamsOfProofBlockData",
12694
+ "summary": null,
12695
+ "description": null
12696
+ }
12697
+ ],
12698
+ "result": {
12699
+ "type": "Generic",
12700
+ "generic_name": "ClientResult",
12701
+ "generic_args": [
12702
+ {
12703
+ "type": "None"
12704
+ }
12705
+ ]
12706
+ },
12707
+ "errors": null
12708
+ },
12709
+ {
12710
+ "name": "proof_transaction_data",
12711
+ "summary": "Proves that a given transaction's data, which is queried from TONOS API, can be trusted.",
12712
+ "description": "This function requests the corresponding block, checks block proofs, ensures that given\ntransaction exists in the proven block and compares given data with the proven.\nIf the given data differs from the proven, the exception will be thrown.\nThe input parameter is a single transaction's JSON object (see params description),\nwhich was queried from TONOS API using functions such as `net.query`, `net.query_collection`\nor `net.wait_for_collection`.\n\nIf transaction's BOC and/or `block_id` are not provided in the JSON, they will be queried from\nTONOS API.\n\nPlease note, that joins (like `account`, `in_message`, `out_messages`, etc. in `Transaction`\nentity) are separated entities and not supported, so function will throw an exception in a case\nif JSON being checked has such entities in it.\n\nFor more information about proofs checking, see description of `proof_block_data` function.",
12713
+ "params": [
12714
+ {
12715
+ "name": "context",
12716
+ "type": "Generic",
12717
+ "generic_name": "Arc",
12718
+ "generic_args": [
12719
+ {
12720
+ "type": "Ref",
12721
+ "ref_name": "ClientContext"
12722
+ }
12723
+ ],
12724
+ "summary": null,
12725
+ "description": null
12726
+ },
12727
+ {
12728
+ "name": "params",
12729
+ "type": "Ref",
12730
+ "ref_name": "proofs.ParamsOfProofTransactionData",
12731
+ "summary": null,
12732
+ "description": null
12733
+ }
12734
+ ],
12735
+ "result": {
12736
+ "type": "Generic",
12737
+ "generic_name": "ClientResult",
12738
+ "generic_args": [
12739
+ {
12740
+ "type": "None"
12741
+ }
12742
+ ]
12743
+ },
12744
+ "errors": null
12745
+ },
12746
+ {
12747
+ "name": "proof_message_data",
12748
+ "summary": "Proves that a given message's data, which is queried from TONOS API, can be trusted.",
12749
+ "description": "This function first proves the corresponding transaction, ensures that the proven transaction\nrefers to the given message and compares given data with the proven.\nIf the given data differs from the proven, the exception will be thrown.\nThe input parameter is a single message's JSON object (see params description),\nwhich was queried from TONOS API using functions such as `net.query`, `net.query_collection`\nor `net.wait_for_collection`.\n\nIf message's BOC and/or non-null `src_transaction.id` or `dst_transaction.id` are not provided\nin the JSON, they will be queried from TONOS API.\n\nPlease note, that joins (like `block`, `dst_account`, `dst_transaction`, `src_account`,\n`src_transaction`, etc. in `Message` entity) are separated entities and not supported,\nso function will throw an exception in a case if JSON being checked has such entities in it.\n\nFor more information about proofs checking, see description of `proof_block_data` function.",
12750
+ "params": [
12751
+ {
12752
+ "name": "context",
12753
+ "type": "Generic",
12754
+ "generic_name": "Arc",
12755
+ "generic_args": [
12756
+ {
12757
+ "type": "Ref",
12758
+ "ref_name": "ClientContext"
12759
+ }
12760
+ ],
12761
+ "summary": null,
12762
+ "description": null
12763
+ },
12764
+ {
12765
+ "name": "params",
12766
+ "type": "Ref",
12767
+ "ref_name": "proofs.ParamsOfProofMessageData",
12768
+ "summary": null,
12769
+ "description": null
12770
+ }
12771
+ ],
12772
+ "result": {
12773
+ "type": "Generic",
12774
+ "generic_name": "ClientResult",
12775
+ "generic_args": [
12776
+ {
12777
+ "type": "None"
12778
+ }
12779
+ ]
12780
+ },
12781
+ "errors": null
12782
+ }
12783
+ ]
12228
12784
  }
12229
12785
  ]
12230
12786
  }
@@ -283,13 +283,12 @@ cd ton-client-ruby\n
283
283
  private def gen_function(function, types)
284
284
  content = getFunctionComment(function, types)
285
285
  content << "#{TAB}#{TAB}def #{function.name}"
286
- sdk_method_name = function.name == 'init' ? "'initialize'" : '__method__.to_s'
287
286
  if function.arguments.empty?
288
287
  content << "(&block)\n"
289
- content << "#{TAB}#{TAB}#{TAB}core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, #{sdk_method_name}), payload: {}, &block)\n"
288
+ content << "#{TAB}#{TAB}#{TAB}core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: {}, &block)\n"
290
289
  else
291
290
  content << "(payload, &block)\n"
292
- content << "#{TAB}#{TAB}#{TAB}core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, #{sdk_method_name}), payload: payload, &block)\n"
291
+ content << "#{TAB}#{TAB}#{TAB}core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)\n"
293
292
  end
294
293
  content << "#{TAB}#{TAB}end\n\n"
295
294
 
@@ -132,7 +132,7 @@ module TonClient
132
132
  # INPUT: ParamsOfDecodeAccountData
133
133
  # abi: Value - # # Contract ABI
134
134
  # data: String - # # Data BOC or BOC handle
135
- # RESPONSE: ResultOfDecodeData
135
+ # RESPONSE: ResultOfDecodeAccountData
136
136
  # data: Value - # # Decoded data as a JSON structure.
137
137
  def decode_account_data(payload, &block)
138
138
  core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
@@ -150,6 +150,17 @@ module TonClient
150
150
  core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
151
151
  end
152
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
+
153
164
  # INPUT: ParamsOfDecodeInitialData
154
165
  # abi: Value<Optional> - # # Contract ABI. # # Initial data is decoded if this parameter is provided
155
166
  # data: String - # # Data BOC or BOC handle
@@ -160,6 +171,16 @@ module TonClient
160
171
  core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
161
172
  end
162
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
+
163
184
  end
164
185
  end
165
186
 
@@ -62,13 +62,21 @@ module TonClient
62
62
  end
63
63
 
64
64
  # INPUT: ParamsOfGetBocHash
65
- # boc: String - # # BOC encoded as base64
65
+ # boc: String - # # BOC encoded as base64 or BOC handle
66
66
  # RESPONSE: ResultOfGetBocHash
67
67
  # hash: String - # # BOC root hash encoded with hex
68
68
  def get_boc_hash(payload, &block)
69
69
  core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
70
70
  end
71
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
+
72
80
  # INPUT: ParamsOfGetCodeFromTvc
73
81
  # tvc: String - # # Contract TVC image or image BOC handle
74
82
  # RESPONSE: ResultOfGetCodeFromTvc
@@ -134,11 +142,16 @@ module TonClient
134
142
  # boc_cache: BocCacheType<Optional> - # # Cache type to put the result. The BOC itself returned if no cache type provided.
135
143
  # RESPONSE: ResultOfDecodeTvc
136
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
137
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
138
150
  # library: String<Optional> - # # Contract library BOC encoded as base64 or BOC handle
139
151
  # tick: Boolean<Optional> - # # `special.tick` field. # # Specifies the contract ability to handle tick transactions
140
152
  # tock: Boolean<Optional> - # # `special.tock` field. # # Specifies the contract ability to handle tock transactions
141
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'
142
155
  def decode_tvc(payload, &block)
143
156
  core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
144
157
  end
@@ -4,7 +4,7 @@ module TonClient
4
4
  include CommonInstanceHelpers
5
5
 
6
6
  attr_reader :core, :context
7
- private_accessor :_crypto, :_abi, :_boc, :_processing, :_utils, :_tvm, :_net, :_debot
7
+ private_accessor :_crypto, :_abi, :_boc, :_processing, :_utils, :_tvm, :_net, :_debot, :_proofs
8
8
  MODULE = self.to_s.downcase.gsub(/^(.+::|)(\w+)$/, '\2').freeze
9
9
 
10
10
  def initialize(context: Context.new, core: TonClient::TonBinding)
@@ -48,6 +48,10 @@ module TonClient
48
48
  _debot ||= Debot.new(context: context)
49
49
  end
50
50
 
51
+ def proofs
52
+ _proofs ||= Proofs.new(context: context)
53
+ end
54
+
51
55
  # RESPONSE: ResultOfGetApiReference
52
56
  # api: Value -
53
57
  def get_api_reference(&block)
@@ -18,7 +18,7 @@ module TonClient
18
18
  # debot_abi: String - # # Debot abi as json string.
19
19
  # info: DebotInfo - # # Debot metadata.
20
20
  def init(payload, &block)
21
- core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, 'initialize'), payload: payload, &block)
21
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
22
22
  end
23
23
 
24
24
  # INPUT: ParamsOfStart
@@ -0,0 +1,34 @@
1
+ module TonClient
2
+
3
+ class Proofs
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: ParamsOfProofBlockData
15
+ # block: Value - # # Single block's data, retrieved from TONOS API, that needs proof. Required fields are `id` and/or top-level `boc` (for block identification), others are optional.
16
+ def proof_block_data(payload, &block)
17
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
18
+ end
19
+
20
+ # INPUT: ParamsOfProofTransactionData
21
+ # transaction: Value - # # Single transaction's data as queried from DApp server, without modifications. The required fields are `id` and/or top-level `boc`, others are optional. In order to reduce network requests count, it is recommended to provide `block_id` and `boc` of transaction.
22
+ def proof_transaction_data(payload, &block)
23
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
24
+ end
25
+
26
+ # INPUT: ParamsOfProofMessageData
27
+ # message: Value - # # Single message's data as queried from DApp server, without modifications. The required fields are `id` and/or top-level `boc`, others are optional. In order to reduce network requests count, it is recommended to provide at least `boc` of message and non-null `src_transaction.id` or `dst_transaction.id`.
28
+ def proof_message_data(payload, &block)
29
+ core.requestLibrary(context: context.id, method_name: full_method_name(MODULE, __method__.to_s), payload: payload, &block)
30
+ end
31
+
32
+ end
33
+ end
34
+
@@ -19,10 +19,10 @@ module TonClient
19
19
  queue = Queue.new
20
20
  method.call(*args) do |response|
21
21
  responses << response
22
+ yield(responses) if block_given?
22
23
  queue.push 1 if response.finished == true
23
24
  end
24
25
  queue.pop
25
- yield(responses) if block_given?
26
26
  end
27
27
  end
28
28
 
@@ -1,4 +1,4 @@
1
1
  module TonClient
2
- VERSION = "1.1.11"
2
+ VERSION = "1.1.18"
3
3
  end
4
4
 
@@ -4,20 +4,20 @@ require 'json'
4
4
  require 'byebug'
5
5
  require 'dotenv'
6
6
  require 'fileutils'
7
- require 'ton-client-ruby/Helpers/CommonHelpers.rb'
8
- require 'ton-client-ruby/Binding/struct.rb'
9
- require 'ton-client-ruby/Binding/binding.rb'
10
- require 'ton-client-ruby/Client/Context.rb'
11
- require 'ton-client-ruby/Client/Client.rb'
12
- require 'ton-client-ruby/Client/Crypto.rb'
13
- require 'ton-client-ruby/Client/Abi.rb'
14
- require 'ton-client-ruby/Client/Boc.rb'
15
- require 'ton-client-ruby/Client/Net.rb'
16
- require 'ton-client-ruby/Client/Processing.rb'
17
- require 'ton-client-ruby/Client/Tvm.rb'
18
- require 'ton-client-ruby/Client/Utils.rb'
19
- require 'ton-client-ruby/Client/Debot.rb'
20
- require 'ton-client-ruby/version'
7
+ require_relative './ton-client-ruby/Helpers/CommonHelpers.rb'
8
+ require_relative './ton-client-ruby/Binding/struct.rb'
9
+ require_relative './ton-client-ruby/Binding/binding.rb'
10
+ require_relative './ton-client-ruby/Client/Context.rb'
11
+ require_relative './ton-client-ruby/Client/Client.rb'
12
+ require_relative './ton-client-ruby/Client/Crypto.rb'
13
+ require_relative './ton-client-ruby/Client/Abi.rb'
14
+ require_relative './ton-client-ruby/Client/Boc.rb'
15
+ require_relative './ton-client-ruby/Client/Net.rb'
16
+ require_relative './ton-client-ruby/Client/Processing.rb'
17
+ require_relative './ton-client-ruby/Client/Tvm.rb'
18
+ require_relative './ton-client-ruby/Client/Utils.rb'
19
+ require_relative './ton-client-ruby/Client/Debot.rb'
20
+ require_relative './ton-client-ruby/version'
21
21
 
22
22
  module TonClient
23
23
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ton-client-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.11
4
+ version: 1.1.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - nerzh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-22 00:00:00.000000000 Z
11
+ date: 2022-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -133,6 +133,7 @@ files:
133
133
  - lib/ton-client-ruby/Client/Debot.rb
134
134
  - lib/ton-client-ruby/Client/Net.rb
135
135
  - lib/ton-client-ruby/Client/Processing.rb
136
+ - lib/ton-client-ruby/Client/Proofs.rb
136
137
  - lib/ton-client-ruby/Client/Tvm.rb
137
138
  - lib/ton-client-ruby/Client/Utils.rb
138
139
  - lib/ton-client-ruby/Helpers/CommonHelpers.rb
@@ -156,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
157
  - !ruby/object:Gem::Version
157
158
  version: '0'
158
159
  requirements: []
159
- rubygems_version: 3.1.6
160
+ rubygems_version: 3.2.33
160
161
  signing_key:
161
162
  specification_version: 4
162
163
  summary: This is gem ton-client-ruby