Class: Sbuilder::Ial::Action::Render::ProducerEthereumConstants

Inherits:
Object
  • Object
show all
Defined in:
lib/action/render/producer_ethereum_const.rb

Constant Summary collapse

OP_INFRA_RETURN =

OP_INFRA_SET_RESPONSE=“InfrastructureServiceResponse”

"InfrastructureServiceReturn"
OP_INFRA_GET_RESPONSE =
"InfrastructureServiceGetResponse"
OP_INFRA_GET_STATUS =
"InfrastructureServiceGetStatus"
OP_INFRA_STATUS_INIT =
"InfrastructureServiceInit"
OP_INFRA_THROW =
"schedule_throw"
OP_INFRA_UPDATE_TOP =
'UpdateTop'
OP_INFRA_RESPONSES =
'responses'
OP_INFRA_NEXT_ID =
'NextId'
FW_SVC_UNIQUE_ELEMENTS =

FRAMEWORK -services

'uniqueElements'
FW_OP_ELEMENT_EXISTS =
'elementExists'
FW_OP_GET_ELEMENT =
"getElement"
FW_STATE_ACCOUNTS =
"accounts"
FW_STATE_ACCOUNTS_TEMP =
"accounts_temp"
FW_STATE_STORAGE_ROOT =
'storageRoot'
FW_STATE_STORAGE_ROOT_TEMP =
'storageRoot_temp'
FW_STATE_MINED =
'mined'
ETH_OPEATOR_INTRINSIC_GAS =
'intrinsicGas'
ETH_OPEATOR_TRANSACTION_GAS =
'transactionGas'
ETH_OPEATOR_UP_FRONT_COST =
'upFrontCost'
ETH_OPEATOR_GAS_VALUE =
'gasValue'
TLA_SERVICE_POP =

ethereum specific services

"ethereum_service_pop"
INITIAL_SNIPPETS =
[

  # ------------------------------------------------------------------
  # Base snippets - i.e. no connection to ethreums
  # {
  #   :comment => "macro to update existing contract",
  #   :metatype => Sbuilder::Facade::META_MODEL_FRAMEWORK_SVC,
  #   :appName => 'update_existing_contract',
  #   :body =>
  #   <<-EOS.unindent,
  #   macro update_existing_contract() {
  #      print <<"update_existing_contract">>;
  #   }
  #   EOS
  # },

  {
    :comment => "Add element to sequence head",
    :metatype => Sbuilder::Facade::META_MODEL_FRAMEWORK_SVC,
    :appName => 'Push',
    :body =>
    <<-EOS.unindent,
  },

  {
    :comment => "Update element to sequence head",
    :metatype => Sbuilder::Facade::META_MODEL_FRAMEWORK_SVC,
    :appName => OP_INFRA_UPDATE_TOP,
    :body =>
    <<-EOS.unindent,
  },

  
  {
    :comment => "Propgate top element to stack & pop",
    :metatype => Sbuilder::Facade::META_MODEL_FRAMEWORK_SVC,
    :appName => 'PropageOnStack',
    :body =>
    <<-EOS.unindent,
  },

  {
    :comment => "Check if unique element exists",
    :metatype => Sbuilder::Facade::META_MODEL_FRAMEWORK_SVC,
    :appName => 'elementExists',
    :body =>
    <<-EOS.unindent,
  },

  {
    :comment => "Check if unique element exists",
    :metatype => Sbuilder::Facade::META_MODEL_FRAMEWORK_SVC,
    :appName => 'getElement',
    :body =>
    <<-EOS.unindent,
  },

  {
    :comment => "stable when process finished running",
    :metatype => Sbuilder::Facade::META_MODEL_FRAMEWORK_SVC,
    :appName => 'Stable',
    :body =>
    <<-EOS.unindent,
  },

  {
    :comment => "Sum record fields",
    :metatype => Sbuilder::Facade::META_MODEL_FRAMEWORK_SVC,
    :appName => 'SumRecordField',
    :body =>
    <<-EOS.unindent,
  },

  {
    :comment => "Sum function",
    :metatype => Sbuilder::Facade::META_MODEL_FRAMEWORK_SVC,
    :appName => 'SumOfFunction',
    :body =>
    <<-EOS.unindent,
  },

  {
    :comment => "Operator to check element uniques in a set",
    :metatype => Sbuilder::Facade::META_MODEL_FRAMEWORK_SVC,
    :appName => FW_SVC_UNIQUE_ELEMENTS, 
    :body =>
    <<-EOS.unindent,
  },

  {
    :comment => "Take given 'address', or choose any address from pool of 'ids'. Notice (CHOOSE operation is deterministic)",
    :metatype => Sbuilder::Facade::META_MODEL_FRAMEWORK_SVC,
    :appName => OP_INFRA_NEXT_ID,
    :body =>
    <<-EOS.unindent,
  },
]
ETHEREUM_SNIPPETS =

BASE_SNIPPETS

[
  {
    :comment  => 'Finish service procedure: propage stack top on succcess && pop',                        
    :metatype => Sbuilder::Facade::META_MODEL_FRAMEWORK_SVC,
    :appName => TLA_SERVICE_POP, 
    :body => <<-EOS.unindent
 (*
  * Service procedure for 'interface' has finished.
  * Check status of service response.
  * For success make changes in procedure permanent by propagating
  * stack top to top-1..bottom.
  *
  * In any case pop one element from stack.
  * 
  *)

 macro ethereum_service_pop( interface ) {
     \\* TODO - add implementation
     skip;
 }

EOS
  },


]
BASE_SNIPPETS =

ETHEREUM_SNIPPETS

INITIAL_SNIPPETS + ETHEREUM_SNIPPETS