libra_client 0.1.7 → 0.2.1

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: b6d2899596c8f7bcd0a4f7112da1aea8241de7188df53d2918121ace426c195f
4
- data.tar.gz: 2a4066d7ec6dee969cfe07850f3d34e02ac3fe1da4563b7dd0a791e211af555c
3
+ metadata.gz: 2c8d3f56fb64563e73ec6437bbf9a8efc784cda313807d79d11b28504ae4b452
4
+ data.tar.gz: c38ec316dd0afea81364efa5a24a3adfe6622d73c6d6af6632bbec17127d6a23
5
5
  SHA512:
6
- metadata.gz: d7f05163ce7c6f9ddc36f66ffd30c2edcad322aa93c77f601a9e0ad75fd64541ca461cf07745e8656ce57769ab1b196df0ece2f0b145e26840fda66abf03d506
7
- data.tar.gz: e0a8d00ec26b64042a38e3b44e1ca067eed95bdcb66da3cf331e8d687f9eaa4807e4b61ae42fd8429da29657868968dce8054c85f990157c5a294b42fab314d9
6
+ metadata.gz: a9187bcbc157d55abba5f71368bae68978e08d807a90ae34a2e01391f0dace0437223a1a03c47fc1234488477253d0f34c027d484b1601f152699669579ebc91
7
+ data.tar.gz: 0a874fa45d88a56c0dd5acfe0fb0b9dcf3dd707b0b2c9186e0373e816441fbe0f769d0e1e8452e4aef8f74b7fbce9525fda4ba9d20d7c1c48a41d66457e5317b
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- libra_client (0.1.7)
5
- canoser (~> 0.1.2)
4
+ libra_client (0.2.0)
5
+ canoser (~> 0.2.1)
6
6
  grpc (~> 1.23)
7
7
  rest-client (~> 2.0)
8
8
 
@@ -10,13 +10,13 @@ GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
12
  byebug (11.0.1)
13
- canoser (0.1.3)
13
+ canoser (0.2.1)
14
14
  domain_name (0.5.20190701)
15
15
  unf (>= 0.0.5, < 1.0.0)
16
- google-protobuf (3.9.1)
16
+ google-protobuf (3.9.2-x86_64-linux)
17
17
  googleapis-common-protos-types (1.0.4)
18
18
  google-protobuf (~> 3.0)
19
- grpc (1.23.0)
19
+ grpc (1.24.0-x86_64-linux)
20
20
  google-protobuf (~> 3.8)
21
21
  googleapis-common-protos-types (~> 1.0)
22
22
  grpc-tools (1.23.0)
@@ -1,7 +1,7 @@
1
1
 
2
2
  module Libra
3
3
  class AccountState < Canoser::Struct
4
- define_field :blob, {}
4
+ define_field :blob, {}
5
5
  end
6
6
 
7
7
  EVENT_KEY_LENGTH = 32
@@ -11,35 +11,14 @@ module Libra
11
11
  define_field :key, [Canoser::Uint8] #EVENT_KEY_LENGTH
12
12
  end
13
13
 
14
- # pub struct AccountResource {
15
- # balance: u64,
16
- # sequence_number: u64,
17
- # authentication_key: ByteArray,
18
- # delegated_withdrawal_capability: bool,
19
- # sent_events: EventHandle,
20
- # received_events: EventHandle,
21
- # }
22
14
 
23
- # impl CanonicalSerialize for AccountResource {
24
- # fn serialize(&self, serializer: &mut impl CanonicalSerializer) -> Result<()> {
25
- # // TODO(drussi): the order in which these fields are serialized depends on some
26
- # // implementation details in the VM.
27
- # serializer
28
- # .encode_struct(&self.authentication_key)?
29
- # .encode_u64(self.balance)?
30
- # .encode_bool(self.delegated_withdrawal_capability)?
31
- # .encode_struct(&self.received_events)?
32
- # .encode_struct(&self.sent_events)?
33
- # .encode_u64(self.sequence_number)?;
34
- # Ok(())
35
- # }
36
- # }
37
15
  class AccountResource < Canoser::Struct
38
16
  define_field :authentication_key, [Canoser::Uint8]
39
17
  define_field :balance, Canoser::Uint64
18
+ define_field :delegated_key_rotation_capability, Canoser::Bool
40
19
  define_field :delegated_withdrawal_capability, Canoser::Bool
41
20
  define_field :received_events, EventHandle
42
21
  define_field :sent_events, EventHandle
43
22
  define_field :sequence_number, Canoser::Uint64
44
- end
23
+ end
45
24
  end
data/lib/libra/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Libra
2
- VERSION = "0.1.7"
2
+ VERSION = "0.2.1"
3
3
  end
data/libra_client.gemspec CHANGED
@@ -43,7 +43,7 @@ Gem::Specification.new do |spec|
43
43
  spec.add_development_dependency "grpc-tools", "~> 1.23"
44
44
 
45
45
  spec.add_dependency "grpc", "~> 1.23"
46
- spec.add_dependency "canoser", "~> 0.1.2"
46
+ spec.add_dependency "canoser", "~> 0.2.1"
47
47
  spec.add_dependency "rest-client", "~> 2.0"
48
48
  #spec.add_dependency "openssl", "~> 3.0.0" #not ready, need SHA3 support.
49
49
 
@@ -58,13 +58,12 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
58
58
  end
59
59
  add_message "network.VoteData" do
60
60
  optional :block_id, :bytes, 1
61
- optional :round, :uint64, 2
62
- optional :executed_state_id, :bytes, 3
63
- optional :version, :uint64, 4
64
- optional :parent_block_id, :bytes, 5
65
- optional :parent_block_round, :uint64, 6
66
- optional :grandparent_block_id, :bytes, 7
67
- optional :grandparent_block_round, :uint64, 8
61
+ optional :executed_state_id, :bytes, 2
62
+ optional :round, :uint64, 3
63
+ optional :parent_block_id, :bytes, 4
64
+ optional :parent_block_round, :uint64, 5
65
+ optional :grandparent_block_id, :bytes, 6
66
+ optional :grandparent_block_round, :uint64, 7
68
67
  end
69
68
  add_message "network.Vote" do
70
69
  optional :vote_data, :message, 1, "network.VoteData"
@@ -3,6 +3,7 @@
3
3
 
4
4
  require 'google/protobuf'
5
5
 
6
+ require 'validator_set_pb'
6
7
  Google::Protobuf::DescriptorPool.generated_pool.build do
7
8
  add_file("ledger_info.proto", :syntax => :proto3) do
8
9
  add_message "types.LedgerInfo" do
@@ -12,6 +13,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
12
13
  optional :consensus_block_id, :bytes, 4
13
14
  optional :epoch_num, :uint64, 5
14
15
  optional :timestamp_usecs, :uint64, 6
16
+ optional :next_validator_set, :message, 7, "types.ValidatorSet"
15
17
  end
16
18
  add_message "types.LedgerInfoWithSignatures" do
17
19
  repeated :signatures, :message, 1, "types.ValidatorSignature"
