helium / blockchain-core

Apache License 2.0
212 stars 85 forks source link

Add diff_vars fun for aux ledger #1257

Closed vihu closed 2 years ago

vihu commented 2 years ago

This adds support for diffing chain vars between aux ledger and active ledger.

Examples:

(miner@127.0.0.1)1> blockchain_aux_ledger_v1:diff_vars([data_aggregation_version], blockchain:ledger()).
#{data_aggregation_version => {{active,{ok,3}},{aux,{ok,4}}}}
(miner@127.0.0.1)2> blockchain_aux_ledger_v1:diff_vars([data_aggregation_versions], blockchain:ledger()).
#{data_aggregation_versions =>
      {{active,{error,not_found}},{aux,{error,not_found}}}}
(miner@127.0.0.1)3> blockchain_aux_ledger_v1:set_vars(#{yolo => true}, blockchain_ledger_v1:mode(aux, blockchain:ledger())).
ok
(miner@127.0.0.1)4> blockchain_aux_ledger_v1:diff_vars([yolo], blockchain:ledger()).
#{yolo => {{active,{error,not_found}},{aux,{ok,true}}}}
(miner@127.0.0.1)2> blockchain_aux_ledger_v1:diff_vars([yolo, data_aggregation_version, data_aggregation_versions], blockchain:ledger()).
#{data_aggregation_version => {{active,{ok,3}},{aux,{ok,4}}},
  data_aggregation_versions =>
      {{active,{error,not_found}},{aux,{error,not_found}}},
  yolo => {{active,{error,not_found}},{aux,{ok,true}}}}