libra_client 0.1.7 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.