github.com/igggame/nebulas-go@v2.1.0+incompatible/nf/nvm/cfuncs.go (about)

     1  // Copyright (C) 2017 go-nebulas authors
     2  //
     3  // This file is part of the go-nebulas library.
     4  //
     5  // the go-nebulas library is free software: you can redistribute it and/or modify
     6  // it under the terms of the GNU General Public License as published by
     7  // the Free Software Foundation, either version 3 of the License, or
     8  // (at your option) any later version.
     9  //
    10  // the go-nebulas library is distributed in the hope that it will be useful,
    11  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13  // GNU General Public License for more details.
    14  //
    15  // You should have received a copy of the GNU General Public License
    16  // along with the go-nebulas library.  If not, see <http://www.gnu.org/licenses/>.
    17  //
    18  
    19  package nvm
    20  
    21  /*
    22  #include <stddef.h>
    23  
    24  // logger.
    25  void V8Log(int level, const char *msg);
    26  
    27  // require.
    28  char *RequireDelegateFunc(void *handler, const char *filename, size_t *lineOffset);
    29  char *AttachLibVersionDelegateFunc(void *handler, const char *libname);
    30  
    31  // storage.
    32  char *StorageGetFunc(void *handler, const char *key, size_t *gasCnt);
    33  int StoragePutFunc(void *handler, const char *key, const char *value, size_t *gasCnt);
    34  int StorageDelFunc(void *handler, const char *key, size_t *gasCnt);
    35  
    36  // blockchain.
    37  char *GetTxByHashFunc(void *handler, const char *hash, size_t *gasCnt);
    38  int GetAccountStateFunc(void *handler, const char *address, size_t *gasCnt, char **result, char **info);
    39  int TransferFunc(void *handler, const char *to, const char *value, size_t *gasCnt);
    40  int VerifyAddressFunc(void *handler, const char *address, size_t *gasCnt);
    41  int GetPreBlockHashFunc(void *handler, unsigned long long offset, size_t *gasCnt, char **result, char **info);
    42  int GetPreBlockSeedFunc(void *handler, unsigned long long offset, size_t *gasCnt, char **result, char **info);
    43  char *GetContractSourceFunc(void *handler, const char *address, size_t *gasCnt);
    44  char *InnerContractFunc(void *handler, const char *address, const char *funcName, const char * v,
    45  		const char *args, size_t *gasCnt);
    46  
    47  //random.
    48  int GetTxRandomFunc(void *handler, size_t *gasCnt, char **result, char **exceptionInfo);
    49  int GetLatestNebulasRankFunc(void *handler, const char *address, size_t *gasCnt, char **result, char **info);
    50  int GetLatestNebulasRankSummaryFunc(void *handler, size_t *gasCnt, char **result, char **info);
    51  
    52  // event.
    53  void EventTriggerFunc(void *handler, const char *topic, const char *data, size_t *gasCnt);
    54  
    55  // crypto
    56  char *Sha256Func(const char *data, size_t *gasCnt);
    57  char *Sha3256Func(const char *data, size_t *gasCnt);
    58  char *Ripemd160Func(const char *data, size_t *gasCnt);
    59  char *RecoverAddressFunc(int alg, const char *data, const char *sign, size_t *gasCnt);
    60  char *Md5Func(const char *data, size_t *gasCnt);
    61  char *Base64Func(const char *data, size_t *gasCnt);
    62  
    63  // The gateway functions.
    64  void V8Log_cgo(int level, const char *msg) {
    65  	V8Log(level, msg);
    66  };
    67  
    68  char *RequireDelegateFunc_cgo(void *handler, const char *filename, size_t *lineOffset) {
    69  	return RequireDelegateFunc(handler, filename, lineOffset);
    70  }
    71  
    72  char *AttachLibVersionDelegateFunc_cgo(void *handler, const char *libname) {
    73  	return AttachLibVersionDelegateFunc(handler, libname);
    74  }
    75  
    76  char *StorageGetFunc_cgo(void *handler, const char *key, size_t *gasCnt) {
    77  	return StorageGetFunc(handler, key, gasCnt);
    78  };
    79  int StoragePutFunc_cgo(void *handler, const char *key, const char *value, size_t *gasCnt) {
    80  	return StoragePutFunc(handler, key, value, gasCnt);
    81  };
    82  int StorageDelFunc_cgo(void *handler, const char *key, size_t *gasCnt) {
    83  	return StorageDelFunc(handler, key, gasCnt);
    84  };
    85  
    86  char *GetTxByHashFunc_cgo(void *handler, const char *hash, size_t *gasCnt) {
    87  	return GetTxByHashFunc(handler, hash, gasCnt);
    88  };
    89  int GetAccountStateFunc_cgo(void *handler, const char *address, size_t *gasCnt, char **result, char **info) {
    90  	return GetAccountStateFunc(handler, address, gasCnt, result, info);
    91  };
    92  int TransferFunc_cgo(void *handler, const char *to, const char *value, size_t *gasCnt) {
    93  	return TransferFunc(handler, to, value, gasCnt);
    94  };
    95  int VerifyAddressFunc_cgo(void *handler, const char *address, size_t *gasCnt) {
    96  	return VerifyAddressFunc(handler, address, gasCnt);
    97  };
    98  
    99  int GetPreBlockHashFunc_cgo(void *handler, unsigned long long offset, size_t *gasCnt, char **result, char **info) {
   100  	return GetPreBlockHashFunc(handler, offset, gasCnt, result, info);
   101  }
   102  
   103  int GetPreBlockSeedFunc_cgo(void *handler, unsigned long long offset, size_t *gasCnt, char **result, char **info) {
   104  	return GetPreBlockSeedFunc(handler, offset, gasCnt, result, info);
   105  }
   106  
   107  char *GetContractSourceFunc_cgo(void *handler, const char *address, size_t *gasCnt) {
   108  	return GetContractSourceFunc(handler, address, gasCnt);
   109  };
   110  char *InnerContractFunc_cgo(void *handler, const char *address, const char *funcName, const char * v, const char *args, size_t *gasCnt) {
   111  	return InnerContractFunc(handler, address, funcName, v, args, gasCnt);
   112  };
   113  int GetTxRandomFunc_cgo(void *handler, size_t *gasCnt, char **result, char **exceptionInfo) {
   114  	return GetTxRandomFunc(handler, gasCnt, result, exceptionInfo);
   115  };
   116  
   117  int GetLatestNebulasRankFunc_cgo(void *handler, const char *address, size_t *gasCnt, char **result, char **info) {
   118   	return GetLatestNebulasRankFunc(handler, address, gasCnt, result, info);
   119  };
   120  int GetLatestNebulasRankSummaryFunc_cgo(void *handler, size_t *gasCnt, char **result, char **info) {
   121   	return GetLatestNebulasRankSummaryFunc(handler, gasCnt, result, info);
   122  };
   123  
   124  void EventTriggerFunc_cgo(void *handler, const char *topic, const char *data, size_t *gasCnt) {
   125  	EventTriggerFunc(handler, topic, data, gasCnt);
   126  };
   127  
   128  char *Sha256Func_cgo(const char *data, size_t *gasCnt) {
   129  	return Sha256Func(data, gasCnt);
   130  }
   131  char *Sha3256Func_cgo(const char *data, size_t *gasCnt) {
   132  	return Sha3256Func(data, gasCnt);
   133  }
   134  char *Ripemd160Func_cgo(const char *data, size_t *gasCnt) {
   135  	return Ripemd160Func(data, gasCnt);
   136  }
   137  char *RecoverAddressFunc_cgo(int alg, const char *data, const char *sign, size_t *gasCnt) {
   138  	return RecoverAddressFunc(alg, data, sign, gasCnt);
   139  }
   140  char *Md5Func_cgo(const char *data, size_t *gasCnt) {
   141  	return Md5Func(data, gasCnt);
   142  }
   143  char *Base64Func_cgo(const char *data, size_t *gasCnt) {
   144  	return Base64Func(data, gasCnt);
   145  }
   146  
   147  */
   148  import "C"