Kevin Mok
3 years ago
No known key found for this signature in database
GPG Key ID: C072BD80DB66DE18
4 changed files with 118 additions and 16 deletions
-
1.gitignore
-
55index.js
-
11mint-nft.js
-
67watch.js
@ -1,3 +1,4 @@ |
|||
node_modules/ |
|||
|
|||
.env |
|||
*.txt |
@ -0,0 +1,67 @@ |
|||
// For Node >= v13 / es module environments
|
|||
import BlocknativeSdk from 'bnc-sdk' |
|||
import WebSocket from 'ws' // only neccessary in server environments
|
|||
|
|||
import dotenv from 'dotenv' |
|||
dotenv.config() |
|||
const API_URL = process.env.API_URL; |
|||
import { createAlchemyWeb3 } from "@alch/alchemy-web3" |
|||
const web3 = createAlchemyWeb3(API_URL); |
|||
|
|||
import contractABI from './MoonbirdPunks.json' assert { type: 'json' } |
|||
|
|||
// create options object
|
|||
const options = { |
|||
dappId: 'd30463f1-eb29-42b8-8059-e5596e13d0fe', |
|||
networkId: 3, |
|||
system: 'ethereum', // optional, defaults to ethereum
|
|||
transactionHandlers: [event => console.log(event.transaction)], |
|||
ws: WebSocket, // only neccessary in server environments
|
|||
name: 'Instance name here', // optional, use when running multiple instances
|
|||
onerror: (error) => {console.log(error)} //optional, use to catch errors
|
|||
} |
|||
|
|||
// initialize and connect to the api
|
|||
const blocknative = new BlocknativeSdk(options) |
|||
const contractAddress = "0x7d82a88Efb60Bb83B3f1665757c20D07E5C0f3ED" |
|||
const methodName = "ownerMint" |
|||
// const methodName = "flipSaleState"
|
|||
|
|||
await blocknative.configuration({ |
|||
scope: contractAddress, // [required] - either 'global' or valid Ethereum address
|
|||
// filters: [{"contractCall.methodName":methodName}],
|
|||
abi: contractABI.abi, // [optional] - valid contract ABI
|
|||
watchAddress: true // [optional] - Whether the server should automatically watch the "scope" value if it is an address
|
|||
}) |
|||
|
|||
// returns a promise that resolves once the configuration has been applied
|
|||
// or rejects if there was a problem with the configuration
|
|||
|
|||
// call with the address of the account that you would like to receive status updates for
|
|||
const { |
|||
emitter, // emitter object to listen for status updates
|
|||
details // initial account details which are useful for internal tracking: address
|
|||
} = blocknative.account(contractAddress) |
|||
|
|||
// console.log(`Watching for ${methodName} on ${contractAddress}...`)
|
|||
console.log(`Watching for all methods on ${contractAddress}...`) |
|||
|
|||
const nftContract = new web3.eth.Contract(contractABI.abi, contractAddress); |
|||
|
|||
// listen to some events
|
|||
emitter.on('txPool', transaction => { |
|||
// emitter.on('txSent', transaction => {
|
|||
console.log(`Sending ${transaction.value} wei to ${transaction.to}`) |
|||
}) |
|||
|
|||
// blocknative.unsubscribe(contractAddress)
|
|||
|
|||
// emitter.on('txConfirmed', transaction => {
|
|||
// console.log('Transaction is confirmed!')
|
|||
// })
|
|||
|
|||
// catch every other event that occurs and log it
|
|||
// emitter.on('all', transaction => {
|
|||
// console.log(`Transaction event: ${transaction.eventCode}`)
|
|||
// })
|
|||
//
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue