indium 0.0.9 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/indium.rb +20 -57
  3. metadata +9 -24
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 879c7fd8a25a82458c27c6799589b91b7d27c517ad2bfc1be5894bddc3ff9db9
4
- data.tar.gz: 95a0def23edda27521b15e5d036a4fbb43d5fdc6a98f0aa1c2fe802bf54d0c0c
3
+ metadata.gz: acf0e6d7ec868e722ba35b8c69e224085c36dbaf879444d2fabb2fbc615d82f3
4
+ data.tar.gz: c6082918207b40ef23e0ad927b27de53d4ba8c65b173a26c0e86f72b8685927f
5
5
  SHA512:
6
- metadata.gz: eddcbaa0e50bdb03600838f430d30f9c7af9defc2f2425e4c6cf3964bf292dd8004f39b25a1d7503bf1d138494519d3bada570b2e54ceced08a280ffd2a3ad2b
7
- data.tar.gz: 9a29700f3e06596c99e5eb67aef0419ebb2dfb52d84131b5f4df7dd28f76384474c548bff2560ecde48d5177fc9acd608b2f4567e083c40d87958551f1dbbf1d
6
+ metadata.gz: 604b7d0408f182d9cd04f1b993aa773de734598eeed0b7934002cc8737ffec1cd9d256735bb0311dd2cd2bac0cdcc0fd5cf3ad3e08a928c9342993d0adaa87c3
7
+ data.tar.gz: c7d5242b1bdd419ba1f173ab8a5dad47e403c3383021f9b6fd5a86e3f60de1be2186efff451e31de060c03471948621c3dd7e91f433ef2708ea2ac63abf37d49
@@ -1,76 +1,39 @@
1
- require 'stellar-sdk'
2
- require 'httparty'
3
- require 'json'
1
+ require 'ethereum.rb'
2
+ require 'eth'
4
3
 
5
4
  class Indium
6
- attr_reader :mode
7
-
8
- def initialize(mode)
9
- @issuer_address = "GB6TBT62K4NG2MIHMGGRZPIW2GI62T56RCWHWHKCY2BIORDPQQ5LCPVR"
10
- @issuer = Stellar::KeyPair.from_address(@issuer_address)
11
- @asset = Stellar::Asset.alphanum12("INDIUM", @issuer)
12
- @mode = mode # test or prod
13
- if mode == 'test'
14
- @client = Stellar::Client.default_testnet
15
- @horizon = "https://horizon-testnet.stellar.org"
16
- elsif mode == 'prod'
17
- @client = Stellar::Client.default
18
- @horizon = "https://horizon.stellar.org"
19
- end
20
- end
21
-
22
- def balances(pubkey)
23
- resp = HTTParty.get(@horizon + "/accounts/" + pubkey)
24
- JSON.parse(resp.body)["balances"].inject({}) do |f,h|
25
- f.merge({ (h["asset_code"] || h["asset_type"]) => h["balance"] })
26
- end
27
- end
28
-
29
- def balances_direct(pubkey)
30
- account = Stellar::Account.from_address(pubkey)
31
- @client.account_info(account).balances.inject({}) do |f,h|
32
- f.merge({ (h["asset_code"] || h["asset_type"]) => h["balance"] })
5
+ def initialize(node_url, chain_id)
6
+ Eth.configure do |config|
7
+ config.chain_id = chain_id # nil by default, meaning valid on any chain
33
8
  end
9
+ @client = Ethereum::HttpClient.new(node_url)
34
10
  end
35
11
 
36
- def transfer_native(amount, sender_privkey, receiver_pubkey)
37
- sender = Stellar::Account.from_seed(sender_privkey)
38
- recipient = Stellar::Account.from_address(receiver_pubkey)
39
-
40
- @client.send_payment({
41
- from: sender,
42
- to: recipient,
43
- amount: Stellar::Amount.new(amount)
44
- })
12
+ def balance(pubkey)
13
+ @client.eth_get_balance(pubkey)
45
14
  end
46
15
 
47
- def transfer(amount, sender_privkey, receiver_pubkey)
48
- sender = Stellar::Account.from_seed(sender_privkey)
49
- recipient = Stellar::Account.from_address(receiver_pubkey)
50
-
51
- @client.send_payment({
52
- from: sender,
53
- to: recipient,
54
- amount: Stellar::Amount.new(amount, @asset)
55
- })
16
+ def transfer(sender_privkey, receiver_pubkey, amount, hex_data, gas_limit = 21_000, gas_price = 3_141_592)
17
+ @client.gas_price = gas_price
18
+ @client.gas_limit = gas_limit
19
+ @client.transfer(sender_privkey, receiver_pubkey, amount) # transfer_and_wait ?
56
20
  end
57
21
 
58
22
  def create_indium_account(privkey)
59
- account = Stellar::Account.random
60
- transfer_native(4, privkey, account.address) # Activate the account
23
+ kp = Eth::Key.new
24
+ return [kp.address, kp.private_hex]
25
+ end
61
26
 
62
- @client.trust({
63
- account: account,
64
- asset: @asset
65
- }) # create a trustline for Indium token
66
- return [account.address, account.keypair.seed]
27
+ def self.local
28
+ self.new('http://localhost:8545',43391)
67
29
  end
68
30
 
69
31
  def self.test
70
- self.new('test')
32
+ self.new('http://localhost:8545',43391)
71
33
  end
72
34
 
73
35
  def self.prod
74
- self.new('prod')
36
+ raise "Indium production network is not yet live"
37
+ self.new('https://rpcnode.indium.network:8545',43391)
75
38
  end
76
39
  end
metadata CHANGED
@@ -1,59 +1,44 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: indium
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nilesh Trivedi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-30 00:00:00.000000000 Z
11
+ date: 2018-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: stellar-sdk
14
+ name: eth
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.2'
19
+ version: 0.4.6
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.2'
26
+ version: 0.4.6
27
27
  - !ruby/object:Gem::Dependency
28
- name: httparty
28
+ name: ethereum.rb
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.15'
33
+ version: 2.1.8
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.15'
41
- - !ruby/object:Gem::Dependency
42
- name: json
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '2.1'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '2.1'
55
- description: Library for querying/posting Indium transactions from Stellar test/main
56
- network
40
+ version: 2.1.8
41
+ description: Library for querying/posting transactions from the Indium network
57
42
  email: github@nileshtrivedi.com
58
43
  executables: []
59
44
  extensions: []