@@ -4,15 +4,58 @@
4
4
  require 'google/protobuf'
5
5
 
6
6
  require 'transaction_pb'
7
+ require 'mempool_status_pb'
7
8
  Google::Protobuf::DescriptorPool.generated_pool.build do
8
9
  add_file("mempool.proto", :syntax => :proto3) do
9
- add_message "network.MempoolSyncMsg" do
10
- optional :peer_id, :bytes, 1
11
- repeated :transactions, :message, 2, "types.SignedTransaction"
10
+ add_message "mempool.AddTransactionWithValidationRequest" do
11
+ optional :signed_txn, :message, 1, "types.SignedTransaction"
12
+ optional :max_gas_cost, :uint64, 2
13
+ optional :latest_sequence_number, :uint64, 3
14
+ optional :account_balance, :uint64, 4
15
+ end
16
+ add_message "mempool.AddTransactionWithValidationResponse" do
17
+ optional :current_version, :uint64, 1
18
+ optional :status, :message, 2, "mempool.MempoolAddTransactionStatus"
19
+ end
20
+ add_message "mempool.GetBlockRequest" do
21
+ optional :max_block_size, :uint64, 1
22
+ repeated :transactions, :message, 2, "mempool.TransactionExclusion"
23
+ end
24
+ add_message "mempool.GetBlockResponse" do
25
+ optional :block, :message, 1, "types.SignedTransactionsBlock"
26
+ end
27
+ add_message "mempool.TransactionExclusion" do
28
+ optional :sender, :bytes, 1
29
+ optional :sequence_number, :uint64, 2
30
+ end
31
+ add_message "mempool.CommitTransactionsRequest" do
32
+ repeated :transactions, :message, 1, "mempool.CommittedTransaction"
33
+ optional :block_timestamp_usecs, :uint64, 2
34
+ end
35
+ add_message "mempool.CommitTransactionsResponse" do
36
+ end
37
+ add_message "mempool.CommittedTransaction" do
38
+ optional :sender, :bytes, 1
39
+ optional :sequence_number, :uint64, 2
40
+ optional :is_rejected, :bool, 3
41
+ end
42
+ add_message "mempool.HealthCheckRequest" do
43
+ end
44
+ add_message "mempool.HealthCheckResponse" do
45
+ optional :is_healthy, :bool, 1
12
46
  end
13
47
  end
14
48
  end
15
49
 
16
- module Network
17
- MempoolSyncMsg = Google::Protobuf::DescriptorPool.generated_pool.lookup("network.MempoolSyncMsg").msgclass
50
+ module Mempool
51
+ AddTransactionWithValidationRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("mempool.AddTransactionWithValidationRequest").msgclass
52
+ AddTransactionWithValidationResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("mempool.AddTransactionWithValidationResponse").msgclass
53
+ GetBlockRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("mempool.GetBlockRequest").msgclass
54
+ GetBlockResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("mempool.GetBlockResponse").msgclass
55
+ TransactionExclusion = Google::Protobuf::DescriptorPool.generated_pool.lookup("mempool.TransactionExclusion").msgclass
56
+ CommitTransactionsRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("mempool.CommitTransactionsRequest").msgclass
57
+ CommitTransactionsResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("mempool.CommitTransactionsResponse").msgclass
58
+ CommittedTransaction = Google::Protobuf::DescriptorPool.generated_pool.lookup("mempool.CommittedTransaction").msgclass
59
+ HealthCheckRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("mempool.HealthCheckRequest").msgclass
60
+ HealthCheckResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("mempool.HealthCheckResponse").msgclass
18
61
  end
@@ -20,11 +20,6 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
20
20
  optional :timestamp, :int64, 2
21
21
  optional :json, :string, 3
22
22
  end
23
- add_message "debug.DumpJemallocHeapProfileRequest" do
24
- end
25
- add_message "debug.DumpJemallocHeapProfileResponse" do
26
- optional :status_code, :int32, 1
27
- end
28
23
  end
29
24
  end
30
25
 
@@ -34,6 +29,4 @@ module Debug
34
29
  GetEventsRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("debug.GetEventsRequest").msgclass
35
30
  GetEventsResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("debug.GetEventsResponse").msgclass
36
31
  Event = Google::Protobuf::DescriptorPool.generated_pool.lookup("debug.Event").msgclass
37
- DumpJemallocHeapProfileRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("debug.DumpJemallocHeapProfileRequest").msgclass
38
- DumpJemallocHeapProfileResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("debug.DumpJemallocHeapProfileResponse").msgclass
39
32
  end
@@ -23,8 +23,6 @@ module Debug
23
23
  rpc :GetNodeDetails, GetNodeDetailsRequest, GetNodeDetailsResponse
24
24
  # Returns recent events generated by event! macro
25
25
  rpc :GetEvents, GetEventsRequest, GetEventsResponse
26
- # Triggers a dump of heap profile.
27
- rpc :DumpJemallocHeapProfile, DumpJemallocHeapProfileRequest, DumpJemallocHeapProfileResponse
28
26
  end
29
27
 
30
28
  Stub = Service.rpc_stub_class
@@ -45,6 +45,12 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
45
45
  optional :account_state_root_hash, :bytes, 3
46
46
  repeated :ledger_frozen_subtree_hashes, :bytes, 4
47
47
  end
48
+ add_message "storage.GetLatestLedgerInfosPerEpochRequest" do
49
+ optional :start_epoch, :uint64, 1
50
+ end
51
+ add_message "storage.GetLatestLedgerInfosPerEpochResponse" do
52
+ repeated :latest_ledger_infos, :message, 1, "types.LedgerInfoWithSignatures"
53
+ end
48
54
  end
49
55
  end
50
56
 
@@ -58,4 +64,6 @@ module Storage
58
64
  GetStartupInfoRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("storage.GetStartupInfoRequest").msgclass
59
65
  GetStartupInfoResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("storage.GetStartupInfoResponse").msgclass
60
66
  StartupInfo = Google::Protobuf::DescriptorPool.generated_pool.lookup("storage.StartupInfo").msgclass
67
+ GetLatestLedgerInfosPerEpochRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("storage.GetLatestLedgerInfosPerEpochRequest").msgclass
68
+ GetLatestLedgerInfosPerEpochResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("storage.GetLatestLedgerInfosPerEpochResponse").msgclass
61
69
  end
@@ -39,6 +39,8 @@ module Storage
39
39
  rpc :GetAccountStateWithProofByVersion, GetAccountStateWithProofByVersionRequest, GetAccountStateWithProofByVersionResponse
40
40
  # Returns information needed for libra core to start up.
41
41
  rpc :GetStartupInfo, GetStartupInfoRequest, GetStartupInfoResponse
42
+ # Returns latest ledger infos per epoch.
43
+ rpc :GetLatestLedgerInfosPerEpoch, GetLatestLedgerInfosPerEpochRequest, GetLatestLedgerInfosPerEpochResponse
42
44
  end
43
45
 
