ton-sdk-ruby-smc 0.0.2 → 0.0.3
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.
- checksums.yaml +4 -4
- data/lib/ton-sdk-ruby-smc/tokens/jetton.rb +2 -0
- data/lib/ton-sdk-ruby-smc/tokens/metadata.rb +3 -0
- data/lib/ton-sdk-ruby-smc/tokens/nft.rb +8 -6
- data/lib/ton-sdk-ruby-smc/version.rb +1 -1
- data/lib/ton-sdk-ruby-smc/wallets/pwv2.rb +17 -38
- data/lib/ton-sdk-ruby-smc/wallets/wallet_v3.rb +6 -0
- data/lib/ton-sdk-ruby-smc/wallets/wallet_v4.rb +5 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a82bf4b3fed35ee532172adb4e675ac652a8647a760f5bb02662107c203db68a
|
4
|
+
data.tar.gz: 2c368795462e8d47864403730086be0dba6297c1137c5248aa9637b6db007637
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11ce754bd515ea33f21956410d512eb5bf1548d7ce3d2d6de1b8a5f1b94592b45915d74c32cd425963458862d72f21665948961ba8bc3c2977ac57a07344eba7
|
7
|
+
data.tar.gz: 1302b1a85e2fb678b16c99bd2c2aab28457df72c11c479a74c78e5bcaac687ffeb35118d63171622e7b79edf58e75d730825efb235e4f121cf1d2d9382e60efb
|
@@ -25,10 +25,12 @@ module TonSdkRubySmc
|
|
25
25
|
include TonSdkRuby
|
26
26
|
|
27
27
|
class NFT
|
28
|
-
|
28
|
+
extend TonSdkRuby
|
29
|
+
extend TonSdkRubySmc
|
30
|
+
|
29
31
|
=begin
|
30
|
-
transfer#5fcc3d14 query_id:uint64 new_owner:MsgAddress response_destination:MsgAddress
|
31
|
-
custom_payload:(Maybe ^Cell) forward_amount:(VarUInteger 16)
|
32
|
+
transfer#5fcc3d14 query_id:uint64 new_owner:MsgAddress response_destination:MsgAddress
|
33
|
+
custom_payload:(Maybe ^Cell) forward_amount:(VarUInteger 16)
|
32
34
|
forward_payload:(Either Cell ^Cell) = InternalMsgBody;
|
33
35
|
=end
|
34
36
|
def self.build_transfer(query_id, new_owner, response_destination, forward_amount, forward_payload, custom_payload = nil)
|
@@ -45,8 +47,8 @@ transfer#5fcc3d14 query_id:uint64 new_owner:MsgAddress response_destination:MsgA
|
|
45
47
|
body.store_address(new_owner)
|
46
48
|
body.store_address(response_destionation)
|
47
49
|
body.store_maybe_ref(custom_payload)
|
48
|
-
body.store_coins(forward_amount)
|
49
|
-
|
50
|
+
body.store_coins(forward_amount)
|
51
|
+
|
50
52
|
if (body.bits.size + forward_payload.bits.size > 1023) || body.refs.size + forward_payload.refs.size > 4
|
51
53
|
body.store_bit(1)
|
52
54
|
body.store_ref(forward_payload)
|
@@ -57,4 +59,4 @@ transfer#5fcc3d14 query_id:uint64 new_owner:MsgAddress response_destination:MsgA
|
|
57
59
|
body.cell
|
58
60
|
end
|
59
61
|
end
|
60
|
-
end
|
62
|
+
end
|
@@ -42,6 +42,9 @@ module TonSdkRubySmc
|
|
42
42
|
PWV2_CODE = 'B5EE9C7241010101003D000076FF00DDD40120F90001D0D33FD30FD74CED44D0D3FFD70B0F20A4830FA90822C8CBFFCB0FC9ED5444301046BAF2A1F823BEF2A2F910F2A3F800ED552E766412'
|
43
43
|
|
44
44
|
class PWV2Transfer
|
45
|
+
extend TonSdkRuby
|
46
|
+
extend TonSdkRubySmc
|
47
|
+
|
45
48
|
attr_accessor :destination, :bounce, :value, :mode, :body, :init
|
46
49
|
|
47
50
|
def initialize(destination, bounce, value, mode, body = nil, init = nil)
|
@@ -63,19 +66,19 @@ module TonSdkRubySmc
|
|
63
66
|
@init = build_state_init
|
64
67
|
@address = Address.new("#{wc}:#{init.cell.hash}")
|
65
68
|
end
|
66
|
-
|
69
|
+
|
67
70
|
def self.parse_storage(storage_slice)
|
68
71
|
{
|
69
72
|
pubkey: storage_slice.load_bytes(32),
|
70
73
|
seqno: storage_slice.load_uint(16)
|
71
74
|
}
|
72
75
|
end
|
73
|
-
|
76
|
+
|
74
77
|
def build_transfer(transfers, seqno, private_key, is_init = false, timeout = 60)
|
75
78
|
raise 'Transfers must be an [PWV2Transfer]' unless transfers.size > 0 && transfers.first.is_a?(PWV2Transfer)
|
76
79
|
raise "PWV2 can handle only 255 transfers at once" unless transfers.size <= 255
|
77
80
|
actions = []
|
78
|
-
|
81
|
+
|
79
82
|
transfers.each do |t|
|
80
83
|
info = CommonMsgInfo.new(
|
81
84
|
IntMsgInfo.new(
|
@@ -85,7 +88,7 @@ module TonSdkRubySmc
|
|
85
88
|
value: t.value
|
86
89
|
)
|
87
90
|
)
|
88
|
-
|
91
|
+
|
89
92
|
action = OutAction.new(
|
90
93
|
ActionSendMsg.new(
|
91
94
|
tag: 'action_send_msg',
|
@@ -99,34 +102,34 @@ module TonSdkRubySmc
|
|
99
102
|
)
|
100
103
|
)
|
101
104
|
)
|
102
|
-
|
105
|
+
|
103
106
|
actions.push(action)
|
104
107
|
end
|
105
|
-
|
108
|
+
|
106
109
|
outlist = OutList.new(OutListOptions.new(actions: actions))
|
107
|
-
|
110
|
+
|
108
111
|
msg_inner = Builder.new
|
109
112
|
# .store_uint((Time.now.to_i + timeout).to_s, 64)
|
110
113
|
.store_uint((1000 + timeout).to_s, 64)
|
111
114
|
.store_uint(seqno.to_s, 16)
|
112
115
|
.store_ref(outlist.cell)
|
113
116
|
.cell
|
114
|
-
|
117
|
+
|
115
118
|
sign = sign_cell(msg_inner, private_key)
|
116
|
-
|
119
|
+
|
117
120
|
msg_body = Builder.new
|
118
121
|
.store_bytes(sign.unpack('C*'))
|
119
122
|
.store_ref(msg_inner)
|
120
|
-
|
123
|
+
|
121
124
|
info = CommonMsgInfo.new(
|
122
125
|
ExtInMsgInfo.new(
|
123
126
|
tag: 'ext_in_msg_info',
|
124
127
|
dest: @address
|
125
128
|
)
|
126
129
|
)
|
127
|
-
|
130
|
+
|
128
131
|
init_t = is_init ? init : nil
|
129
|
-
|
132
|
+
|
130
133
|
m_cell = msg_body.cell
|
131
134
|
|
132
135
|
Message.new(
|
@@ -141,36 +144,12 @@ module TonSdkRubySmc
|
|
141
144
|
private
|
142
145
|
|
143
146
|
def build_state_init()
|
144
|
-
data = Builder.new()
|
147
|
+
data = Builder.new()
|
145
148
|
data.store_bytes(hex_to_bytes(pubkey))
|
146
149
|
data.store_uint(0, 16)
|
147
|
-
|
150
|
+
|
148
151
|
options = StateInitOptions.new(code: code, data: data.cell)
|
149
152
|
TonSdkRuby::StateInit.new(options)
|
150
153
|
end
|
151
154
|
end
|
152
155
|
end
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
@@ -43,6 +43,9 @@ module TonSdkRubySmc
|
|
43
43
|
SUB_WALLET_ID = 698983191
|
44
44
|
|
45
45
|
class WalletV3Transfer
|
46
|
+
extend TonSdkRuby
|
47
|
+
extend TonSdkRubySmc
|
48
|
+
|
46
49
|
attr_accessor :destination, :bounce, :value, :mode, :body, :init
|
47
50
|
|
48
51
|
def initialize(destination, bounce, value, mode, body = nil, init = nil)
|
@@ -56,6 +59,9 @@ module TonSdkRubySmc
|
|
56
59
|
end
|
57
60
|
|
58
61
|
class WalletV3
|
62
|
+
extend TonSdkRuby
|
63
|
+
extend TonSdkRubySmc
|
64
|
+
|
59
65
|
attr_accessor :code, :pubkey, :init, :address, :sub_wallet_id
|
60
66
|
|
61
67
|
def initialize(pubkey, wc = 0, sub_wallet_id = SUB_WALLET_ID)
|
@@ -41,6 +41,9 @@ module TonSdkRubySmc
|
|
41
41
|
SUB_WALLET_ID = 698983191
|
42
42
|
|
43
43
|
class WalletV4Transfer
|
44
|
+
extend TonSdkRuby
|
45
|
+
extend TonSdkRubySmc
|
46
|
+
|
44
47
|
attr_accessor :destination, :bounce, :value, :mode, :body, :init
|
45
48
|
|
46
49
|
def initialize(destination, bounce, value, mode, body = nil, init = nil)
|
@@ -54,6 +57,8 @@ module TonSdkRubySmc
|
|
54
57
|
end
|
55
58
|
|
56
59
|
class WalletV4
|
60
|
+
extend TonSdkRubySmc
|
61
|
+
|
57
62
|
attr_accessor :code, :pubkey, :init, :address, :sub_wallet_id
|
58
63
|
|
59
64
|
def initialize(pubkey, wc = 0, sub_wallet_id = SUB_WALLET_ID)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ton-sdk-ruby-smc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nerzh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ton-sdk-ruby
|