huginn_callisto_network_agent 0.1.75 → 0.1.77

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: 34fa3a00a75637bb883f7668df619823cbfc3ccc1eb04057a0ac14f624f2d57a
4
- data.tar.gz: 818e3a4e3823040ba3696a9342aed4e280028cea0bda55e480ca72539b2bd87b
3
+ metadata.gz: bb44e0ebbc2034ccc01b7b724c5f55b36d0c9066a75122019a7ee10c5e45c9ca
4
+ data.tar.gz: 9d884a5a362b25025ffbc1b6fa2273ddc951ee45efd6e4592f7d86569ec34f85
5
5
  SHA512:
6
- metadata.gz: 2708f9218ceda303874d6843fd9726b0a1ea64a8f88c75fcd3343b60b161796284651b926265ab3ec0be0d3c4785323fa1f72ee7483a269c405cd0d51730a3e6
7
- data.tar.gz: 477d040fba0d091f19b5cf85b5ae592d110a219d3e03bec5718ee0acd1734e5389efe44820c3773b3ff65e97a84dd3e782b2387e024f7920c8cef822f0a9b68d
6
+ metadata.gz: 46eb61be573cc249c56bb6f39f2a8078188b0c5cd009b5655d929b6b92235d5a6838d84fb7fbc7ffd1ba4410b33aa3e82a753b01e227fabd54e7a5af6c947e0b
7
+ data.tar.gz: 81fb96b63c44b7fddd213dd807ae4eb124fc3745d405c3d8fdb4ecb33a24b887aea9f22a4d60bb238fdee10622804744bb6cfa10d82854951ea0ddf05f45df63
@@ -53,7 +53,8 @@ module Agents
53
53
  'changes_only' => 'true',
54
54
  'filter_for_method_id' => '',
55
55
  'first_block' => '',
56
- 'last_block' => ''
56
+ 'last_block' => '',
57
+ 'sql_db' => ''
57
58
  }
58
59
  end
59
60
 
@@ -61,7 +62,7 @@ module Agents
61
62
  form_configurable :emit_events, type: :boolean
62
63
  form_configurable :expected_receive_period_in_days, type: :string
63
64
  form_configurable :changes_only, type: :boolean
64
- form_configurable :type, type: :array, values: ['get_balance', 'net_peerCount', 'net_version', 'eth_protocolVersion', 'eth_gasPrice', 'eth_getTransactionCount', 'stake_reward_clo', 'get_tokens_balance', 'eth_getBlockByNumber', 'soy_farming_soy_clo_pending_rewards', 'soy_farming_soy_cloe_pending_rewards', 'stake_reward_soy', 'soy_farming_soy_btt_pending_rewards', 'soy_cs_pending_rewards', 'clo_sendtx', 'get_tx_by_address_with_filter', 'start_cs_clo', 'withdraw_cs_clo', 'get_tx_stats', 'callosha_slots', '2bears_check_order_by_id']
65
+ form_configurable :type, type: :array, values: ['get_balance', 'net_peerCount', 'net_version', 'eth_protocolVersion', 'eth_gasPrice', 'eth_getTransactionCount', 'stake_reward_clo', 'get_tokens_balance', 'eth_getBlockByNumber', 'soy_farming_soy_clo_pending_rewards', 'soy_farming_soy_cloe_pending_rewards', 'stake_reward_soy', 'soy_farming_soy_btt_pending_rewards', 'soy_cs_pending_rewards', 'clo_sendtx', 'get_tx_by_address_with_filter', 'start_cs_clo', 'withdraw_cs_clo', 'get_tx_stats', 'callosha_slots', '2bears_check_order_by_id', 'get_abi_json']
65
66
  form_configurable :wallet, type: :string
66
67
  form_configurable :rpc_server, type: :string
67
68
  form_configurable :wallet_password, type: :string
@@ -71,8 +72,9 @@ module Agents
71
72
  form_configurable :filter_for_method_id, type: :string
72
73
  form_configurable :first_block, type: :string