44
46
  Stub = Service.rpc_stub_class
@@ -10,6 +10,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
10
10
  optional :state_root_hash, :bytes, 2
11
11
  optional :event_root_hash, :bytes, 3
12
12
  optional :gas_used, :uint64, 4
13
+ optional :major_status, :uint64, 5
13
14
  end
14
15
  end
15
16
  end
@@ -10,31 +10,7 @@ require 'transaction_info_pb'
10
10
  require 'google/protobuf/wrappers_pb'
11
11
  Google::Protobuf::DescriptorPool.generated_pool.build do
12
12
  add_file("transaction.proto", :syntax => :proto3) do
13
- add_message "types.RawTransaction" do
14
- optional :sender_account, :bytes, 1
15
- optional :sequence_number, :uint64, 2
16
- optional :max_gas_amount, :uint64, 5
17
- optional :gas_unit_price, :uint64, 6
18
- optional :expiration_time, :uint64, 7
19
- oneof :payload do
20
- optional :program, :message, 3, "types.Program"
21
- optional :write_set, :message, 4, "types.WriteSet"
22
- optional :script, :message, 8, "types.Script"
23
- optional :module, :message, 9, "types.Module"
24
- end
25
- end
26
- add_message "types.Program" do
27
- optional :code, :bytes, 1
28
- repeated :arguments, :message, 2, "types.TransactionArgument"
29
- repeated :modules, :bytes, 3
30
- end
31
- add_message "types.Script" do
32
- optional :code, :bytes, 1
33
- repeated :arguments, :message, 2, "types.TransactionArgument"
34
- end
35
13
  add_message "types.TransactionArgument" do
36
- optional :type, :enum, 1, "types.TransactionArgument.ArgType"
37
- optional :data, :bytes, 2
38
14
  end
39
15
  add_enum "types.TransactionArgument.ArgType" do
40
16
  value :U64, 0
@@ -42,13 +18,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
42
18
  value :STRING, 2
43
19
  value :BYTEARRAY, 3
44
20
  end
45
- add_message "types.Module" do
46
- optional :code, :bytes, 1
47
- end
48
21
  add_message "types.SignedTransaction" do
49
- optional :raw_txn_bytes, :bytes, 1
50
- optional :sender_public_key, :bytes, 2
51
- optional :sender_signature, :bytes, 3
22
+ optional :signed_txn, :bytes, 5
52
23
  end
53
24
  add_message "types.SignedTransactionWithProof" do
54
25
  optional :version, :uint64, 1
@@ -61,14 +32,6 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
61
32
  optional :validator_public_key, :bytes, 2
62
33
  optional :validator_signature, :bytes, 3
63
34
  end
64
- add_message "types.WriteSet" do
65
- repeated :write_set, :message, 1, "types.WriteOp"
66
- end
67
- add_message "types.WriteOp" do
68
- optional :access_path, :message, 1, "types.AccessPath"
69
- optional :value, :bytes, 2
70
- optional :type, :enum, 3, "types.WriteOpType"
71
- end
72
35
  add_message "types.AccountState" do
73
36
  optional :address, :bytes, 1
74
37
  optional :blob, :bytes, 2
@@ -78,6 +41,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
78
41
  repeated :account_states, :message, 2, "types.AccountState"
79
42
  repeated :events, :message, 3, "types.Event"
80
43
  optional :gas_used, :uint64, 4
44
+ optional :major_status, :uint64, 5
81
45
  end
82
46
  add_message "types.TransactionListWithProof" do
83
47
  repeated :transactions, :message, 1, "types.SignedTransaction"
@@ -87,27 +51,16 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
87
51
  optional :proof_of_first_transaction, :message, 5, "types.AccumulatorProof"
88
52
  optional :proof_of_last_transaction, :message, 6, "types.AccumulatorProof"
89
53
  end
90
- add_enum "types.WriteOpType" do
91
- value :Write, 0
92
- value :Delete, 1
93
- end
94
54
  end
95
55
  end
96
56
 
97
57
  module Types
98
- RawTransaction = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.RawTransaction").msgclass
99
- Program = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.Program").msgclass
100
- Script = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.Script").msgclass
101
58
  TransactionArgument = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.TransactionArgument").msgclass
102
59
  TransactionArgument::ArgType = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.TransactionArgument.ArgType").enummodule
103
- Module = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.Module").msgclass
104
60
  SignedTransaction = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.SignedTransaction").msgclass
105
61
  SignedTransactionWithProof = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.SignedTransactionWithProof").msgclass
106
62
  SignedTransactionsBlock = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.SignedTransactionsBlock").msgclass
107
- WriteSet = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.WriteSet").msgclass
108
- WriteOp = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.WriteOp").msgclass
109
63
  AccountState = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.AccountState").msgclass
110
64
  TransactionToCommit = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.TransactionToCommit").msgclass
111
65
  TransactionListWithProof = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.TransactionListWithProof").msgclass
112
- WriteOpType = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.WriteOpType").enummodule
113
66
  end
@@ -6,224 +6,16 @@ require 'google/protobuf'
6
6
  require 'language_storage_pb'
7
7
  Google::Protobuf::DescriptorPool.generated_pool.build do
8
8
  add_file("vm_errors.proto", :syntax => :proto3) do
9
- add_message "types.VMValidationStatus" do
10
- optional :code, :enum, 1, "types.VMValidationStatusCode"
11
- optional :message, :string, 2
12
- end
13
- add_message "types.VMVerificationStatusList" do
14
- repeated :status_list, :message, 1, "types.VMVerificationStatus"
15
- end
16
- add_message "types.VMVerificationStatus" do
17
- optional :status_kind, :enum, 1, "types.VMVerificationStatus.StatusKind"
18
- optional :module_idx, :uint32, 2
19
- optional :error_kind, :enum, 3, "types.VMVerificationErrorKind"
20
- optional :message, :string, 4
21
- optional :dependency_id, :message, 5, "types.ModuleId"
22
- end
23
- add_enum "types.VMVerificationStatus.StatusKind" do
24
- value :SCRIPT, 0
25
- value :MODULE, 1
26
- value :DEPENDENCY, 2
27
- end
28
- add_message "types.Aborted" do
29
- optional :aborted_error_code, :uint64, 1
30
- end
31
- add_message "types.ArithmeticError" do
32
- optional :error_code, :enum, 1, "types.ArithmeticError.ArithmeticErrorType"
33
- end
34
- add_enum "types.ArithmeticError.ArithmeticErrorType" do
35
- value :UnknownArithmeticError, 0
36
- value :Underflow, 1
37
- value :Overflow, 2
38
- value :DivisionByZero, 3
39
- end
40
- add_message "types.DynamicReferenceError" do
41
- optional :error_code, :enum, 1, "types.DynamicReferenceError.DynamicReferenceErrorType"
42
- end
43
- add_enum "types.DynamicReferenceError.DynamicReferenceErrorType" do
44
- value :UnknownDynamicReferenceError, 0
45
- value :MoveOfBorrowedResource, 1
46
- value :GlobalRefAlreadyReleased, 2
47
- value :MissingReleaseRef, 3
48
- value :GlobalAlreadyBorrowed, 4
49
- end
50
- add_message "types.ExecutionStatus" do
51
- oneof :execution_status do
52
- optional :runtime_status, :enum, 1, "types.RuntimeStatus"
53
- optional :aborted, :message, 2, "types.Aborted"
54
- optional :arithmetic_error, :message, 3, "types.ArithmeticError"
55
- optional :reference_error, :message, 4, "types.DynamicReferenceError"
56
- end
57
- end
58
9
  add_message "types.VMStatus" do
