huginn_callisto_network_agent 0.1.76 → 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: 978696531634721dd99da0a9200ac467dab56affe953ab733388a007ddf98677
4
- data.tar.gz: be4148d9bd03535cf47b51e4277509515053a06260fb35ecfe73435740207935
3
+ metadata.gz: bb44e0ebbc2034ccc01b7b724c5f55b36d0c9066a75122019a7ee10c5e45c9ca
4
+ data.tar.gz: 9d884a5a362b25025ffbc1b6fa2273ddc951ee45efd6e4592f7d86569ec34f85
5
5
  SHA512:
6
- metadata.gz: e7ed37406065d75edb82432406bcc2162b5a8ce289a0ad2b7f9c78814a731265cacef5753332332c24ed8c01537f8aaf93d702a00f69475eea7ee624696568cd
7
- data.tar.gz: fff1c67747226fe34c3a762396d399c33f5a9b94996fafa16c806bd3a68c746670ac4b3f625cf50fec7aadc82afdb3659df0600d67ab0e2cf6d01d53afc763c1
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,96 +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 "0xe8e33700"
460
- transaction['call_type'] = 'addLiquidity'
461
- when "0x25498c75"
462
- transaction['call_type'] = 'addNewTokenClass'
463
- when "0xb199892a"
464
- transaction['call_type'] = 'addNode'
465
- when "0x01026099"
466
- transaction['call_type'] = 'addTokens'
467
- when "0x095ea7b3"
468
- transaction['call_type'] = 'approve'
469
- when "0x514fcac7"
470
- transaction['call_type'] = 'cancelOrder'
471
- when "0x8f995234", "0x4e71d92d"
472
- transaction['call_type'] = 'claim'
473
- when "0xa0169f0d"
474
- transaction['call_type'] = 'createDumperShield'
475
- when "0x96d4f640"
476
- transaction['call_type'] = 'createOrder'
477
- when "0x65814455"
478
- transaction['call_type'] = 'deactivateNode'
479
- when "0xbd000546"
480
- transaction['call_type'] = 'DeleteOrder'
481
- when "0x1da7ee0d"
482
- transaction['call_type'] = 'depositPosition'
483
- when "0x487cda0d"
484
- transaction['call_type'] = 'depositTokens'
485
- when "0x83f818b4"
486
- transaction['call_type'] = 'game'
487
- when "0xc4d66de8", "0x1624f6c6"
488
- transaction['call_type'] = 'initialize'
489
- when "0xbf3c35c3"
490
- transaction['call_type'] = 'migrateCLOE'
491
- when "0x2da91f95"
492
- transaction['call_type'] = 'migrationWithdraw'
493
- when "0x40c10f19"
494
- transaction['call_type'] = 'mint'
495
- when "0x3054d9cb"
496
- transaction['call_type'] = 'modifyClassProperty'
497
- when "0xb2b99ec9"
498
- transaction['call_type'] = 'removeNode'
499
- when "0x11411e08"
500
- transaction['call_type'] = 'sellToken'
501
- when "0xcf456ae7"
502
- transaction['call_type'] = 'setMinter'
503
- when "0xcdfdb7dc"
504
- transaction['call_type'] = 'setRatios'
505
- when "0xfe3f3f02"
506
- transaction['call_type'] = 'setSalary'
507
- when "0x957138a4"
508
- transaction['call_type'] = 'setStop'
509
- when "0xc98e0c3c"
510
- transaction['call_type'] = 'silentTransfer'
511
- when "0x84daaf54"
512
- transaction['call_type'] = 'stakingMigrate'
513
- when "0x5d8c85ef"
514
- transaction['call_type'] = 'start_staking'
515
- when "0x2e9b3dc3"
516
- transaction['call_type'] = 'swapExactCLOForTokens'
517
- when "0x38ed1739"
518
- transaction['call_type'] = 'swapExactTokensForTokens'
519
- when "0xa6e83852"
520
- transaction['call_type'] = 'swapTokensForExactCLO'
521
- when "0x8803dbee"
522
- transaction['call_type'] = 'swapTokensForExactTokens'
523
502
  when "0xa9059cbb"
524
- transaction['call_type'] = 'TokenTransfer'
525
503
  transaction['symbol'] = find_symbol(transaction['to'])
526
504
  # transaction['to'] = transaction['input'][10, 64]
527
505
  transaction['to'] = "0x#{transaction['input'][34, 40]}"
528
506
  transaction['value'] = "#{transaction['input'][74, 64].to_i(16) / power.to_i.to_f}"
529
- when "0x335a9406"
530
- transaction['call_type'] = 'transfer'
531
- when "0xf2fde38b"
532
- transaction['call_type'] = 'transferOwnership'
533
- when "0xa2e62045", "0x82ab890a"
534
- transaction['call_type'] = 'update'
535
- when "0x3659cfe6"
536
- transaction['call_type'] = 'upgradeTo'
537
- when "0xd9caed12"
538
- transaction['call_type'] = 'withdraw'
539
- when "0x78be0ad4", "0xcd948855"
540
- transaction['call_type'] = 'withdraw_stake'
541
- else
542
- transaction['call_type'] = 'unknown'
507
+ # else
508
+ # transaction['call_type'] = 'unknown'
543
509
  end
544
510
  if transaction['input'] != '0x'
545
511
  hex_string = transaction['input'].dup
@@ -554,6 +520,10 @@ module Agents
554
520
  transaction['input_utf8'] = decoded_string
555
521
  end
556
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])}"
557
527
  create_event payload: transaction
558
528
  end
559
529
  end
@@ -1667,6 +1637,8 @@ module Agents
1667
1637
  callosha_slots()
1668
1638
  when "2bears_check_order_by_id"
1669
1639
  twobears_check_order_by_id()
1640
+ when "get_abi_json"
1641
+ get_abi_json(interpolated['wallet'],false)
1670
1642
  else
1671
1643
  log "Error: type has an invalid value (#{type})"
1672
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.76
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-23 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