73
74
  form_configurable :last_block, type: :string
75
+ form_configurable :sql_db, type: :string
74
76
  def validate_options
75
- errors.add(:base, "type has invalid value: should be 'get_balance' 'net_peerCount' 'net_version' 'eth_protocolVersion' 'eth_gasPrice' 'eth_getTransactionCount' 'stake_reward_clo' 'get_tokens_balance' 'eth_getBlockByNumber' 'soy_farming_soy_clo_pending_rewards' 'soy_farming_soy_cloe_pending_rewards' 'stake_reward_soy' 'soy_farming_soy_btt_pending_rewards' 'soy_cs_pending_rewards' 'clo_sendtx' 'get_tx_by_address_with_filter' 'start_cs_clo' 'withdraw_cs_clo' 'get_tx_stats' 'callosha_slots' '2bears_check_order_by_id'") if interpolated['type'].present? && !%w(get_balance net_peerCount net_version eth_protocolVersion eth_gasPrice eth_getTransactionCount stake_reward_clo get_tokens_balance eth_getBlockByNumber soy_farming_soy_clo_pending_rewards soy_farming_soy_cloe_pending_rewards stake_reward_soy soy_farming_soy_btt_pending_rewards soy_cs_pending_rewards clo_sendtx get_tx_by_address_with_filter start_cs_clo withdraw_cs_clo get_tx_stats callosha_slots 2bears_check_order_by_id).include?(interpolated['type'])
77
+ errors.add(:base, "type has invalid value: should be 'get_balance' 'net_peerCount' 'net_version' 'eth_protocolVersion' 'eth_gasPrice' 'eth_getTransactionCount' 'stake_reward_clo' 'get_tokens_balance' 'eth_getBlockByNumber' 'soy_farming_soy_clo_pending_rewards' 'soy_farming_soy_cloe_pending_rewards' 'stake_reward_soy' 'soy_farming_soy_btt_pending_rewards' 'soy_cs_pending_rewards' 'clo_sendtx' 'get_tx_by_address_with_filter' 'start_cs_clo' 'withdraw_cs_clo' 'get_tx_stats' 'callosha_slots' '2bears_check_order_by_id' 'get_abi_json'") if interpolated['type'].present? && !%w(get_balance net_peerCount net_version eth_protocolVersion eth_gasPrice eth_getTransactionCount stake_reward_clo get_tokens_balance eth_getBlockByNumber soy_farming_soy_clo_pending_rewards soy_farming_soy_cloe_pending_rewards stake_reward_soy soy_farming_soy_btt_pending_rewards soy_cs_pending_rewards clo_sendtx get_tx_by_address_with_filter start_cs_clo withdraw_cs_clo get_tx_stats callosha_slots 2bears_check_order_by_id get_abi_json).include?(interpolated['type'])
76
78
 
77
79
  unless options['wallet_password'].present? || !['clo_sendtx' 'start_cs_clo' 'withdraw_cs_clo'].include?(options['type'])
78
80
  errors.add(:base, "wallet_password is a required field")
@@ -94,7 +96,7 @@ module Agents
94
96
  errors.add(:base, "rpc_server is a required field")
95
97
  end
96
98
 
97
- unless options['wallet'].present? || !['get_balance' 'eth_getTransactionCount' 'stake_reward_clo' 'get_tokens_balance' 'eth_getBlockByNumber' 'soy_farming_soy_clo_pending_rewards' 'soy_farming_soy_cloe_pending_rewards' 'stake_reward_soy' 'soy_farming_soy_btt_pending_rewards' 'soy_cs_pending_rewards' 'clo_sendtx' 'get_tx_by_address_with_filter' 'start_cs_clo' 'callosha_slots'].include?(options['type'])
99
+ unless options['wallet'].present? || !['get_balance' 'eth_getTransactionCount' 'stake_reward_clo' 'get_tokens_balance' 'eth_getBlockByNumber' 'soy_farming_soy_clo_pending_rewards' 'soy_farming_soy_cloe_pending_rewards' 'stake_reward_soy' 'soy_farming_soy_btt_pending_rewards' 'soy_cs_pending_rewards' 'clo_sendtx' 'get_tx_by_address_with_filter' 'start_cs_clo' 'callosha_slots' 'get_abi_json'].include?(options['type'])
98
100
  errors.add(:base, "wallet is a required field")
