Class: Pangolin

Inherits:
Object
  • Object
show all
Defined in:
lib/testnets/pangolin.rb

Instance Method Summary collapse

Constructor Details

#initialize(rpc) ⇒ Pangolin

Returns a new instance of Pangolin.


2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/testnets/pangolin.rb', line 2

def initialize(rpc)
  @substrate_client = SubstrateClient.new(rpc)
  Scale::TypeRegistry.instance.custom_types = {
    "ExitSucceed": {
      "type": "enum",
      "type_mapping": [
        ["Stopped", "Null"],
        ["Returned", "Null"],
        ["Suicided", "Null"]
      ]
    },
    "ExitError": {
      "type": "enum",
      "type_mapping": [
        ["StackUnderflow", "Null"],
        ["StackOverflow", "Null"],
        ["InvalidJump", "Null"],
        ["InvalidRange", "Null"],
        ["DesignatedInvalid", "Null"],
        ["CallTooDeep", "Null"],
        ["CreateCollision", "Null"],
        ["CreateContractLimit", "Null"],
        ["OutOfOffset", "Null"],
        ["OutOfGas", "Null"],
        ["OutOfFund", "Null"],
        ["PCUnderflow", "Null"],
        ["CreateEmpty", "Null"],
        ["Other", "String"]
      ]
    },
    "ExitRevert": {
      "type": "enum",
      "type_mapping": [
        ["Reverted", "Null"],
      ]
    },
    "ExitFatal": {
      "type": "enum",
      "type_mapping": [
        ["NotSupported", "Null"],
        ["UnhandledInterrupt", "Null"],
        ["CallErrorAsFatal", "ExitError"],
        ["Other", "String"],
      ]
    },
    "ExitReason": {
      "type": "enum",
      "type_mapping": [
        ["Succeed", "ExitSucceed"],
        ["Error","ExitError"],
        ["Revert","ExitRevert"],
        ["Fatal","ExitFatal"]
      ]
    },
  }
end

Instance Method Details

#get_events_by_block_number(block_number) ⇒ Object


65
66
67
68
# File 'lib/testnets/pangolin.rb', line 65

def get_events_by_block_number(block_number)
  block_hash = @substrate_client.chain_getBlockHash(block_number)
  @substrate_client.get_block_events(block_hash)[1]
end

#get_latest_block_numberObject


59
60
61
62
63
# File 'lib/testnets/pangolin.rb', line 59

def get_latest_block_number()
  head = @substrate_client.chain_getFinalizedHead
  header = @substrate_client.chain_getHeader head
  header["number"].to_i(16)
end