59
- oneof :error_type do
60
- optional :validation, :message, 1, "types.VMValidationStatus"
61
- optional :verification, :message, 2, "types.VMVerificationStatusList"
62
- optional :invariant_violation, :enum, 3, "types.VMInvariantViolationError"
63
- optional :deserialization, :enum, 4, "types.BinaryError"
64
- optional :execution, :message, 5, "types.ExecutionStatus"
65
- end
66
- end
67
- add_enum "types.VMValidationStatusCode" do
68
- value :UnknownValidationStatus, 0
69
- value :InvalidSignature, 1
70
- value :InvalidAuthKey, 2
71
- value :SequenceNumberTooOld, 3
72
- value :SequenceNumberTooNew, 4
73
- value :InsufficientBalanceForTransactionFee, 5
74
- value :TransactionExpired, 6
75
- value :SendingAccountDoesNotExist, 7
76
- value :RejectedWriteSet, 8
77
- value :InvalidWriteSet, 9
78
- value :ExceededMaxTransactionSize, 10
79
- value :UnknownScript, 11
80
- value :UnknownModule, 12
81
- value :MaxGasUnitsExceedsMaxGasUnitsBound, 13
82
- value :MaxGasUnitsBelowMinTransactionGasUnits, 14
83
- value :GasUnitPriceBelowMinBound, 15
84
- value :GasUnitPriceAboveMaxBound, 16
85
- end
86
- add_enum "types.VMVerificationErrorKind" do
87
- value :UnknownVerificationError, 0
88
- value :IndexOutOfBounds, 1
89
- value :CodeUnitIndexOutOfBounds, 2
90
- value :RangeOutOfBounds, 3
91
- value :InvalidSignatureToken, 4
92
- value :InvalidFieldDefReference, 5
93
- value :RecursiveStructDefinition, 6
94
- value :InvalidResourceField, 7
95
- value :InvalidFallThrough, 8
96
- value :JoinFailure, 9
97
- value :NegativeStackSizeWithinBlock, 10
98
- value :UnbalancedStack, 11
99
- value :InvalidMainFunctionSignature, 12
100
- value :DuplicateElement, 13
101
- value :InvalidModuleHandle, 14
102
- value :UnimplementedHandle, 15
103
- value :InconsistentFields, 16
104
- value :UnusedFields, 17
105
- value :LookupFailed, 18
106
- value :VisibilityMismatch, 19
107
- value :TypeResolutionFailure, 20
108
- value :TypeMismatch, 21
109
- value :MissingDependency, 22
110
- value :PopReferenceError, 23
111
- value :PopResourceError, 24
112
- value :ReleaseRefTypeMismatchError, 25
113
- value :BrTypeMismatchError, 26
114
- value :AbortTypeMismatchError, 27
115
- value :StLocTypeMismatchError, 28
116
- value :StLocUnsafeToDestroyError, 29
117
- value :RetUnsafeToDestroyError, 30
118
- value :RetTypeMismatchError, 31
119
- value :FreezeRefTypeMismatchError, 32
120
- value :FreezeRefExistsMutableBorrowError, 33
121
- value :BorrowFieldTypeMismatchError, 34
122
- value :BorrowFieldBadFieldError, 35
123
- value :BorrowFieldExistsMutableBorrowError, 36
124
- value :CopyLocUnavailableError, 37
125
- value :CopyLocResourceError, 38
126
- value :CopyLocExistsBorrowError, 39
127
- value :MoveLocUnavailableError, 40
128
- value :MoveLocExistsBorrowError, 41
129
- value :BorrowLocReferenceError, 42
130
- value :BorrowLocUnavailableError, 43
131
- value :BorrowLocExistsBorrowError, 44
132
- value :CallTypeMismatchError, 45
133
- value :CallBorrowedMutableReferenceError, 46
134
- value :PackTypeMismatchError, 47
135
- value :UnpackTypeMismatchError, 48
136
- value :ReadRefTypeMismatchError, 49
137
- value :ReadRefResourceError, 50
138
- value :ReadRefExistsMutableBorrowError, 51
139
- value :WriteRefTypeMismatchError, 52
140
- value :WriteRefResourceError, 53
141
- value :WriteRefExistsBorrowError, 54
142
- value :WriteRefNoMutableReferenceError, 55
143
- value :IntegerOpTypeMismatchError, 56
144
- value :BooleanOpTypeMismatchError, 57
145
- value :EqualityOpTypeMismatchError, 58
146
- value :ExistsResourceTypeMismatchError, 59
147
- value :ExistsNoResourceError, 60
148
- value :BorrowGlobalTypeMismatchError, 61
149
- value :BorrowGlobalNoResourceError, 62
150
- value :MoveFromTypeMismatchError, 63
151
- value :MoveFromNoResourceError, 64
152
- value :MoveToSenderTypeMismatchError, 65
153
- value :MoveToSenderNoResourceError, 66
154
- value :CreateAccountTypeMismatchError, 67
155
- value :GlobalReferenceError, 68
156
- value :ModuleAddressDoesNotMatchSender, 69
157
- value :NoModuleHandles, 70
158
- value :MissingAcquiresResourceAnnotationError, 71
159
- value :ExtraneousAcquiresResourceAnnotationError, 72
160
- value :DuplicateAcquiresResourceAnnotationError, 73
161
- value :InvalidAcquiresResourceAnnotationError, 74
162
- end
163
- add_enum "types.VMInvariantViolationError" do
164
- value :UnknownInvariantViolationError, 0
165
- value :OutOfBoundsIndex, 1
166
- value :OutOfBoundsRange, 2
167
- value :EmptyValueStack, 3
168
- value :EmptyCallStack, 4
169
- value :PCOverflow, 5
170
- value :LinkerError, 6
171
- value :LocalReferenceError, 7
172
- value :StorageError, 8
173
- value :InternalTypeError, 9
174
- value :EventKeyMismatch, 10
175
- end
176
- add_enum "types.BinaryError" do
177
- value :UnknownBinaryError, 0
178
- value :Malformed, 1
179
- value :BadMagic, 2
180
- value :UnknownVersion, 3
181
- value :UnknownTableType, 4
182
- value :UnknownSignatureType, 5
183
- value :UnknownSerializedType, 6
184
- value :UnknownOpcode, 7
185
- value :BadHeaderTable, 8
186
- value :UnexpectedSignatureType, 9
187
- value :DuplicateTable, 10
188
- end
189
- add_enum "types.RuntimeStatus" do
190
- value :UnknownRuntimeStatus, 0
191
- value :Executed, 1
192
- value :OutOfGas, 2
193
- value :ResourceDoesNotExist, 3
194
- value :ResourceAlreadyExists, 4
195
- value :EvictedAccountAccess, 5
196
- value :AccountAddressAlreadyExists, 6
197
- value :TypeError, 7
198
- value :MissingData, 8
199
- value :DataFormatError, 9
200
- value :InvalidData, 10
201
- value :RemoteDataError, 11
202
- value :CannotWriteExistingResource, 12
203
- value :ValueSerializationError, 13
204
- value :ValueDeserializationError, 14
205
- value :DuplicateModuleName, 15
206
- value :ExecutionStackOverflow, 16
207
- value :CallStackOverflow, 17
10
+ optional :major_status, :uint64, 1
11
+ optional :has_sub_status, :bool, 2
12
+ optional :sub_status, :uint64, 3
13
+ optional :has_message, :bool, 4
14
+ optional :message, :string, 5
208
15
  end