99
101
  end
100
102
 
@@ -191,6 +193,52 @@ module Agents
191
193
  return found_symbol
192
194
  end
193
195
 
196
+ def function_finder(contract_address=interpolated['wallet'],bytes_signature)
197
+
198
+ db = SQLite3::Database.new(interpolated['sql_db'])
199
+ result = db.get_first_row('SELECT text_signature FROM signatures WHERE bytes_signature = ? AND contract_address = ?', bytes_signature, contract_address)
200
+ db.close
201
+
202
+ if result
203
+ return result[0].split('(').first
204
+ else
205
+ db = SQLite3::Database.new(interpolated['sql_db'])
206
+ result = db.get_first_row('SELECT text_signature FROM signatures WHERE bytes_signature = ?', bytes_signature)
207
+ db.close
208
+ if result
209
+ return result[0].split('(').first
210
+ else
211
+ return 'unknown'
212
+ end
213
+ end
214
+ end
215
+
216
+ def get_abi_json(contract_address,internal=false)
217
+
218
+ uri = URI.parse("https://explorer.callisto.network/api?module=contract&action=getabi&address=#{contract_address}")
219
+ request = Net::HTTP::Get.new(uri)
220
+ request["Accept"] = "application/json"
221
+
222
+ req_options = {
223
+ use_ssl: uri.scheme == "https",
224
+ }
225
+
226
+ response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
227
+ http.request(request)
228
+ end
229
+
230
+ log_curl_output(response.code,response.body)
231
+
232
+ payload = JSON.parse(response.body)
233
+
234
+ if internal == false
235
+ create_event payload: payload
236
+ else
237
+ return payload
238
+ end
239
+
240
+ end
241
+
194
242
  def get_tx_receipt(hash)
195
243
 
196
244
  uri = URI.parse("#{interpolated['rpc_server']}")
@@ -450,94 +498,14 @@ module Agents
450
498
  transaction['symbol'] = "CLO"
451
499
  transaction['value'] = "#{transaction['value'].to_i(16) / power.to_i.to_f}"
452
500
  when "0xb88a802f"
453
- transaction['call_type'] = 'claimReward'
454
501
  transaction['symbol'] = find_symbol(transaction['to'])
