| 19 | namespace blockchain { |
| 20 | |
| 21 | class ChainInterface |
| 22 | : public PropertyDbInterface, |
| 23 | public AccountDbInterface, |
| 24 | public AssetDbInterface, |
| 25 | public SlateDbInterface, |
| 26 | public BalanceDbInterface, |
| 27 | public TransactionDbInterface, |
| 28 | public SlotDbInterface, |
| 29 | public ContractDbInterface |
| 30 | { |
| 31 | public: |
| 32 | virtual ~ChainInterface(){}; |
| 33 | |
| 34 | virtual fc::time_point_sec now()const = 0; |
| 35 | |
| 36 | /** is_valid_account_name |
| 37 | * Determine whether a string is a valid account name |
| 38 | * @param name name to be checked |
| 39 | * |
| 40 | * @return bool |
| 41 | */ |
| 42 | static bool is_valid_account_name(const string& name); |
| 43 | /** is_valid_symbol_name |
| 44 | * Determine whether a string is a valid asset symbol |
| 45 | * @param symbol symbol to be checked |
| 46 | * |
| 47 | * @return bool |
| 48 | */ |
| 49 | bool is_valid_symbol_name(const string& symbol)const; |
| 50 | /** |
| 51 | * Determine whether a string is a valid asset symbol |
| 52 | * @param symbol string |
| 53 | * |
| 54 | * @return bool |
| 55 | */ |
| 56 | bool is_valid_symbol_name_v1(const string& symbol)const; |
| 57 | /** |
| 58 | * Determine whether an asset associated with the specified assetentry is fraudulent |
| 59 | * @param suspect_entry assetentry accociatied with the asset |
| 60 | * |
| 61 | * @return bool |
| 62 | */ |
| 63 | bool is_fraudulent_asset(const AssetEntry& suspect_entry)const; |
| 64 | /** |
| 65 | * Get time of genesis(registion of Asset ALP) |
| 66 | * |
| 67 | * @return time_point_sec |
| 68 | */ |
| 69 | time_point_sec get_genesis_timestamp()const; |
| 70 | |
| 71 | /** get_max_delegate_pay_issued_per_block |
| 72 | * |
| 73 | * get max fee that issued by dalegates generating a block |
| 74 | * |
| 75 | * @return ShareType |
| 76 | */ |
| 77 | ShareType get_max_delegate_pay_issued_per_block()const; |
| 78 | /** |