209
16
  end
210
17
  end
211
18
 
212
19
  module Types
213
- VMValidationStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.VMValidationStatus").msgclass
214
- VMVerificationStatusList = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.VMVerificationStatusList").msgclass
215
- VMVerificationStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.VMVerificationStatus").msgclass
216
- VMVerificationStatus::StatusKind = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.VMVerificationStatus.StatusKind").enummodule
217
- Aborted = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.Aborted").msgclass
218
- ArithmeticError = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.ArithmeticError").msgclass
219
- ArithmeticError::ArithmeticErrorType = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.ArithmeticError.ArithmeticErrorType").enummodule
220
- DynamicReferenceError = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.DynamicReferenceError").msgclass
221
- DynamicReferenceError::DynamicReferenceErrorType = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.DynamicReferenceError.DynamicReferenceErrorType").enummodule
222
- ExecutionStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.ExecutionStatus").msgclass
223
20
  VMStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.VMStatus").msgclass
224
- VMValidationStatusCode = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.VMValidationStatusCode").enummodule
225
- VMVerificationErrorKind = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.VMVerificationErrorKind").enummodule
226
- VMInvariantViolationError = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.VMInvariantViolationError").enummodule
227
- BinaryError = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.BinaryError").enummodule
228
- RuntimeStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("types.RuntimeStatus").enummodule
229
21
  end