455
- when "0xe80233c6"
456
- transaction['call_type'] = 'activateNode'
457
- when "0xc180f4f1"
458
- transaction['call_type'] = 'addClassProperty'
459
- when "0x25498c75"
460
- transaction['call_type'] = 'addNewTokenClass'
461
- when "0xb199892a"
462
- transaction['call_type'] = 'addNode'
463
- when "0x01026099"
464
- transaction['call_type'] = 'addTokens'
465
- when "0x095ea7b3"
466
- transaction['call_type'] = 'approve'
467
- when "0x514fcac7"
468
- transaction['call_type'] = 'cancelOrder'
469
- when "0x8f995234", "0x4e71d92d"
470
- transaction['call_type'] = 'claim'
471
- when "0xa0169f0d"
472
- transaction['call_type'] = 'createDumperShield'
473
- when "0x96d4f640"
474
- transaction['call_type'] = 'createOrder'
475
- when "0x65814455"
476
- transaction['call_type'] = 'deactivateNode'
477
- when "0xbd000546"
478
- transaction['call_type'] = 'DeleteOrder'
479
- when "0x1da7ee0d"
480
- transaction['call_type'] = 'depositPosition'
481
- when "0x487cda0d"
482
- transaction['call_type'] = 'depositTokens'
483
- when "0x83f818b4"
484
- transaction['call_type'] = 'game'
485
- when "0xc4d66de8", "0x1624f6c6"
486
- transaction['call_type'] = 'initialize'
487
- when "0xbf3c35c3"
488
- transaction['call_type'] = 'migrateCLOE'
489
- when "0x2da91f95"
490
- transaction['call_type'] = 'migrationWithdraw'
491
- when "0x40c10f19"
492
- transaction['call_type'] = 'mint'
493
- when "0x3054d9cb"
494
- transaction['call_type'] = 'modifyClassProperty'
495
- when "0xb2b99ec9"
496
- transaction['call_type'] = 'removeNode'
497
- when "0x11411e08"
498
- transaction['call_type'] = 'sellToken'
499
- when "0xcf456ae7"
500
- transaction['call_type'] = 'setMinter'
501
- when "0xcdfdb7dc"
502
- transaction['call_type'] = 'setRatios'
503
- when "0xfe3f3f02"
504
- transaction['call_type'] = 'setSalary'
505
- when "0x957138a4"
506
- transaction['call_type'] = 'setStop'
507
- when "0xc98e0c3c"
508
- transaction['call_type'] = 'silentTransfer'
509
- when "0x84daaf54"
510
- transaction['call_type'] = 'stakingMigrate'
511
- when "0x5d8c85ef"
512
- transaction['call_type'] = 'start_staking'
513
- when "0x2e9b3dc3"
514
- transaction['call_type'] = 'swapExactCLOForTokens'
515
- when "0x38ed1739"
516
- transaction['call_type'] = 'swapExactTokensForTokens'
517
- when "0xa6e83852"
518
- transaction['call_type'] = 'swapTokensForExactCLO'
519
- when "0x8803dbee"
520
- transaction['call_type'] = 'swapTokensForExactTokens'
521
502
  when "0xa9059cbb"
522
- transaction['call_type'] = 'TokenTransfer'
523
503
  transaction['symbol'] = find_symbol(transaction['to'])
524
504
  # transaction['to'] = transaction['input'][10, 64]
525
505
  transaction['to'] = "0x#{transaction['input'][34, 40]}"
526
506
  transaction['value'] = "#{transaction['input'][74, 64].to_i(16) / power.to_i.to_f}"
527
- when "0x335a9406"
528
- transaction['call_type'] = 'transfer'
529
- when "0xf2fde38b"
530
- transaction['call_type'] = 'transferOwnership'
531
- when "0xa2e62045", "0x82ab890a"
532
- transaction['call_type'] = 'update'
533
- when "0x3659cfe6"
534
- transaction['call_type'] = 'upgradeTo'
535
- when "0xd9caed12"
536
- transaction['call_type'] = 'withdraw'
537
- when "0x78be0ad4", "0xcd948855"
538
- transaction['call_type'] = 'withdraw_stake'
539
- else
540
- transaction['call_type'] = 'unknown'
507
+ # else
508
+ # transaction['call_type'] = 'unknown'
541
509
  end
542
510
  if transaction['input'] != '0x'
543
511
  hex_string = transaction['input'].dup
@@ -552,6 +520,10 @@ module Agents
552
520
  transaction['input_utf8'] = decoded_string
553
521
  end
554
522
  end
523
+ if !interpolated['sql_db'].empty?
524
+ transaction['call_type'] = function_finder(transaction['to'],transaction['input'][0, 10])
525
+ end
526
+ # log "#{transaction['input'][0, 10]} -> #{function_finder(transaction['to'],true,transaction['input'][0, 10])}"
555
527
  create_event payload: transaction
556
528
  end
557
529
  end
@@ -1665,6 +1637,8 @@ module Agents
1665
1637
  callosha_slots()
1666
1638
  when "2bears_check_order_by_id"
1667
1639
  twobears_check_order_by_id()
1640
+ when "get_abi_json"
1641
+ get_abi_json(interpolated['wallet'],false)
1668
1642
  else
1669
1643
  log "Error: type has an invalid value (#{type})"
1670
1644
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: huginn_callisto_network_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.75
4
+ version: 0.1.77
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicolas Germain
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-20 00:00:00.000000000 Z
11
+ date: 2024-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler