Class: Mnam::TransactionBuilder
- Inherits:
-
Object
- Object
- Mnam::TransactionBuilder
show all
- Defined in:
- lib/mnam/transaction_builder.rb
Defined Under Namespace
Classes: Transaction, TransactionFee, TransactionType
Instance Method Summary
collapse
-
#create_delegate(username, secret, second_secret) ⇒ Object
-
#create_multisignature(secret, second_secret, keysgroup, lifetime, min) ⇒ Object
-
#create_second_signature(second_secret, first_secret) ⇒ Object
-
#create_transfer(recipient_id, amount, vendor_field, secret, second_secret = nil) ⇒ Object
-
#create_vote(votes, secret, second_secret, network_address) ⇒ Object
Instance Method Details
#create_delegate(username, secret, second_secret) ⇒ Object
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
|
# File 'lib/mnam/transaction_builder.rb', line 215
def create_delegate(username, secret, second_secret)
key = Mnam::Util::Crypto.get_key(secret)
second_key = Mnam::Util::Crypto.get_key(second_secret) if second_secret
transaction = Transaction.new(
:type => Transaction::Type::DELEGATE,
:fee => Transaction::Fee::DELEGATE,
:sender_public_key => key.public_key.unpack('H*').first,
:amount => 0,
:asset => {
:delegate => {
:username => username,
:public_key => key.public_key.unpack('H*').first
}
}
)
transaction.sign_and_create_id(key, second_key)
transaction
end
|
#create_multisignature(secret, second_secret, keysgroup, lifetime, min) ⇒ Object
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
|
# File 'lib/mnam/transaction_builder.rb', line 237
def create_multisignature(secret, second_secret, keysgroup, lifetime, min)
key = Mnam::Util::Crypto.get_key(secret)
second_key = Mnam::Util::Crypto.get_key(second_secret) if second_secret
transaction = Transaction.new(
:type => Transaction::Type::MULTISIGNATURE,
:fee => (keysgroup.size + 1) * Transaction::Fee::MULTISIGNATURE_BASE,
:sender_public_key => key.public_key.unpack('H*').first,
:amount => 0,
:asset => {
:multisignature => {
:min => min,
:lifetime => lifetime,
:keysgroup => keysgroup
}
}
)
transaction.sign_and_create_id(key, second_key)
transaction
end
|
#create_second_signature(second_secret, first_secret) ⇒ Object
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
|
# File 'lib/mnam/transaction_builder.rb', line 176
def create_second_signature(second_secret, first_secret)
key = Mnam::Util::Crypto.get_key(first_secret)
second_key = Mnam::Util::Crypto.get_key(second_secret) if second_secret
transaction = Transaction.new(
:type => Transaction::Type::SECOND_SIGNATURE,
:fee => Transaction::Fee::SECOND_SIGNATURE,
:sender_public_key => key.public_key.unpack('H*').first,
:amount => 0,
:asset => {
:signature => {
:public_key => second_key.public_key.unpack('H*').first
}
}
)
transaction.sign_and_create_id(key)
return transaction
end
|
#create_transfer(recipient_id, amount, vendor_field, secret, second_secret = nil) ⇒ Object
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
|
# File 'lib/mnam/transaction_builder.rb', line 159
def create_transfer(recipient_id, amount, vendor_field, secret, second_secret = nil)
key = Mnam::Util::Crypto.get_key(secret)
second_key = Mnam::Util::Crypto.get_key(second_secret) if second_secret
transaction = Transaction.new(
:type => Transaction::Type::TRANSFER,
:fee => Transaction::Fee::TRANSFER,
:sender_public_key => key.public_key.unpack('H*').first,
:recipient_id => recipient_id,
:amount => amount,
:vendor_field => vendor_field,
)
transaction.sign_and_create_id(key, second_key)
transaction
end
|
#create_vote(votes, secret, second_secret, network_address) ⇒ Object
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
|
# File 'lib/mnam/transaction_builder.rb', line 197
def create_vote(votes, secret, second_secret, network_address)
key = Mnam::Util::Crypto.get_key(secret)
second_key = Mnam::Util::Crypto.get_key(second_secret) if second_secret
transaction = Transaction.new(
:type => Transaction::Type::VOTE,
:fee => Transaction::Fee::VOTE,
:sender_public_key => key.public_key.unpack('H*').first,
:recipient_id => Mnam::Util::Crypto.get_address(key, network_address),
:amount => 0,
:asset => {:votes => votes}
)
transaction.sign_and_create_id(key, second_key)
transaction
end
|