moralis_core.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. const Moralis = require("moralis/node");
  2. const logger = require("../logger");
  3. async function getNFTOwners(opts) {
  4. logger.info('getNFTOwners', opts)
  5. const options = {
  6. address: opts.address,
  7. chain: opts.chain,
  8. };
  9. try {
  10. return await Moralis.Web3API.token.getNFTOwners(options);
  11. } catch (error) {
  12. logger.error('getNFTOwners error', error.toString(), JSON.stringify(options))
  13. }
  14. return null
  15. }
  16. async function getTokenIdMetadata(opts) {
  17. logger.info('getNFTOwners', opts)
  18. const options = {
  19. address: opts.address,
  20. token_id: opts.token_id,
  21. chain: opts.chain,
  22. };
  23. try {
  24. return await Moralis.Web3API.token.getTokenIdMetadata(options);
  25. } catch (error) {
  26. logger.error('getTokenIdMetadata', error.toString(), JSON.stringify(opts))
  27. return null;
  28. }
  29. }
  30. async function getNFTMetadata(opts) {
  31. logger.info('getNFTMetadata', opts)
  32. const options = {
  33. address: opts.address,
  34. chain: opts.chain,
  35. };
  36. try {
  37. return await Moralis.Web3API.token.getNFTMetadata(options);
  38. } catch (error) {
  39. logger.error('getNFTOwners error', error.toString(), JSON.stringify(options))
  40. }
  41. }
  42. async function getAllTokenIds(opts) {
  43. logger.info('getAllTokenIds', opts)
  44. const options = {
  45. address: opts.address,
  46. chain: opts.chain,
  47. };
  48. try {
  49. return await Moralis.Web3API.token.getAllTokenIds(options);
  50. } catch (error) {
  51. logger.error('getAllTokenIds error', error.toString(), JSON.stringify(options))
  52. }
  53. }
  54. async function enableWeb3(chainId, privateKey_) {
  55. // Enable web3
  56. await Moralis.enableWeb3({
  57. chainId: chainId,
  58. privateKey: privateKey_,
  59. });
  60. }
  61. async function transferNft(opts) {
  62. // sending a token with token id = 1
  63. const options = {
  64. type: opts.type,
  65. receiver: opts.toAddress,
  66. contractAddress: opts.tokenAddress,
  67. tokenId: opts.tokenId,
  68. };
  69. try {
  70. await enableWeb3(opts.chainId,opts.privateKey)
  71. } catch (error) {
  72. logger.error('transferNft enableWeb3', error.toString(), JSON.stringify(options))
  73. return {
  74. code: -1,
  75. errMsg: 'enableWeb3'+error.toString(),
  76. }
  77. }
  78. try {
  79. return await Moralis.transfer(options);
  80. } catch (error) {
  81. logger.error('transferNft', error.toString(), JSON.stringify(options))
  82. return {
  83. code: -1,
  84. errMsg: 'transfer'+error.toString(),
  85. }
  86. }
  87. }
  88. module.exports = {
  89. getNFTOwners,
  90. getNFTMetadata,
  91. getTokenIdMetadata,
  92. getAllTokenIds,
  93. transferNft,
  94. }