@@ -98,19 +98,18 @@ message QuorumCert {
98
98
  message VoteData {
99
99
  // The id of the block being vote for.
100
100
  bytes block_id = 1;
101
- // The round of the block being voted for
102
- uint64 round = 2;
103
101
  // The id and the version of the state after executing the block.
104
- bytes executed_state_id = 3;
105
- uint64 version = 4;
102
+ bytes executed_state_id = 2;
103
+ // The round of the block being voted for
104
+ uint64 round = 3;
106
105
  // The id of the parent block
107
- bytes parent_block_id = 5;
106
+ bytes parent_block_id = 4;
108
107
  // The round of the parent block
109
- uint64 parent_block_round = 6;
108
+ uint64 parent_block_round = 5;
110
109
  // The id of the grandparent block
111
- bytes grandparent_block_id = 7;
110
+ bytes grandparent_block_id = 6;
112
111
  // The round of the grandparent block
113
- uint64 grandparent_block_round = 8;
112
+ uint64 grandparent_block_round = 7;
114
113
  }
115
114
 
116
115
  message Vote {
@@ -5,6 +5,8 @@ syntax = "proto3";
5
5
 
6
6
  package types;
7
7
 
8
+ import "validator_set.proto";
9
+
8
10
  /// Even though we don't always need all hashes, we pass them in and return them
9
11
  /// always so that we keep them in sync on the client and don't make the client
10
12
  /// worry about which one(s) to pass in which cases
@@ -60,6 +62,10 @@ message LedgerInfo {
60
62
  // they can be certain that their transaction will never be included in a block in the future
61
63
  // (assuming that their transaction has not yet been included)
62
64
  uint64 timestamp_usecs = 6;
65
+
66
+ // An optional field with the validator set for the next epoch in case it's the last
67
+ // ledger info in the current epoch.
68
+ ValidatorSet next_validator_set = 7;
63
69
  }
64
70
 
65
71
  /// The validator node returns this structure which includes signatures
data/protos/mempool.proto CHANGED
@@ -3,16 +3,103 @@
3
3
 
4
4
  syntax = "proto3";
5
5
 
6
- package network;
6
+ package mempool;
7
7
 
8
8
  import "transaction.proto";
9
+ import "mempool_status.proto";
9
10
 
10
- /* MempoolSyncMsg represents the messages exchanging between validators to keep
11
- * transactions in sync. The proto definition provides the spec on the wire so
12
- * that others can implement their mempool service in various languages.
13
- * Mempool service is responsible for sending and receiving MempoolSyncMsg
14
- * across validators. */
15
- message MempoolSyncMsg {
16
- bytes peer_id = 1;
17
- repeated types.SignedTransaction transactions = 2;
11
+ // -----------------------------------------------------------------------------
12
+ // ---------------- Mempool Service Definition
13
+ // -----------------------------------------------------------------------------
14
+ service Mempool {
15
+ // Adds a new transaction to the mempool with validation against existing
16
+ // transactions in the mempool. Note that this function performs additional
17
+ // validation that AC is unable to perform. (because AC knows only about a
18
+ // single transaction, but mempool potentially knows about multiple pending
19
+ // transactions)
20
+ rpc AddTransactionWithValidation(AddTransactionWithValidationRequest)
21
+ returns (AddTransactionWithValidationResponse) {}
22
+
23
+ // Fetch ordered block of transactions
24
+ rpc GetBlock(GetBlockRequest) returns (GetBlockResponse) {}
25
+
26
+ // Remove committed transactions from Mempool
27
+ rpc CommitTransactions(CommitTransactionsRequest)
28
+ returns (CommitTransactionsResponse) {}
29
+
30
+ // Check the health of mempool
31
+ rpc HealthCheck(HealthCheckRequest)
32
+ returns (HealthCheckResponse) {}
33
+ }
34
+
35
+ // -----------------------------------------------------------------------------
36
+ // ---------------- AddTransactionWithValidation
37
+ // -----------------------------------------------------------------------------
38
+
39
+ message AddTransactionWithValidationRequest {
40
+ // Transaction from a wallet
41
+ types.SignedTransaction signed_txn = 1;
42
+ // Max amount of gas required to execute the transaction
43
+ // Without running the program, it is very difficult to determine this number,
44
+ // so we use the max gas specified by the signed transaction.
45
+ // This field is still included separately from the signed transaction so that
46
+ // if we have a better methodology in the future, we can more accurately
47
+ // specify the max gas.
48
+ uint64 max_gas_cost = 2;
49
+ // Latest sequence number of the involved account from state db.
50
+ uint64 latest_sequence_number = 3;
51
+ // Latest account balance of the involved account from state db.
52
+ uint64 account_balance = 4;
53
+ }
54
+
55
+ message AddTransactionWithValidationResponse {
56
+ // The ledger version at the time of the transaction submitted. The submitted
57
+ // transaction will have version bigger than this 'current_version'
58
+ uint64 current_version = 1;
59
+ // The result of the transaction submission
60
+ MempoolAddTransactionStatus status = 2;
61
+ }
62
+
63
+ // -----------------------------------------------------------------------------
64
+ // ---------------- GetBlock
65
+ // -----------------------------------------------------------------------------
66
+ message GetBlockRequest {
67
+ uint64 max_block_size = 1;
68
+ repeated TransactionExclusion transactions = 2;
69
+ }
70
+
71
+ message GetBlockResponse { types.SignedTransactionsBlock block = 1; }
72
+
73
+ message TransactionExclusion {
74
+ bytes sender = 1;
75
+ uint64 sequence_number = 2;
76
+ }
77
+
78
+ // -----------------------------------------------------------------------------
79
+ // ---------------- CommitTransactions
80
+ // -----------------------------------------------------------------------------
81
+ message CommitTransactionsRequest {
82
+ repeated CommittedTransaction transactions = 1;
83
+ // agreed monotonic timestamp microseconds since the epoch for a committed block
84
+ // used by Mempool to GC expired transactions
85
+ uint64 block_timestamp_usecs = 2;
86
+ }
87
+
88
+ message CommitTransactionsResponse {}
89
+
90
+ message CommittedTransaction {
91
+ bytes sender = 1;
92
+ uint64 sequence_number = 2;
93
+ bool is_rejected = 3;
94
+ }
95
+
96
+ // -----------------------------------------------------------------------------
97
+ // ---------------- HealthCheck
98
+ // -----------------------------------------------------------------------------
99
+ message HealthCheckRequest {
100
+ }
101
+
102
+ message HealthCheckResponse {
103
+ // Indicate whether Mempool is in healthy condition.
104
+ bool is_healthy = 1;
18
105
  }
@@ -20,21 +20,10 @@ message Event {
20
20
  string json = 3;
21
21
  }
22
22
 
23
- message DumpJemallocHeapProfileRequest {}
24
-
25
- message DumpJemallocHeapProfileResponse {
26
- // Status code from jemalloc mallctl call. 0 indicates success.
27
- int32 status_code = 1;
28
- }
29
-
30
23
  service NodeDebugInterface {
31
24
  // Returns debug information about node
32
25
  rpc GetNodeDetails(GetNodeDetailsRequest) returns (GetNodeDetailsResponse) {}
33
26
 
34
27
  // Returns recent events generated by event! macro
35
28
  rpc GetEvents(GetEventsRequest) returns (GetEventsResponse) {}
36
-
37
- // Triggers a dump of heap profile.
38
- rpc DumpJemallocHeapProfile(DumpJemallocHeapProfileRequest)
39
- returns (DumpJemallocHeapProfileResponse) {}
40
29
  }
data/protos/storage.proto CHANGED
@@ -45,6 +45,10 @@ service Storage {
45
45
  // Returns information needed for libra core to start up.
46
46
  rpc GetStartupInfo(GetStartupInfoRequest)
47
47
  returns (GetStartupInfoResponse);
48
+
49
+ // Returns latest ledger infos per epoch.
50
+ rpc GetLatestLedgerInfosPerEpoch(GetLatestLedgerInfosPerEpochRequest)
51
+ returns (GetLatestLedgerInfosPerEpochResponse);
48
52
  }
49
53
 
50
54
  message SaveTransactionsRequest {
@@ -113,3 +117,13 @@ message StartupInfo {
113
117
  // From left to right, root hashes of all frozen subtrees.
114
118
  repeated bytes ledger_frozen_subtree_hashes = 4;
115
119
  }
120
+
121
+ message GetLatestLedgerInfosPerEpochRequest {
122
+ /// The last epoch number with available information to the client.
123
+ uint64 start_epoch = 1;
124
+ }
125
+
126
+ message GetLatestLedgerInfosPerEpochResponse {
127
+ /// Vector of latest ledger infos per epoch (not sorted)
128
+ repeated types.LedgerInfoWithSignatures latest_ledger_infos = 1;
129
+ }
@@ -11,49 +11,6 @@ import "proof.proto";
11
11
  import "transaction_info.proto";
12
12
  import "google/protobuf/wrappers.proto";
13
13
 
14
- // A generic structure that describes a transaction that a client submits
15
- message RawTransaction {
16
- // Sender's account address
17
- bytes sender_account = 1;
18
- // Sequence number of this transaction corresponding to sender's account.
19
- uint64 sequence_number = 2;
20
- oneof payload {
21
- // The transaction script to execute.
22
- Program program = 3;
23
- // A write set, used for genesis blocks and other magic transactions.
24
- // This bypasses the rules for regular transactions so will typically be
25
- // rejected. Only under special circumstances will it be accepted.
26
- WriteSet write_set = 4;
27
- // The transaction script to execute.
28
- Script script = 8;
29
- // The MOVE Module to publish.
30
- Module module = 9;
31
- }
32
- // Maximal total gas specified by wallet to spend for this transaction.
33
- uint64 max_gas_amount = 5;
34
- // The price to be paid for each unit of gas.
35
- uint64 gas_unit_price = 6;
36
- // Expiration time for this transaction. If storage is queried and
37
- // the time returned is greater than or equal to this time and this
38
- // transaction has not been included, you can be certain that it will
39
- // never be included.
40
- // If set to 0, there will be no expiration time
41
- uint64 expiration_time = 7;
42
- }
43
-
44
- // The code for the transaction to execute
45
- message Program {
46
- bytes code = 1;
47
- repeated TransactionArgument arguments = 2;
48
- repeated bytes modules = 3;
49
- }
50
-
51
- // The code for the transaction to execute
52
- message Script {
53
- bytes code = 1;
54
- repeated TransactionArgument arguments = 2;
55
- }
56
-
57
14
  // An argument to the transaction if the transaction takes arguments
58
15
  message TransactionArgument {
59
16
  enum ArgType {
@@ -62,27 +19,12 @@ message TransactionArgument {
62
19
  STRING = 2;
63
20
  BYTEARRAY = 3;
64
21
  }
65
- ArgType type = 1;
66
- bytes data = 2;
67
- }
68
-
69
- // A Move Module to publish
70
- message Module {
71
- bytes code = 1;
72
22
  }
73
23
 
74
24
  // A generic structure that represents signed RawTransaction
75
25
  message SignedTransaction {
76
- // The serialized Protobuf bytes for RawTransaction, for which the signature
77
- // was signed. Protobuf doesn't guarantee the serialized bytes is canonical
78
- // across different language implementations, but for our use cases for
79
- // transaction it is not necessary because the client is the only one to
80
- // produce this bytes, which is then persisted in storage.
81
- bytes raw_txn_bytes = 1;
82
- // public key that corresponds to RawTransaction::sender_account
83
- bytes sender_public_key = 2;
84
- // signature for the hash
85
- bytes sender_signature = 3;
26
+ // LCS byte code representation of a SignedTransaction
27
+ bytes signed_txn = 5;
86
28
  }
87
29
 
88
30
  message SignedTransactionWithProof {
@@ -110,30 +52,6 @@ message SignedTransactionsBlock {
110
52
  bytes validator_signature = 3;
111
53
  }
112
54
 
113
- // Set of WriteOps to save to storage.
114
- message WriteSet {
115
- // Set of WriteOp for storage update.
116
- repeated WriteOp write_set = 1;
117
- }
118
-
119
- // Write Operation on underlying storage.
120
- message WriteOp {
121
- // AccessPath of the write set.
122
- AccessPath access_path = 1;
123
- // The value of the write op. Empty if `type` is Delete.
124
- bytes value = 2;
125
- // WriteOp type.
126
- WriteOpType type = 3;
127
- }
128
-
129
- // Type of write operation
130
- enum WriteOpType {
131
- // The WriteOp is to create/update the field from storage.
132
- Write = 0;
133
- // The WriteOp is to delete the field from storage.
134
- Delete = 1;
135
- }
136
-
137
55
  // Account state as a whole.
138
56
  // After execution, updates to accounts are passed in this form to storage for
139
57
  // persistence.
@@ -154,6 +72,8 @@ message TransactionToCommit {
154
72
  repeated Event events = 3;
155
73
  // The amount of gas used.
156
74
  uint64 gas_used = 4;
75
+ // The major status of executing the transaction.
76
+ uint64 major_status = 5;
157
77
  }
158
78
 
159
79
  // A list of consecutive transactions with proof. This is mainly used for state
@@ -23,4 +23,7 @@ message TransactionInfo {
23
23
 
24
24
  // The amount of gas used by this transaction.
25
25
  uint64 gas_used = 4;
26
+
27
+ // The major status of executing this transaction.
28
+ uint64 major_status = 5;
26
29
  }
@@ -24,269 +24,12 @@ import "language_storage.proto";
24
24
  // errors that can occur during execution due to things such as division
25
25
  // by zero, running out of gas, etc. These do not signify an issue with
26
26
  // the VM.
27
-
28
- // NB: we make a distinction between a status and an error here: A
29
- // status contains errors, along with possible affirmation of a successful
30
- // execution or valid prologue.
31
-
32
- // The status of a transaction as determined by the prologue.
33
- enum VMValidationStatusCode {
34
- // We don't want the default value to be valid
35
- UnknownValidationStatus = 0;
36
- // The transaction has a bad signature
37
- InvalidSignature = 1;
38
- // Bad account authentication key
39
- InvalidAuthKey = 2;
40
- // Sequence number is too old
41
- SequenceNumberTooOld = 3;
42
- // Sequence number is too new
43
- SequenceNumberTooNew = 4;
44
- // Insufficient balance to pay minimum transaction fee
45
- InsufficientBalanceForTransactionFee = 5;
46
- // The transaction has expired
47
- TransactionExpired = 6;
48
- // The sending account does not exist
49
- SendingAccountDoesNotExist = 7;
50
- // This write set transaction was rejected because it did not meet the
51
- // requirements for one.
52
- RejectedWriteSet = 8;
53
- // This write set transaction cannot be applied to the current state.
54
- InvalidWriteSet = 9;
55
- // Length of program field in raw transaction exceeded max length
56
- ExceededMaxTransactionSize = 10;
57
- // This script is not on our whitelist of script.
58
- UnknownScript = 11;
59
- // Transaction is trying to publish a new module.
60
- UnknownModule = 12;
61
- // Max gas units submitted with transaction exceeds max gas units bound
62
- // in VM
63
- MaxGasUnitsExceedsMaxGasUnitsBound = 13;
64
- // Max gas units submitted with transaction not enough to cover the
65
- // intrinsic cost of the transaction.
66
- MaxGasUnitsBelowMinTransactionGasUnits = 14;
67
- // Gas unit price submitted with transaction is below minimum gas price
68
- // set in the VM.
69
- GasUnitPriceBelowMinBound = 15;
70
- // Gas unit price submitted with the transaction is above the maximum
71
- // gas price set in the VM.
72
- GasUnitPriceAboveMaxBound = 16;
73
- }
74
-
75
- message VMValidationStatus {
76
- VMValidationStatusCode code = 1;
77
- string message = 2;
78
- }
79
-
80
- message VMVerificationStatusList {
81
- repeated VMVerificationStatus status_list = 1;
82
- }
83
-
84
- message VMVerificationStatus {
85
- enum StatusKind {
86
- SCRIPT = 0;
87
- MODULE = 1;
88
- DEPENDENCY = 2;
89
- }
90
- StatusKind status_kind = 1;
91
- // For StatusKind::SCRIPT and DEPENDENCY this is ignored.
92
- uint32 module_idx = 2;
93
- VMVerificationErrorKind error_kind = 3;
94
- string message = 4;
95
- // For StatusKind::SCRIPT and MODULE this is ignored.
96
- ModuleId dependency_id = 5;
97
- }
98
-
99
- // When a code module/script is published it is verified. These are the
100
- // possible errors that can arise from the verification process.
101
- enum VMVerificationErrorKind {
102
- // Likewise default to a unknown verification error
103
- UnknownVerificationError = 0;
104
- IndexOutOfBounds = 1;
105
- CodeUnitIndexOutOfBounds = 2;
106
- RangeOutOfBounds = 3;
107
- InvalidSignatureToken = 4;
108
- InvalidFieldDefReference = 5;
109
- RecursiveStructDefinition = 6;
110
- InvalidResourceField = 7;
111
- InvalidFallThrough = 8;
112
- JoinFailure = 9;
113
- NegativeStackSizeWithinBlock = 10;
114
- UnbalancedStack = 11;
115
- InvalidMainFunctionSignature = 12;
116
- DuplicateElement = 13;
117
- InvalidModuleHandle = 14;
118
- UnimplementedHandle = 15;
119
- InconsistentFields = 16;
120
- UnusedFields = 17;
121
- LookupFailed = 18;
122
- VisibilityMismatch = 19;
123
- TypeResolutionFailure = 20;
124
- TypeMismatch = 21;
125
- MissingDependency = 22;
126
- PopReferenceError = 23;
127
- PopResourceError = 24;
128
- ReleaseRefTypeMismatchError = 25;
129
- BrTypeMismatchError = 26;
130
- AbortTypeMismatchError = 27;
131
- StLocTypeMismatchError = 28;
132
- StLocUnsafeToDestroyError = 29;
133
- RetUnsafeToDestroyError = 30;
134
- RetTypeMismatchError = 31;
135
- FreezeRefTypeMismatchError = 32;
136
- FreezeRefExistsMutableBorrowError = 33;
137
- BorrowFieldTypeMismatchError = 34;
138
- BorrowFieldBadFieldError = 35;
139
- BorrowFieldExistsMutableBorrowError = 36;
140
- CopyLocUnavailableError = 37;
141
- CopyLocResourceError = 38;
142
- CopyLocExistsBorrowError = 39;
143
- MoveLocUnavailableError = 40;
144
- MoveLocExistsBorrowError = 41;
145
- BorrowLocReferenceError = 42;
146
- BorrowLocUnavailableError = 43;
147
- BorrowLocExistsBorrowError = 44;
148
- CallTypeMismatchError = 45;
149
- CallBorrowedMutableReferenceError = 46;
150
- PackTypeMismatchError = 47;
151
- UnpackTypeMismatchError = 48;
152
- ReadRefTypeMismatchError = 49;
153
- ReadRefResourceError = 50;
154
- ReadRefExistsMutableBorrowError = 51;
155
- WriteRefTypeMismatchError = 52;
156
- WriteRefResourceError = 53;
157
- WriteRefExistsBorrowError = 54;
158
- WriteRefNoMutableReferenceError = 55;
159
- IntegerOpTypeMismatchError = 56;
160
- BooleanOpTypeMismatchError = 57;
161
- EqualityOpTypeMismatchError = 58;
162
- ExistsResourceTypeMismatchError = 59;
163
- ExistsNoResourceError = 60;
164
- BorrowGlobalTypeMismatchError = 61;
165
- BorrowGlobalNoResourceError = 62;
166
- MoveFromTypeMismatchError = 63;
167
- MoveFromNoResourceError = 64;
168
- MoveToSenderTypeMismatchError = 65;
169
- MoveToSenderNoResourceError = 66;
170
- CreateAccountTypeMismatchError = 67;
171
- GlobalReferenceError = 68;
172
- // The self address of a module the transaction is publishing is not the sender address
173
- ModuleAddressDoesNotMatchSender = 69;
174
- // The module does not have any module handles. Each module or script must have at least one module handle.
175
- NoModuleHandles = 70;
176
- MissingAcquiresResourceAnnotationError = 71;
177
- ExtraneousAcquiresResourceAnnotationError = 72;
178
- DuplicateAcquiresResourceAnnotationError = 73;
179
- InvalidAcquiresResourceAnnotationError = 74;
180
- }
181
-
182
- // These are errors that the VM might raise if a violation of internal
183
- // invariants takes place.
184
- enum VMInvariantViolationError {
185
- UnknownInvariantViolationError = 0;
186
- OutOfBoundsIndex = 1;
187
- OutOfBoundsRange = 2;
188
- EmptyValueStack = 3;
189
- EmptyCallStack = 4;
190
- PCOverflow = 5;
191
- LinkerError = 6;
192
- LocalReferenceError = 7;
193
- StorageError = 8;
194
- InternalTypeError = 9;
195
- EventKeyMismatch = 10;
196
- }
197
-
198
- // Errors that can arise from binary decoding (deserialization)
199
- enum BinaryError {
200
- UnknownBinaryError = 0;
201
- Malformed = 1;
202
- BadMagic = 2;
203
- UnknownVersion = 3;
204
- UnknownTableType = 4;
205
- UnknownSignatureType = 5;
206
- UnknownSerializedType = 6;
207
- UnknownOpcode = 7;
208
- BadHeaderTable = 8;
209
- UnexpectedSignatureType = 9;
210
- DuplicateTable = 10;
211
- }
212
-
213
- //*************************
214
- // Runtime errors/status
215
- //*************************
216
-
217
- enum RuntimeStatus {
218
- UnknownRuntimeStatus = 0;
219
- Executed = 1;
220
- OutOfGas = 2;
221
- // We tried to access a resource that does not exist under the account.
222
- ResourceDoesNotExist = 3;
223
- // We tried to create a resource under an account where that resource
224
- // already exists.
225
- ResourceAlreadyExists = 4;
226
- // We accessed an account that is evicted.
227
- EvictedAccountAccess = 5;
228
- // We tried to create an account at an address where an account already
229
- // exists.
230
- AccountAddressAlreadyExists = 6;
231
- TypeError = 7;
232
- MissingData = 8;
233
- DataFormatError = 9;
234
- InvalidData = 10;
235
- RemoteDataError = 11;
236
- CannotWriteExistingResource = 12;
237
- ValueSerializationError = 13;
238
- ValueDeserializationError = 14;
239
- // The sender is trying to publish a module named `M`, but the sender's account already contains
240
- // a module with this name.
241
- DuplicateModuleName = 15;
242
- ExecutionStackOverflow = 16;
243
- CallStackOverflow = 17;
244
- }
245
-
246
- // user-defined abort error code number
247
- message Aborted {
248
- uint64 aborted_error_code = 1;
249
- }
250
-
251
- message ArithmeticError {
252
- enum ArithmeticErrorType {
253
- UnknownArithmeticError = 0;
254
- Underflow = 1;
255
- Overflow = 2;
256
- DivisionByZero = 3;
257
- // Fill with more later
258
- }
259
- ArithmeticErrorType error_code = 1;
260
- }
261
-
262
- message DynamicReferenceError {
263
- enum DynamicReferenceErrorType {
264
- UnknownDynamicReferenceError = 0;
265
- MoveOfBorrowedResource = 1;
266
- GlobalRefAlreadyReleased = 2;
267
- MissingReleaseRef = 3;
268
- GlobalAlreadyBorrowed = 4;
269
- // Fill with with more later
270
- }
271
- DynamicReferenceErrorType error_code = 1;
272
- }
273
-
274
- message ExecutionStatus {
275
- oneof execution_status {
276
- RuntimeStatus runtime_status = 1;
277
- Aborted aborted = 2;
278
- ArithmeticError arithmetic_error = 3;
279
- DynamicReferenceError reference_error = 4;
280
- }
281
- }
282
-
283
- // The status of the VM
284
27
  message VMStatus {
285
- oneof error_type {
286
- VMValidationStatus validation = 1;
287
- VMVerificationStatusList verification = 2;
288
- VMInvariantViolationError invariant_violation = 3;
289
- BinaryError deserialization = 4;
290
- ExecutionStatus execution = 5;
291
- }
28
+ // e.g. assertion violation, out of gas
29
+ uint64 major_status = 1;
30
+ // Any substatus code. e.g. assertion error number
31
+ bool has_sub_status = 2;
32
+ uint64 sub_status = 3;
33
+ bool has_message = 4;
34
+ string message = 5;
292
35
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libra_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - yuan xinyu
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-12 00:00:00.000000000 Z
11
+ date: 2019-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 0.1.2
103
+ version: 0.2.1
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 0.1.2
110
+ version: 0.2.1
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rest-client
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -224,7 +224,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
224
224
  version: '0'
225
225
  requirements: []
226
226
  rubyforge_project:
227
- rubygems_version: 2.7.7
227
+ rubygems_version: 2.7.6
228
228
  signing_key:
229
229
  specification_version: 4
230
230
  summary: A ruby client for Libra network.