castrguru
Version:
A comprehensive JavaScript Library + SDK for building Farcaster frame-based applications.
290 lines (245 loc) • 7.57 kB
JavaScript
/*******************************************************************************
*
* Castr Library + SDK Main Entry Module
*
* This file offers access to the entire suite of Castr packages.
*
* Please visit https://castr.guru for more details.
*/
/* Initialize event emitter. */
import { EventEmitter } from 'events'
/* Import Castr classes */
// NOTE: This allows us to export a (default) module.
// import { Address as _Address } from '@castrguru/address'
// import { App as _App } from '@castrguru/app'
// import { Charts as _Charts } from '../packages/Charts/index.js'
// import { Crypto as _Crypto } from '@castrguru/crypto'
// import { Db as _Db } from '../packages/Db/index.js'
// import { Defi as _Defi } from '../packages/Defi/index.js'
// import { Hdnode as _Hdnode } from '@castrguru/hdnode'
// import { Id as _Id } from '@castrguru/id'
// import { Ledger as _Ledger } from '../packages/Ledger/index.js'
// import { Market as _Market } from '@castrguru/market'
// import { Message as _Message } from '@castrguru/message'
// import { Next as _Next } from '../packages/Next/index.js'
// import { Nuxt as _Nuxt } from '../packages/Nuxt/index.js'
// import { Persona as _Persona } from '../packages/Persona/index.js'
// import { Privacy as _Privacy } from '@castrguru/privacy'
// import { Provider as _Provider } from '@castrguru/provider'
// import { Request as _Request } from '@castrguru/request'
// import { Utils as _Utils } from '@castrguru/utils'
// import { Wallet as _Wallet } from '@castrguru/wallet'
/* Export (individual) Castr classes */
// export const Address = _Address
// export const App = _App
// export const Charts = _Charts
// export const Crypto = _Crypto
// export const Db = _Db
// export const Defi = _Defi
// export const Hdnode = _Hdnode
// export const Id = _Id
// export const Market = _Market
// export const Message = _Message
// export const Meta = _Meta
// export const Next = _Next
// export const Nostr = _Nostrb
// export const Persona = _Persona
// export const Privacy = _Privacy
// export const Provider = _Provider
// export const Purse = _Purse
// export const Request = _Request
// export const Rostrum = _Rostrum
// export const Rpc = _Rpc
// export const Script = _Script
// export const Slim = _Slim
// export const Token = _Token
// export const Transaction = _Transaction
// export const Trezor = _Trezor
// export const Utils = _Utils
// export const Wallet = _Wallet
// export const Wasm = _Wasm
// export const Zk = _Zk
//------------------------------------------------------------------------------
/* Export Address methods */
// export { decodeAddress } from '@castrguru/address'
// export { decodeBase58AddressFormat } from '@castrguru/address'
// export { encodeAddress } from '@castrguru/address'
// export { encodeBase58AddressFormat } from '@castrguru/address'
// export { getSender } from '@castrguru/address'
// export { listUnspent } from '@castrguru/address'
// export { watchAddress } from '@castrguru/address'
/* Export Analytics methods */
// export { methodName } from '../packages/Analytics/index.js'
/* Export App methods */
// export { copyToClipboard } from '@castrguru/app'
/* Export Charts methods */
// export { methodName } from '../packages/Charts/index.js'
/* Export Database methods */
// export { methodName } from '../packages/Db/index.js'
/* Export Utility methods */
// export { isJson } from '@castrguru/utils'
// export { shuffle } from '@castrguru/utils'
// export { sleep } from '@castrguru/utils'
/* Export Wallet methods */
// export { build } from '@castrguru/wallet'
// export { getDerivationPath } from '@castrguru/wallet'
// export { parseDerivationPath } from '@castrguru/wallet'
// export { send } from '@castrguru/wallet'
// export { WalletStatus } from '@castrguru/wallet'
//------------------------------------------------------------------------------
/**
* Nexa Main (default) Module Class
*
* Main class/module for the Castr Library + Software Development Kit (SDK).
*
* NOTE: This is a (default) module, so it DOES NOT require curly braces
* when importing into your application.
*/
export default class Castr extends EventEmitter {
constructor(_params) {
/* Initialize Castr class. */
console.info('Initializing Castr Library + SDK...')
// console.log(JSON.stringify(_params, null, 2))
super()
/* Initialize wallet. */
this.wallet = null
// TBD
}
/* (Instance) test. */
test() {
return 'Hi Builder! This is a simple (Instance) test...'
}
/* (Static) test. */
static test() {
return 'Hi Builder! This is a simple (Static) test...'
}
/* (Emitter) test. */
testEmitter() {
this.emit('test', 'Hello Dev! This is a simple (Emitter) test...')
}
/**
* Status
*
* Returns a readiness status for the Library.
*/
static get status() {
/* Initialize statuses. */
const statuses = [{
id: -1,
message: 'error'
}, {
id: 0,
message: 'unknown'
}, {
id: 1,
message: 'ok'
}]
/* Set current status. */
const currentStatus = statuses[2]
/* Return current status. */
return currentStatus
}
/**
* Report
*
* Returns a JSON-formatted usage report for the Library.
*/
static get report() {
/* Initialize statuses. */
const statuses = [{
id: -1,
message: 'error'
}, {
id: 0,
message: 'unknown'
}, {
id: 1,
message: 'ok'
}]
/* Set current status. */
const currentStatus = statuses[2]
/* Return current status. */
return currentStatus
}
/* Address */
// NOTE: This class is read-only and ONLY supports static methods.
// static get Address() {
// return _Address
// }
/* Application */
// static get App() {
// return _App
// }
/* Crypto */
// static get Crypto() {
// return _Crypto
// }
/* Nexa ID Protocol */
// static get Id() {
// return _Id
// }
/* Market */
// static get Market() {
// return _Market
// }
/* Message */
// static get Message() {
// return _Message
// }
/* Meta */
// static get Meta() {
// return _Meta
// }
/* Persona */
// static get Persona() {
// return _Persona
// }
/* Privacy */
// static get Privacy() {
// return _Privacy
// }
/* Provider */
// static get Provider() {
// return _Provider
// }
/* Purse */
// static get Purse() {
// return _Purse
// }
/* Request */
// static get Request() {
// return _Request
// }
/* Rostrum */
// static get Rostrum() {
// return _Rostrum
// }
/* RPC */
// static get RPC() {
// return _Rpc
// }
/* Script */
// static get Script() {
// return _Script
// }
/* Transaction */
// static get Transaction() {
// return _Transaction
// }
/* Utilities */
// static get Utils() {
// return _Utils
// }
/* Wallet */
// static get Wallet() {
// return _Wallet
// }
/* Wasm */
// static get Wasm() {
// return _Wasm
// }
/* Zero Knowledge */
// static get Zk() {
// return _Zk
// }
}