nis-ruby 0.0.11.1 → 0.0.12
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/.travis.yml +1 -1
- data/LICENSE +21 -0
- data/README.md +23 -43
- data/{samples/request_account.rb → examples/account.rb} +2 -10
- data/{samples/request_block.rb → examples/block.rb} +0 -0
- data/{samples/request_debug.rb → examples/debug.rb} +0 -8
- data/{samples/request_local.rb → examples/local.rb} +0 -5
- data/{samples/request_namespace.rb → examples/namespace.rb} +0 -3
- data/{samples/request_nis.rb → examples/nis.rb} +0 -0
- data/{samples/request_node.rb → examples/node.rb} +0 -9
- data/examples/shutdown.rb +6 -0
- data/examples/transactions/importance_transfer.rb +22 -0
- data/examples/transactions/mosaic_definition_creation.rb +50 -0
- data/examples/transactions/mosaic_supply_change.rb +24 -0
- data/examples/transactions/multisig.rb +26 -0
- data/examples/transactions/multisig_add_cosignatory.rb +31 -0
- data/examples/transactions/multisig_aggregate_modification.rb +28 -0
- data/examples/transactions/multisig_signature.rb +38 -0
- data/examples/transactions/provision_namespace.rb +19 -0
- data/examples/transactions/transfer.rb +22 -0
- data/lib/nis.rb +8 -4
- data/lib/nis/client.rb +2 -1
- data/lib/nis/endpoint/shutdown.rb +7 -0
- data/lib/nis/endpoint/transaction/announce.rb +1 -1
- data/lib/nis/endpoint/transaction/prepareAnnounce.rb +1 -1
- data/lib/nis/fee.rb +1 -0
- data/lib/nis/fee/importance_transfer.rb +22 -0
- data/lib/nis/fee/mosaic_definition_creation.rb +22 -0
- data/lib/nis/fee/mosaic_supply_change_transfer.rb +22 -0
- data/lib/nis/fee/multisig.rb +22 -0
- data/lib/nis/fee/multisig_aggregation_modification.rb +30 -0
- data/lib/nis/fee/provision_namespace.rb +32 -0
- data/lib/nis/fee/transfer.rb +51 -0
- data/lib/nis/keypair.rb +18 -0
- data/lib/nis/mixin/struct.rb +50 -0
- data/lib/nis/request.rb +1 -0
- data/lib/nis/request/announce.rb +10 -0
- data/lib/nis/request/prepare_announce.rb +48 -0
- data/lib/nis/struct/block.rb +1 -1
- data/lib/nis/struct/mosaic_properties.rb +2 -2
- data/lib/nis/transaction/importance_transfer.rb +25 -28
- data/lib/nis/transaction/mosaic_definition_creation.rb +33 -34
- data/lib/nis/transaction/mosaic_supply_change.rb +30 -30
- data/lib/nis/transaction/multisig.rb +17 -36
- data/lib/nis/transaction/multisig_aggregate_modification.rb +29 -31
- data/lib/nis/transaction/multisig_signature.rb +24 -23
- data/lib/nis/transaction/provision_namespace.rb +53 -33
- data/lib/nis/transaction/transfer.rb +22 -52
- data/lib/nis/util.rb +16 -13
- data/lib/nis/version.rb +1 -1
- data/nis.gemspec +2 -0
- metadata +62 -19
- data/lib/nis/mixin/network.rb +0 -20
- data/samples/request_importance_transfer_transaction.rb +0 -34
- data/samples/request_mosaic_definition_creation_transaction.rb +0 -62
- data/samples/request_mosaic_supply_change_transaction.rb +0 -35
- data/samples/request_multisig_add_cosignatory_transaction.rb +0 -58
- data/samples/request_multisig_aggregate_modification_transaction.rb +0 -45
- data/samples/request_multisig_signature_transaction.rb +0 -53
- data/samples/request_multisig_transaction.rb +0 -54
- data/samples/request_provision_namespace_transaction.rb +0 -31
- data/samples/request_transfer_transaction.rb +0 -47
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48fc594828a7e878a2d93c176aa7969eda269b74
|
4
|
+
data.tar.gz: dfa004cc7326b9cc581cc5e42e32fa4e6cbc7117
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e0b204992ea6daabbb0186484d98978a984e28598f6bb0bbd4f891143d97292c118c57993be1db835b51790649bbcd6b69c3f98a22934afb9ecd9e52c64ba12
|
7
|
+
data.tar.gz: dcfcace177ac5abcb30c0f90dcb83f62e4586c3a73a343d098de82b5dc9d5aadb968765a4e7628b2fa647d7aca5488eb652c6c5c3c1bdbd83b9309789ec19144
|
data/.travis.yml
CHANGED
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2017 Yoshiyuki Ieyama
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
CHANGED
@@ -26,10 +26,9 @@ Or add this line to your application's Gemfile:
|
|
26
26
|
gem 'nis-ruby'
|
27
27
|
```
|
28
28
|
|
29
|
-
|
30
29
|
## Usage
|
31
30
|
|
32
|
-
More specific
|
31
|
+
More specific example codes are in **examples/** directory.
|
33
32
|
|
34
33
|
### Methods
|
35
34
|
|
@@ -44,22 +43,16 @@ nis.status
|
|
44
43
|
# => {code: 6, type: 4, message: "status"}
|
45
44
|
# See http://bob.nem.ninja/docs/#status-request
|
46
45
|
|
46
|
+
kp = Nis::Keypair.new(SENDER_PRIV_KEY)
|
47
47
|
tx = Nis::Transaction::Transfer.new(
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
message: Nis::Struct::Message.new('Hello'),
|
52
|
-
timeStamp: Nis::Util.timestamp,
|
53
|
-
deadline: Nis::Util.timestamp + 43_200,
|
54
|
-
version: Nis::Util::TESTNET_VERSION_1
|
55
|
-
)
|
56
|
-
|
57
|
-
rpa = Nis::Struct::RequestPrepareAnnounce.new(
|
58
|
-
transaction: tx,
|
59
|
-
privateKey: SENDER_PRIVATE_KEY
|
48
|
+
RECIPIENT_ADDRESS,
|
49
|
+
10_000_000,
|
50
|
+
'Message'
|
60
51
|
)
|
61
|
-
|
62
|
-
nis.transaction_prepare_announce(
|
52
|
+
req = Nis::Request::PrepareAnnounce.new(tx, kp)
|
53
|
+
nis.transaction_prepare_announce(req)
|
54
|
+
# See http://bob.nem.ninja/docs/#initiating-a-transfer-transaction
|
55
|
+
# => {innerTransactionHash: {}, code: 1, type: 1, message: "SUCCESS", transactionHash: {data: "9da41fd6c6886740ae6a15c869df0470015d78103e5b216971aa09fdbcce9cde"}}
|
63
56
|
```
|
64
57
|
|
65
58
|
### Requesting
|
@@ -78,27 +71,6 @@ nis.request(:post, '/account/unlock',
|
|
78
71
|
)
|
79
72
|
# => Nothing
|
80
73
|
# See http://bob.nem.ninja/docs/#locking-and-unlocking-accounts
|
81
|
-
|
82
|
-
tx = {
|
83
|
-
amount: 10_000_000,
|
84
|
-
fee: 1_000_000,
|
85
|
-
recipient: 'TALICELCD3XPH4FFI5STGGNSNSWPOTG5E4DS2TOS',
|
86
|
-
signer: 'a1aaca6c17a24252e674d155713cdf55996ad00175be4af02a20c67b59f9fe8a',
|
87
|
-
message: {
|
88
|
-
payload: '',
|
89
|
-
type: 1
|
90
|
-
},
|
91
|
-
type: 0x0101, # 257
|
92
|
-
timeStamp: Nis::Util.timestamp,
|
93
|
-
deadline: Nis::Util.timestamp + 43_200,
|
94
|
-
version: Nis::Util::TESTNET_VERSION_1
|
95
|
-
}
|
96
|
-
puts nis.request! :post, 'transaction/prepare-announce', {
|
97
|
-
transaction: tx,
|
98
|
-
privateKey: '68e4f79f886927de698df4f857de2aada41ccca6617e56bb0d61623b35b08cc0'
|
99
|
-
}
|
100
|
-
# => {innerTransactionHash: {}, code: 1, type: 1, message: "SUCCESS", transactionHash: {data: "9da41fd6c6886740ae6a15c869df0470015d78103e5b216971aa09fdbcce9cde"}}
|
101
|
-
# See http://bob.nem.ninja/docs/#initiating-a-transfer-transaction
|
102
74
|
```
|
103
75
|
|
104
76
|
|
@@ -121,12 +93,10 @@ $ nis request get account/harvests --params=address:TALICELCD3XPH4FFI5STGGNSNSWP
|
|
121
93
|
|
122
94
|
## Connection
|
123
95
|
|
124
|
-
|
96
|
+
You can find nodes here.
|
97
|
+
- [NEM Node Rewards](https://supernodes.nem.io/)
|
125
98
|
|
126
|
-
|
127
|
-
$ export NIS_URL=http://bigalice3.nem.ninja:7890
|
128
|
-
$ nis heartbeat # => {"code":1,"type":2,"message":"ok"}
|
129
|
-
```
|
99
|
+
*Currently the gem only supports transactions for local node.*
|
130
100
|
|
131
101
|
### Hash
|
132
102
|
|
@@ -138,13 +108,23 @@ Nis.new(host: 'bigalice3.nem.ninja')
|
|
138
108
|
Nis.new(url: 'http://bigalice3.nem.ninja:7890')
|
139
109
|
```
|
140
110
|
|
111
|
+
### Environment Variable
|
112
|
+
|
113
|
+
```bash
|
114
|
+
$ export NIS_URL=http://bigalice3.nem.ninja:7890
|
115
|
+
$ nis heartbeat # => {"code":1,"type":2,"message":"ok"}
|
116
|
+
```
|
117
|
+
|
118
|
+
Environment variable used as default value.
|
119
|
+
|
141
120
|
|
142
121
|
## TODO
|
143
122
|
|
144
123
|
* Do more improvements
|
124
|
+
* Remote transaction
|
145
125
|
* Mosaic transferring
|
146
126
|
* Encryption message
|
147
|
-
*
|
127
|
+
* Be more easy to use
|
148
128
|
|
149
129
|
|
150
130
|
## Documentation
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'nis'
|
2
|
-
hr = '-' * 64
|
3
2
|
|
4
3
|
# create NIS instance
|
5
4
|
nis = Nis.new
|
@@ -9,44 +8,37 @@ nis = Nis.new
|
|
9
8
|
# Each endpoint mapped into method name.
|
10
9
|
# It returns Nis::Struct object which mapped API response.
|
11
10
|
keypair = nis.account_generate
|
12
|
-
puts hr
|
13
11
|
|
14
12
|
# Access properties.
|
15
13
|
# Names are same API response.
|
16
14
|
puts keypair.address
|
17
15
|
puts keypair.privateKey
|
18
16
|
puts keypair.publicKey
|
19
|
-
puts hr
|
20
17
|
|
21
18
|
# Ruby style access.
|
22
19
|
# Also can be access property by snakecase.
|
23
20
|
puts keypair.private_key
|
24
21
|
puts keypair.public_key
|
25
|
-
puts hr
|
26
22
|
|
27
23
|
# hash like access.
|
28
24
|
# Also can be access property like hash.
|
29
25
|
puts keypair[:privateKey]
|
30
26
|
puts keypair[:private_key]
|
31
|
-
puts hr
|
32
27
|
|
33
28
|
# Address object
|
34
29
|
# Some property wrapped by value object.
|
35
30
|
puts address = keypair.address
|
36
31
|
puts address.testnet?
|
37
|
-
puts hr
|
38
32
|
|
39
33
|
# /account/get?address={address}
|
40
34
|
# -> account_get address: {address}
|
41
35
|
# Passing parameters by keyword arguments.
|
42
|
-
account_meta_pair = nis.account_get
|
36
|
+
account_meta_pair = nis.account_get(address: keypair.address)
|
43
37
|
account = account_meta_pair[:account]
|
44
38
|
puts account.balance
|
45
|
-
puts hr
|
46
39
|
|
47
40
|
# /account/get/from-public-key?public-key={key}
|
48
41
|
# -> account_get_public_key public_key: {key}
|
49
|
-
account_meta_pair = nis.account_get_from_public_key
|
42
|
+
account_meta_pair = nis.account_get_from_public_key(public_key: keypair.public_key)
|
50
43
|
account = account_meta_pair.account
|
51
44
|
puts account.address
|
52
|
-
puts hr
|
File without changes
|
@@ -1,6 +1,4 @@
|
|
1
|
-
require 'pp'
|
2
1
|
require 'nis'
|
3
|
-
hr = '-' * 64
|
4
2
|
|
5
3
|
nis = Nis.new
|
6
4
|
|
@@ -9,33 +7,27 @@ incoming = nis.debug_connections_incoming
|
|
9
7
|
incoming[:outstanding].each do |ai|
|
10
8
|
puts ai.to_hash
|
11
9
|
end
|
12
|
-
puts hr
|
13
10
|
|
14
11
|
incoming[:most_recent].each do |ai|
|
15
12
|
puts ai.to_hash
|
16
13
|
end
|
17
|
-
puts hr
|
18
14
|
|
19
15
|
outgoing = nis.debug_connections_outgoing
|
20
16
|
|
21
17
|
outgoing[:outstanding].each do |ai|
|
22
18
|
puts ai.to_hash
|
23
19
|
end
|
24
|
-
puts hr
|
25
20
|
|
26
21
|
outgoing[:most_recent].each do |ai|
|
27
22
|
puts ai.to_hash
|
28
23
|
end
|
29
|
-
puts hr
|
30
24
|
|
31
25
|
timers = nis.debug_connections_timers
|
32
26
|
timers.each do |t|
|
33
27
|
puts t.to_hash
|
34
28
|
end
|
35
|
-
puts hr
|
36
29
|
|
37
30
|
syncs = nis.debug_time_synchronization
|
38
31
|
syncs.each do |sync|
|
39
32
|
puts sync.to_hash
|
40
33
|
end
|
41
|
-
puts hr
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'nis'
|
2
|
-
hr = '-' * 64
|
3
2
|
|
4
3
|
nis = Nis.new
|
5
4
|
|
@@ -9,16 +8,12 @@ page = Nis::Struct::AccountPrivateKeyTransactionsPage.new(
|
|
9
8
|
|
10
9
|
incoming = nis.local_account_transfers_incoming(page: page)
|
11
10
|
puts incoming.last.to_hash
|
12
|
-
puts hr
|
13
11
|
|
14
12
|
outgoing = nis.local_account_transfers_outgoing(page: page)
|
15
13
|
puts outgoing.last.to_hash
|
16
|
-
puts hr
|
17
14
|
|
18
15
|
all = nis.local_account_transfers_all(page: page)
|
19
16
|
puts all.last.to_hash
|
20
|
-
puts hr
|
21
17
|
|
22
18
|
blocks = nis.local_chain_blocks_after(block_height: 2649)
|
23
19
|
puts blocks.last
|
24
|
-
puts hr
|
File without changes
|
@@ -1,34 +1,26 @@
|
|
1
1
|
require 'nis'
|
2
|
-
hr = '-' * 64
|
3
2
|
|
4
3
|
nis = Nis.new
|
5
4
|
|
6
5
|
node_info = nis.node_info
|
7
6
|
puts node_info.to_hash
|
8
|
-
puts hr
|
9
7
|
|
10
8
|
ext_node_info = nis.node_extended_info
|
11
9
|
puts ext_node_info.to_hash
|
12
|
-
puts hr
|
13
10
|
|
14
11
|
node_exp = nis.node_experiences
|
15
12
|
puts node_exp.first.to_hash
|
16
|
-
puts hr
|
17
13
|
|
18
14
|
peer_all = nis.node_peerlist_all
|
19
15
|
puts peer_all.to_hash
|
20
|
-
puts hr
|
21
16
|
|
22
17
|
reachables = nis.node_peerlist_reachable
|
23
18
|
puts reachables.first.to_hash
|
24
|
-
puts hr
|
25
19
|
|
26
20
|
actives = nis.node_peerlist_active
|
27
21
|
puts actives.first.to_hash
|
28
|
-
puts hr
|
29
22
|
|
30
23
|
puts nis.node_active_peers_max_chain_height
|
31
|
-
puts hr
|
32
24
|
|
33
25
|
bnr = Nis::Struct::BootNodeRequest.new(
|
34
26
|
metaData: {
|
@@ -50,4 +42,3 @@ begin
|
|
50
42
|
rescue => ex
|
51
43
|
puts ex
|
52
44
|
end
|
53
|
-
puts hr
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'nis'
|
2
|
+
|
3
|
+
# sender
|
4
|
+
A_PRIVATE_KEY = '260206d683962350532408e8774fd14870a173b7fba17f6b504da3dbc5f1cc9f'
|
5
|
+
A_PUBLIC_KEY = 'cc63b4dcdec745417043c3fa0992ec3a1695461a26d90264744648abbd5caa0d'
|
6
|
+
|
7
|
+
# remote
|
8
|
+
B_PUBLIC_KEY = 'cc6c9485d15b992501e57fe3799487e99de272f79c5442de94eeb998b45e0144'
|
9
|
+
|
10
|
+
# TODO: public key calculated from private key in future version.
|
11
|
+
# it will not need to set public key.
|
12
|
+
kp = Nis::Keypair.new(A_PRIVATE_KEY, public_key: A_PUBLIC_KEY)
|
13
|
+
|
14
|
+
tx = Nis::Transaction::ImportanceTransfer.new(B_PUBLIC_KEY, :activate)
|
15
|
+
puts "Fee: #{tx.fee.to_i}"
|
16
|
+
|
17
|
+
nis = Nis.new
|
18
|
+
req = Nis::Request::PrepareAnnounce.new(tx, kp)
|
19
|
+
res = nis.transaction_prepare_announce(req)
|
20
|
+
|
21
|
+
puts "Message: #{res.message}"
|
22
|
+
puts "TransactionHash: #{res.transaction_hash}"
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'nis'
|
2
|
+
|
3
|
+
# owner
|
4
|
+
A_PRIVATE_KEY = '4ce5c8f9fce571db0d9ac1adf00b8d3ba0f078ed40835fd3d730a2f24b834214'
|
5
|
+
A_PUBLIC_KEY = 'be2ba9cb15a547110d511a4d43c0482fbb584d78781abac01fb053d18f4a0033'
|
6
|
+
A_ADDRESS = 'TDPP2C4XQLMESBMCYGWN4NRAJAKZEYRV75KGYSOB'
|
7
|
+
|
8
|
+
# TODO: public key calculated from private key in future version.
|
9
|
+
# it will not need to set public key.
|
10
|
+
kp = Nis::Keypair.new(A_PRIVATE_KEY, public_key: A_PUBLIC_KEY)
|
11
|
+
|
12
|
+
mosaic_id = Nis::Struct::MosaicId.new(
|
13
|
+
namespaceId: 'sushi',
|
14
|
+
name: 'maguro'
|
15
|
+
)
|
16
|
+
|
17
|
+
properties = Nis::Struct::MosaicProperties.new(
|
18
|
+
divisibility: 0,
|
19
|
+
initialSupply: 10_000,
|
20
|
+
supplyMutable: true,
|
21
|
+
transferable: true
|
22
|
+
)
|
23
|
+
|
24
|
+
levy = Nis::Struct::MosaicLevy.new(
|
25
|
+
type: 1,
|
26
|
+
recipient: A_ADDRESS,
|
27
|
+
mosaicId: {
|
28
|
+
namespaceId: 'nem',
|
29
|
+
name: 'xem'
|
30
|
+
},
|
31
|
+
fee: 1_000
|
32
|
+
)
|
33
|
+
|
34
|
+
definition = Nis::Struct::MosaicDefinition.new(
|
35
|
+
creator: A_PUBLIC_KEY,
|
36
|
+
id: mosaic_id,
|
37
|
+
description: 'Japanese Soul food SHUSHI.',
|
38
|
+
properties: properties,
|
39
|
+
levy: levy
|
40
|
+
)
|
41
|
+
|
42
|
+
tx = Nis::Transaction::MosaicDefinitionCreation.new(definition)
|
43
|
+
puts "Fee: #{tx.fee.to_i}"
|
44
|
+
|
45
|
+
nis = Nis.new
|
46
|
+
req = Nis::Request::PrepareAnnounce.new(tx, kp)
|
47
|
+
res = nis.transaction_prepare_announce(req)
|
48
|
+
|
49
|
+
puts "Message: #{res.message}"
|
50
|
+
puts "TransactionHash: #{res.transaction_hash}"
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'nis'
|
2
|
+
|
3
|
+
# owner
|
4
|
+
A_PRIVATE_KEY = '4ce5c8f9fce571db0d9ac1adf00b8d3ba0f078ed40835fd3d730a2f24b834214'
|
5
|
+
A_PUBLIC_KEY = 'be2ba9cb15a547110d511a4d43c0482fbb584d78781abac01fb053d18f4a0033'
|
6
|
+
|
7
|
+
# TODO: public key calculated from private key in future version.
|
8
|
+
# it will not need to set public key.
|
9
|
+
kp = Nis::Keypair.new(A_PRIVATE_KEY, public_key: A_PUBLIC_KEY)
|
10
|
+
|
11
|
+
mosaic_id = Nis::Struct::MosaicId.new(
|
12
|
+
namespaceId: 'sushi',
|
13
|
+
name: 'maguro'
|
14
|
+
)
|
15
|
+
|
16
|
+
tx = Nis::Transaction::MosaicSupplyChange.new(mosaic_id, :increase, 1_000)
|
17
|
+
puts "Fee: #{tx.fee.to_i}"
|
18
|
+
|
19
|
+
nis = Nis.new
|
20
|
+
req = Nis::Request::PrepareAnnounce.new(tx, kp)
|
21
|
+
res = nis.transaction_prepare_announce(req)
|
22
|
+
|
23
|
+
puts "Message: #{res.message}"
|
24
|
+
puts "TransactionHash: #{res.transaction_hash}"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'nis'
|
2
|
+
|
3
|
+
# multisig
|
4
|
+
# A_PRIVATE_KEY = '9bf8e6fd1a178a3cce39840cda34f80f55fe075c15f48eefad8506f4a70c2b47'
|
5
|
+
A_PUBLIC_KEY = '4b26a75313b747985470977a085ae6f840a0b84ebd96ddf17f4a31a2b580d078'
|
6
|
+
# A_ADDRESS = 'TBAOYZS4FGY5XPQ5OD2VL3SY7GQ5FLH66GRCX5DL'
|
7
|
+
|
8
|
+
# cosignatory
|
9
|
+
B_PRIVATE_KEY = '260206d683962350532408e8774fd14870a173b7fba17f6b504da3dbc5f1cc9f'
|
10
|
+
B_PUBLIC_KEY = 'cc63b4dcdec745417043c3fa0992ec3a1695461a26d90264744648abbd5caa0d'
|
11
|
+
B_ADDRESS = 'TAWKJTUP4DWKLDKKS534TYP6G324CBNMXKBA4X7B'
|
12
|
+
|
13
|
+
# TODO: public key calculated from private key in future version.
|
14
|
+
# it will not need to set public key.
|
15
|
+
kp = Nis::Keypair.new(B_PRIVATE_KEY, public_key: B_PUBLIC_KEY)
|
16
|
+
|
17
|
+
ttx = Nis::Transaction::Transfer.new(B_ADDRESS, 1_000_000, 'Good luck!')
|
18
|
+
tx = Nis::Transaction::Multisig.new(ttx, A_PUBLIC_KEY)
|
19
|
+
puts "Fee: #{tx.fee.to_i}"
|
20
|
+
|
21
|
+
nis = Nis.new
|
22
|
+
req = Nis::Request::PrepareAnnounce.new(tx, kp)
|
23
|
+
res = nis.transaction_prepare_announce(req)
|
24
|
+
|
25
|
+
puts "Message: #{res.message}"
|
26
|
+
puts "TransactionHash: #{res.transaction_hash}"
|