Testnet v3.
This commit is contained in:
@@ -5,7 +5,8 @@ GITHUB_ID=""
|
|||||||
NEXT_PUBLIC_COMPILE_API_ENDPOINT="http://localhost:9000/api/build"
|
NEXT_PUBLIC_COMPILE_API_ENDPOINT="http://localhost:9000/api/build"
|
||||||
NEXT_PUBLIC_COMPILE_API_BASE_URL="http://localhost:9000"
|
NEXT_PUBLIC_COMPILE_API_BASE_URL="http://localhost:9000"
|
||||||
NEXT_PUBLIC_LANGUAGE_SERVER_API_ENDPOINT="ws://localhost:9000/language-server/c"
|
NEXT_PUBLIC_LANGUAGE_SERVER_API_ENDPOINT="ws://localhost:9000/language-server/c"
|
||||||
NEXT_PUBLIC_TESTNET_URL="hooks-testnet-v2.xrpl-labs.com"
|
NEXT_PUBLIC_TESTNET_URL="hooks-testnet-v3.xrpl-labs.com"
|
||||||
NEXT_PUBLIC_DEBUG_STREAM_URL="hooks-testnet-v2-debugstream.xrpl-labs.com"
|
NEXT_PUBLIC_DEBUG_STREAM_URL="hooks-testnet-v3-debugstream.xrpl-labs.com"
|
||||||
NEXT_PUBLIC_EXPLORER_URL="hooks-testnet-v2-explorer.xrpl-labs.com"
|
NEXT_PUBLIC_EXPLORER_URL="hooks-testnet-v3-explorer.xrpl-labs.com"
|
||||||
NEXT_PUBLIC_SITE_URL=http://localhost:3000
|
NEXT_PUBLIC_NETWORK_ID="21338"
|
||||||
|
NEXT_PUBLIC_SITE_URL="http://localhost:3000"
|
||||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -33,3 +33,7 @@ yarn-error.log*
|
|||||||
# vercel
|
# vercel
|
||||||
.vercel
|
.vercel
|
||||||
.vscode
|
.vscode
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
.yarnrc.yml
|
||||||
|
.yarn/
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import { addFunds } from '../state/actions/addFaucetAccount'
|
|||||||
import { deleteHook } from '../state/actions/deployHook'
|
import { deleteHook } from '../state/actions/deployHook'
|
||||||
import { capitalize } from '../utils/helpers'
|
import { capitalize } from '../utils/helpers'
|
||||||
import { deleteAccount } from '../state/actions/deleteAccount'
|
import { deleteAccount } from '../state/actions/deleteAccount'
|
||||||
|
import { xrplSend } from '../state/actions/xrpl-client'
|
||||||
|
|
||||||
export const AccountDialog = ({
|
export const AccountDialog = ({
|
||||||
activeAccountAddress,
|
activeAccountAddress,
|
||||||
@@ -301,7 +302,7 @@ const Accounts: FC<AccountProps> = props => {
|
|||||||
const fetchAccInfo = async () => {
|
const fetchAccInfo = async () => {
|
||||||
if (snap.clientStatus === 'online') {
|
if (snap.clientStatus === 'online') {
|
||||||
const requests = snap.accounts.map(acc =>
|
const requests = snap.accounts.map(acc =>
|
||||||
snap.client?.send({
|
xrplSend({
|
||||||
id: `hooks-builder-req-info-${acc.address}`,
|
id: `hooks-builder-req-info-${acc.address}`,
|
||||||
command: 'account_info',
|
command: 'account_info',
|
||||||
account: acc.address
|
account: acc.address
|
||||||
@@ -329,7 +330,7 @@ const Accounts: FC<AccountProps> = props => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
const objectRequests = snap.accounts.map(acc => {
|
const objectRequests = snap.accounts.map(acc => {
|
||||||
return snap.client?.send({
|
return xrplSend({
|
||||||
id: `hooks-builder-req-objects-${acc.address}`,
|
id: `hooks-builder-req-objects-${acc.address}`,
|
||||||
command: 'account_objects',
|
command: 'account_objects',
|
||||||
account: acc.address
|
account: acc.address
|
||||||
|
|||||||
@@ -65,8 +65,8 @@
|
|||||||
"vscode-languageserver": "^7.0.0",
|
"vscode-languageserver": "^7.0.0",
|
||||||
"vscode-uri": "^3.0.2",
|
"vscode-uri": "^3.0.2",
|
||||||
"wabt": "^1.0.30",
|
"wabt": "^1.0.30",
|
||||||
"xrpl-accountlib": "^1.5.2",
|
"xrpl-accountlib": "^1.6.1",
|
||||||
"xrpl-client": "^1.9.4"
|
"xrpl-client": "^2.0.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/dinero.js": "^1.9.0",
|
"@types/dinero.js": "^1.9.0",
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -8,6 +8,7 @@ import { ref } from 'valtio'
|
|||||||
import estimateFee from '../../utils/estimateFee'
|
import estimateFee from '../../utils/estimateFee'
|
||||||
import { SetHookData } from '../../utils/setHook'
|
import { SetHookData } from '../../utils/setHook'
|
||||||
import ResultLink from '../../components/ResultLink'
|
import ResultLink from '../../components/ResultLink'
|
||||||
|
import { xrplSend } from './xrpl-client'
|
||||||
|
|
||||||
export const sha256 = async (string: string) => {
|
export const sha256 = async (string: string) => {
|
||||||
const utf8 = new TextEncoder().encode(string)
|
const utf8 = new TextEncoder().encode(string)
|
||||||
@@ -64,9 +65,6 @@ export const prepareDeployHookTx = async (
|
|||||||
if (!activeFile?.compiledContent) {
|
if (!activeFile?.compiledContent) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!state.client) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
const HookNamespace = (await sha256(data.HookNamespace)).toUpperCase()
|
const HookNamespace = (await sha256(data.HookNamespace)).toUpperCase()
|
||||||
const hookOnValues: (keyof TTS)[] = data.Invoke.map(tt => tt.value)
|
const hookOnValues: (keyof TTS)[] = data.Invoke.map(tt => tt.value)
|
||||||
const { HookParameters } = data
|
const { HookParameters } = data
|
||||||
@@ -87,30 +85,30 @@ export const prepareDeployHookTx = async (
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// });
|
// });
|
||||||
if (typeof window !== 'undefined') {
|
if (typeof window === 'undefined') return;
|
||||||
const tx = {
|
const tx = {
|
||||||
Account: account.address,
|
Account: account.address,
|
||||||
TransactionType: 'SetHook',
|
TransactionType: 'SetHook',
|
||||||
Sequence: account.sequence,
|
Sequence: account.sequence,
|
||||||
Fee: data.Fee,
|
Fee: data.Fee,
|
||||||
Hooks: [
|
NetworkID: process.env.NEXT_PUBLIC_NETWORK_ID || state.client.getState().server.networkId,
|
||||||
{
|
Hooks: [
|
||||||
Hook: {
|
{
|
||||||
CreateCode: arrayBufferToHex(activeFile?.compiledContent).toUpperCase(),
|
Hook: {
|
||||||
HookOn: calculateHookOn(hookOnValues),
|
CreateCode: arrayBufferToHex(activeFile?.compiledContent).toUpperCase(),
|
||||||
HookNamespace,
|
HookOn: calculateHookOn(hookOnValues),
|
||||||
HookApiVersion: 0,
|
HookNamespace,
|
||||||
Flags: 1,
|
HookApiVersion: 0,
|
||||||
// ...(filteredHookGrants.length > 0 && { HookGrants: filteredHookGrants }),
|
Flags: 1,
|
||||||
...(filteredHookParameters.length > 0 && {
|
// ...(filteredHookGrants.length > 0 && { HookGrants: filteredHookGrants }),
|
||||||
HookParameters: filteredHookParameters
|
...(filteredHookParameters.length > 0 && {
|
||||||
})
|
HookParameters: filteredHookParameters
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
]
|
}
|
||||||
}
|
]
|
||||||
return tx
|
|
||||||
}
|
}
|
||||||
|
return tx
|
||||||
}
|
}
|
||||||
|
|
||||||
/* deployHook function turns the wasm binary into
|
/* deployHook function turns the wasm binary into
|
||||||
@@ -127,9 +125,6 @@ export const deployHook = async (account: IAccount & { name?: string }, data: Se
|
|||||||
if (!tx) {
|
if (!tx) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!state.client) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
const keypair = derive.familySeed(account.secret)
|
const keypair = derive.familySeed(account.secret)
|
||||||
|
|
||||||
const { signedTransaction } = sign(tx, keypair)
|
const { signedTransaction } = sign(tx, keypair)
|
||||||
@@ -140,7 +135,7 @@ export const deployHook = async (account: IAccount & { name?: string }, data: Se
|
|||||||
let submitRes
|
let submitRes
|
||||||
|
|
||||||
try {
|
try {
|
||||||
submitRes = await state.client?.send({
|
submitRes = await xrplSend({
|
||||||
command: 'submit',
|
command: 'submit',
|
||||||
tx_blob: signedTransaction
|
tx_blob: signedTransaction
|
||||||
})
|
})
|
||||||
@@ -199,9 +194,6 @@ export const deployHook = async (account: IAccount & { name?: string }, data: Se
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const deleteHook = async (account: IAccount & { name?: string }) => {
|
export const deleteHook = async (account: IAccount & { name?: string }) => {
|
||||||
if (!state.client) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
const currentAccount = state.accounts.find(acc => acc.address === account.address)
|
const currentAccount = state.accounts.find(acc => acc.address === account.address)
|
||||||
if (currentAccount?.isLoading || !currentAccount?.hooks.length) {
|
if (currentAccount?.isLoading || !currentAccount?.hooks.length) {
|
||||||
return
|
return
|
||||||
@@ -239,7 +231,7 @@ export const deleteHook = async (account: IAccount & { name?: string }) => {
|
|||||||
let submitRes
|
let submitRes
|
||||||
const toastId = toast.loading('Deleting hook...')
|
const toastId = toast.loading('Deleting hook...')
|
||||||
try {
|
try {
|
||||||
submitRes = await state.client.send({
|
submitRes = await xrplSend({
|
||||||
command: 'submit',
|
command: 'submit',
|
||||||
tx_blob: signedTransaction
|
tx_blob: signedTransaction
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,66 +0,0 @@
|
|||||||
import { derive, sign } from 'xrpl-accountlib'
|
|
||||||
|
|
||||||
import state from '..'
|
|
||||||
import type { IAccount } from '..'
|
|
||||||
|
|
||||||
interface TransactionOptions {
|
|
||||||
TransactionType: string
|
|
||||||
Account?: string
|
|
||||||
Fee?: string
|
|
||||||
Destination?: string
|
|
||||||
[index: string]: any
|
|
||||||
}
|
|
||||||
interface OtherOptions {
|
|
||||||
logPrefix?: string
|
|
||||||
}
|
|
||||||
|
|
||||||
export const sendTransaction = async (
|
|
||||||
account: IAccount,
|
|
||||||
txOptions: TransactionOptions,
|
|
||||||
options?: OtherOptions
|
|
||||||
) => {
|
|
||||||
if (!state.client) throw Error('XRPL client not initalized')
|
|
||||||
|
|
||||||
const { Fee = '1000', ...opts } = txOptions
|
|
||||||
const tx: TransactionOptions = {
|
|
||||||
Account: account.address,
|
|
||||||
Sequence: account.sequence,
|
|
||||||
Fee, // TODO auto-fillable default
|
|
||||||
...opts
|
|
||||||
}
|
|
||||||
const { logPrefix = '' } = options || {}
|
|
||||||
try {
|
|
||||||
const signedAccount = derive.familySeed(account.secret)
|
|
||||||
const { signedTransaction } = sign(tx, signedAccount)
|
|
||||||
const response = await state.client.send({
|
|
||||||
command: 'submit',
|
|
||||||
tx_blob: signedTransaction
|
|
||||||
})
|
|
||||||
if (response.engine_result === 'tesSUCCESS') {
|
|
||||||
state.transactionLogs.push({
|
|
||||||
type: 'success',
|
|
||||||
message: `${logPrefix}[${response.engine_result}] ${response.engine_result_message}`
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
state.transactionLogs.push({
|
|
||||||
type: 'error',
|
|
||||||
message: `${logPrefix}[${response.error || response.engine_result}] ${
|
|
||||||
response.error_exception || response.engine_result_message
|
|
||||||
}`
|
|
||||||
})
|
|
||||||
}
|
|
||||||
const currAcc = state.accounts.find(acc => acc.address === account.address)
|
|
||||||
if (currAcc && response.account_sequence_next) {
|
|
||||||
currAcc.sequence = response.account_sequence_next
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
console.error(err)
|
|
||||||
state.transactionLogs.push({
|
|
||||||
type: 'error',
|
|
||||||
message:
|
|
||||||
err instanceof Error
|
|
||||||
? `${logPrefix}Error: ${err.message}`
|
|
||||||
: `${logPrefix}Something went wrong, try again later`
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -4,6 +4,7 @@ import state from '..'
|
|||||||
import type { IAccount } from '..'
|
import type { IAccount } from '..'
|
||||||
import ResultLink from '../../components/ResultLink'
|
import ResultLink from '../../components/ResultLink'
|
||||||
import { ref } from 'valtio'
|
import { ref } from 'valtio'
|
||||||
|
import { xrplSend } from './xrpl-client'
|
||||||
|
|
||||||
interface TransactionOptions {
|
interface TransactionOptions {
|
||||||
TransactionType: string
|
TransactionType: string
|
||||||
@@ -21,20 +22,19 @@ export const sendTransaction = async (
|
|||||||
txOptions: TransactionOptions,
|
txOptions: TransactionOptions,
|
||||||
options?: OtherOptions
|
options?: OtherOptions
|
||||||
) => {
|
) => {
|
||||||
if (!state.client) throw Error('XRPL client not initalized')
|
|
||||||
|
|
||||||
const { Fee = '1000', ...opts } = txOptions
|
const { Fee = '1000', ...opts } = txOptions
|
||||||
const tx: TransactionOptions = {
|
const tx: TransactionOptions = {
|
||||||
Account: account.address,
|
Account: account.address,
|
||||||
Sequence: account.sequence,
|
Sequence: account.sequence,
|
||||||
Fee, // TODO auto-fillable default
|
Fee,
|
||||||
|
NetworkID: process.env.NEXT_PUBLIC_NETWORK_ID || state.client.getState().server.networkId,
|
||||||
...opts
|
...opts
|
||||||
}
|
}
|
||||||
const { logPrefix = '' } = options || {}
|
const { logPrefix = '' } = options || {}
|
||||||
try {
|
try {
|
||||||
const signedAccount = derive.familySeed(account.secret)
|
const signedAccount = derive.familySeed(account.secret)
|
||||||
const { signedTransaction } = sign(tx, signedAccount)
|
const { signedTransaction } = sign(tx, signedAccount)
|
||||||
const response = await state.client.send({
|
const response = await xrplSend({
|
||||||
command: 'submit',
|
command: 'submit',
|
||||||
tx_blob: signedTransaction
|
tx_blob: signedTransaction
|
||||||
})
|
})
|
||||||
|
|||||||
7
state/actions/xrpl-client.ts
Normal file
7
state/actions/xrpl-client.ts
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import { XrplClient } from 'xrpl-client';
|
||||||
|
import state from '..';
|
||||||
|
|
||||||
|
export const xrplSend = async(...params: Parameters<XrplClient['send']>) => {
|
||||||
|
const client = await state.client.ready()
|
||||||
|
return client.send(...params);
|
||||||
|
}
|
||||||
@@ -78,7 +78,7 @@ export interface IState {
|
|||||||
splits: {
|
splits: {
|
||||||
[id: string]: SplitSize
|
[id: string]: SplitSize
|
||||||
}
|
}
|
||||||
client: XrplClient | null
|
client: XrplClient
|
||||||
clientStatus: 'offline' | 'online'
|
clientStatus: 'offline' | 'online'
|
||||||
mainModalOpen: boolean
|
mainModalOpen: boolean
|
||||||
mainModalShowed: boolean
|
mainModalShowed: boolean
|
||||||
@@ -113,7 +113,7 @@ let initialState: IState = {
|
|||||||
tabSize: 2
|
tabSize: 2
|
||||||
},
|
},
|
||||||
splits: {},
|
splits: {},
|
||||||
client: null,
|
client: undefined!, // set below only.
|
||||||
clientStatus: 'offline' as 'offline',
|
clientStatus: 'offline' as 'offline',
|
||||||
mainModalOpen: false,
|
mainModalOpen: false,
|
||||||
mainModalShowed: false,
|
mainModalShowed: false,
|
||||||
@@ -153,9 +153,9 @@ const state = proxy<IState>({
|
|||||||
})
|
})
|
||||||
// Initialize socket connection
|
// Initialize socket connection
|
||||||
const client = new XrplClient(`wss://${process.env.NEXT_PUBLIC_TESTNET_URL}`)
|
const client = new XrplClient(`wss://${process.env.NEXT_PUBLIC_TESTNET_URL}`)
|
||||||
|
state.client = ref(client);
|
||||||
|
|
||||||
client.on('online', () => {
|
client.on('online', () => {
|
||||||
state.client = ref(client)
|
|
||||||
state.clientStatus = 'online'
|
state.clientStatus = 'online'
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import toast from 'react-hot-toast'
|
import toast from 'react-hot-toast'
|
||||||
import { derive, sign } from 'xrpl-accountlib'
|
import { derive, sign } from 'xrpl-accountlib'
|
||||||
import state, { IAccount } from '../state'
|
import { IAccount } from '../state'
|
||||||
|
import { xrplSend } from '../state/actions/xrpl-client'
|
||||||
|
|
||||||
const estimateFee = async (
|
const estimateFee = async (
|
||||||
tx: Record<string, unknown>,
|
tx: Record<string, unknown>,
|
||||||
@@ -22,7 +23,7 @@ const estimateFee = async (
|
|||||||
const keypair = derive.familySeed(account.secret)
|
const keypair = derive.familySeed(account.secret)
|
||||||
const { signedTransaction } = sign(copyTx, keypair)
|
const { signedTransaction } = sign(copyTx, keypair)
|
||||||
|
|
||||||
const res = await state.client?.send({ command: 'fee', tx_blob: signedTransaction })
|
const res = await xrplSend({ command: 'fee', tx_blob: signedTransaction })
|
||||||
if (res && res.drops) {
|
if (res && res.drops) {
|
||||||
return res.drops
|
return res.drops
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,17 +29,15 @@ export const tts = {
|
|||||||
export type TTS = typeof tts
|
export type TTS = typeof tts
|
||||||
|
|
||||||
const calculateHookOn = (arr: (keyof TTS)[]) => {
|
const calculateHookOn = (arr: (keyof TTS)[]) => {
|
||||||
let start = '0x000000003e3ff5bf'
|
let s = '0x3e3ff5bf'
|
||||||
arr.forEach(n => {
|
arr.forEach(n => {
|
||||||
let v = BigInt(start)
|
let v = BigInt(s)
|
||||||
v ^= BigInt(1) << BigInt(tts[n as keyof TTS])
|
v ^= BigInt(1) << BigInt(tts[n as keyof TTS])
|
||||||
let s = v.toString(16)
|
s = "0x" + v.toString(16)
|
||||||
let l = s.length
|
|
||||||
if (l < 16) s = '0'.repeat(16 - l) + s
|
|
||||||
s = '0x' + s
|
|
||||||
start = s
|
|
||||||
})
|
})
|
||||||
return start.substring(2)
|
s = s.replace('0x', '')
|
||||||
|
s = s.padStart(64, '0')
|
||||||
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
export default calculateHookOn
|
export default calculateHookOn
|
||||||
|
|||||||
143
yarn.lock
143
yarn.lock
@@ -1343,13 +1343,6 @@ balanced-match@^1.0.0:
|
|||||||
resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
|
resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
|
||||||
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
|
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
|
||||||
|
|
||||||
base-x@3.0.4:
|
|
||||||
version "3.0.4"
|
|
||||||
resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz"
|
|
||||||
integrity sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==
|
|
||||||
dependencies:
|
|
||||||
safe-buffer "^5.0.1"
|
|
||||||
|
|
||||||
base-x@3.0.9, base-x@^3.0.2, base-x@^3.0.3:
|
base-x@3.0.9, base-x@^3.0.2, base-x@^3.0.3:
|
||||||
version "3.0.9"
|
version "3.0.9"
|
||||||
resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz"
|
resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz"
|
||||||
@@ -1367,7 +1360,7 @@ before-after-hook@^2.2.0:
|
|||||||
resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz"
|
resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz"
|
||||||
integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==
|
integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==
|
||||||
|
|
||||||
big-integer@^1.6.48, big-integer@latest:
|
big-integer@^1.6.48, big-integer@^1.6.51:
|
||||||
version "1.6.51"
|
version "1.6.51"
|
||||||
resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz"
|
resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz"
|
||||||
integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==
|
integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==
|
||||||
@@ -1377,11 +1370,6 @@ big.js@^5.2.2:
|
|||||||
resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz"
|
resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz"
|
||||||
integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
|
integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
|
||||||
|
|
||||||
bignumber.js@^4.1.0:
|
|
||||||
version "4.1.0"
|
|
||||||
resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.1.0.tgz"
|
|
||||||
integrity sha512-eJzYkFYy9L4JzXsbymsFn3p54D+llV27oTQ+ziJG7WFRheJcNZilgVXMG0LoZtlQSKBsJdWtLFqOD0u+U0jZKA==
|
|
||||||
|
|
||||||
bignumber.js@^5.0.0:
|
bignumber.js@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-5.0.0.tgz"
|
resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-5.0.0.tgz"
|
||||||
@@ -1399,9 +1387,9 @@ bindings@^1.3.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
file-uri-to-path "1.0.0"
|
file-uri-to-path "1.0.0"
|
||||||
|
|
||||||
bip32@^2.0.5:
|
bip32@^2.0.6:
|
||||||
version "2.0.6"
|
version "2.0.6"
|
||||||
resolved "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz"
|
resolved "https://registry.yarnpkg.com/bip32/-/bip32-2.0.6.tgz#6a81d9f98c4cd57d05150c60d8f9e75121635134"
|
||||||
integrity sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==
|
integrity sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "10.12.18"
|
"@types/node" "10.12.18"
|
||||||
@@ -1412,9 +1400,9 @@ bip32@^2.0.5:
|
|||||||
typeforce "^1.11.5"
|
typeforce "^1.11.5"
|
||||||
wif "^2.0.6"
|
wif "^2.0.6"
|
||||||
|
|
||||||
bip39@^3.0.2:
|
bip39@^3.0.4:
|
||||||
version "3.0.4"
|
version "3.0.4"
|
||||||
resolved "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz"
|
resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.4.tgz#5b11fed966840b5e1b8539f0f54ab6392969b2a0"
|
||||||
integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==
|
integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "11.11.6"
|
"@types/node" "11.11.6"
|
||||||
@@ -1432,6 +1420,11 @@ bn.js@^5.1.1:
|
|||||||
resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz"
|
resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz"
|
||||||
integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==
|
integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==
|
||||||
|
|
||||||
|
bn.js@^5.2.1:
|
||||||
|
version "5.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"
|
||||||
|
integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
|
||||||
|
|
||||||
bottleneck@^2.15.3:
|
bottleneck@^2.15.3:
|
||||||
version "2.19.5"
|
version "2.19.5"
|
||||||
resolved "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz"
|
resolved "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz"
|
||||||
@@ -4045,15 +4038,7 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
|
|||||||
hash-base "^3.0.0"
|
hash-base "^3.0.0"
|
||||||
inherits "^2.0.1"
|
inherits "^2.0.1"
|
||||||
|
|
||||||
ripple-address-codec@^3.0.4:
|
ripple-address-codec@^4.1.1, ripple-address-codec@^4.2.3:
|
||||||
version "3.0.4"
|
|
||||||
resolved "https://registry.npmjs.org/ripple-address-codec/-/ripple-address-codec-3.0.4.tgz"
|
|
||||||
integrity sha512-GFk1BgavW+9oy5Z1Cp6YAGMfB51QdbeuhOo0Zir+s+S40F5vHtVZYu6zZE1eOAX92A5kygPuBRX4APH2v8Yhmg==
|
|
||||||
dependencies:
|
|
||||||
base-x "3.0.4"
|
|
||||||
create-hash "^1.1.2"
|
|
||||||
|
|
||||||
ripple-address-codec@^4.1.0, ripple-address-codec@^4.1.1, ripple-address-codec@^4.2.3:
|
|
||||||
version "4.2.3"
|
version "4.2.3"
|
||||||
resolved "https://registry.npmjs.org/ripple-address-codec/-/ripple-address-codec-4.2.3.tgz"
|
resolved "https://registry.npmjs.org/ripple-address-codec/-/ripple-address-codec-4.2.3.tgz"
|
||||||
integrity sha512-9Nd0hQmKoJEhSTzYR9kYjKmSWlH6HaVosNVAM7mIIVlzcNlQCPfKXj7CfvXcRiHl3C6XUZj7RFLqzVaPjq2ufA==
|
integrity sha512-9Nd0hQmKoJEhSTzYR9kYjKmSWlH6HaVosNVAM7mIIVlzcNlQCPfKXj7CfvXcRiHl3C6XUZj7RFLqzVaPjq2ufA==
|
||||||
@@ -4069,7 +4054,7 @@ ripple-address-codec@^4.2.4:
|
|||||||
base-x "3.0.9"
|
base-x "3.0.9"
|
||||||
create-hash "^1.1.2"
|
create-hash "^1.1.2"
|
||||||
|
|
||||||
ripple-binary-codec@=1.4.2, ripple-binary-codec@^0.2.4, ripple-binary-codec@^1.1.3, ripple-binary-codec@^1.4.2:
|
ripple-binary-codec@=1.4.2, ripple-binary-codec@^1.1.3, ripple-binary-codec@^1.4.2, ripple-binary-codec@^1.5.0-beta.2:
|
||||||
version "1.4.2"
|
version "1.4.2"
|
||||||
resolved "https://registry.yarnpkg.com/ripple-binary-codec/-/ripple-binary-codec-1.4.2.tgz#cdc35353e4bc7c3a704719247c82b4c4d0b57dd3"
|
resolved "https://registry.yarnpkg.com/ripple-binary-codec/-/ripple-binary-codec-1.4.2.tgz#cdc35353e4bc7c3a704719247c82b4c4d0b57dd3"
|
||||||
integrity sha512-EDKIyZMa/6Ay/oNgCwjD9b9CJv0zmBreeHVQeG4BYwy+9GPnIQjNeT5e/aB6OjAnhcmpgbPeBmzwmNVwzxlt0w==
|
integrity sha512-EDKIyZMa/6Ay/oNgCwjD9b9CJv0zmBreeHVQeG4BYwy+9GPnIQjNeT5e/aB6OjAnhcmpgbPeBmzwmNVwzxlt0w==
|
||||||
@@ -4081,32 +4066,7 @@ ripple-binary-codec@=1.4.2, ripple-binary-codec@^0.2.4, ripple-binary-codec@^1.1
|
|||||||
decimal.js "^10.2.0"
|
decimal.js "^10.2.0"
|
||||||
ripple-address-codec "^4.2.4"
|
ripple-address-codec "^4.2.4"
|
||||||
|
|
||||||
ripple-bs58@^4.0.0:
|
ripple-keypairs@^1.0.3:
|
||||||
version "4.0.1"
|
|
||||||
resolved "https://registry.npmjs.org/ripple-bs58/-/ripple-bs58-4.0.1.tgz"
|
|
||||||
integrity sha512-qV88Ls19OIcTt5e70Helj9aLfuFA1f9HLv1EfUGqMXOLgJhpotzfdcn+rXo9oYHd31BvPT/q64BuRKP5IEM+AA==
|
|
||||||
dependencies:
|
|
||||||
base-x "^3.0.2"
|
|
||||||
|
|
||||||
ripple-bs58check@latest:
|
|
||||||
version "2.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/ripple-bs58check/-/ripple-bs58check-2.0.2.tgz#f270dbcd81630b26a21901c3ce27b7d62a4e9c91"
|
|
||||||
integrity sha512-clZI2ytGYs3st8yz66EFfyXs5ZpHQjL/Y2txXUPkzj5bjwgODXFO7Ms0tuUj6aFek/NKk8dsqxUmQsPjmsBrwg==
|
|
||||||
dependencies:
|
|
||||||
create-hash "^1.1.0"
|
|
||||||
ripple-bs58 "^4.0.0"
|
|
||||||
|
|
||||||
ripple-hashes@^0.3.4, ripple-hashes@latest:
|
|
||||||
version "0.3.4"
|
|
||||||
resolved "https://registry.npmjs.org/ripple-hashes/-/ripple-hashes-0.3.4.tgz"
|
|
||||||
integrity sha512-u2kgg9Yu9D44HWnC9R2lNg+amVLllJkMQmXZEEM2DAMFXigr4+ph1O8LLxLv+k0fbdjAjos4aUyWwcw6cxzYMw==
|
|
||||||
dependencies:
|
|
||||||
bignumber.js "^4.1.0"
|
|
||||||
create-hash "^1.1.2"
|
|
||||||
ripple-address-codec "^3.0.4"
|
|
||||||
ripple-binary-codec "^0.2.4"
|
|
||||||
|
|
||||||
ripple-keypairs@^1.0.3, ripple-keypairs@latest:
|
|
||||||
version "1.1.3"
|
version "1.1.3"
|
||||||
resolved "https://registry.npmjs.org/ripple-keypairs/-/ripple-keypairs-1.1.3.tgz"
|
resolved "https://registry.npmjs.org/ripple-keypairs/-/ripple-keypairs-1.1.3.tgz"
|
||||||
integrity sha512-y74Y3c0g652BgpDhWsf0x98GnUyY2D9eO2ay2exienUfbIe00TeIiFhYXQhCGVnliGsxeV9WTpU+YuEWuIxuhw==
|
integrity sha512-y74Y3c0g652BgpDhWsf0x98GnUyY2D9eO2ay2exienUfbIe00TeIiFhYXQhCGVnliGsxeV9WTpU+YuEWuIxuhw==
|
||||||
@@ -4117,6 +4077,17 @@ ripple-keypairs@^1.0.3, ripple-keypairs@latest:
|
|||||||
hash.js "^1.0.3"
|
hash.js "^1.0.3"
|
||||||
ripple-address-codec "^4.2.3"
|
ripple-address-codec "^4.2.3"
|
||||||
|
|
||||||
|
ripple-keypairs@^1.1.4:
|
||||||
|
version "1.1.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/ripple-keypairs/-/ripple-keypairs-1.1.4.tgz#4486fca703b8a2fc4f30cfd568478f3d12c1a911"
|
||||||
|
integrity sha512-PMMjTOxZmCSBOvHPj6bA+V/HGx7oFgDtGGI8VcZYuaFO2H87UX0X0jhfHy+LA2Xy31WYlD7GaDIDDt2QO+AMtw==
|
||||||
|
dependencies:
|
||||||
|
bn.js "^5.1.1"
|
||||||
|
brorand "^1.0.5"
|
||||||
|
elliptic "^6.5.4"
|
||||||
|
hash.js "^1.0.3"
|
||||||
|
ripple-address-codec "^4.2.4"
|
||||||
|
|
||||||
ripple-lib-transactionparser@0.8.2:
|
ripple-lib-transactionparser@0.8.2:
|
||||||
version "0.8.2"
|
version "0.8.2"
|
||||||
resolved "https://registry.npmjs.org/ripple-lib-transactionparser/-/ripple-lib-transactionparser-0.8.2.tgz"
|
resolved "https://registry.npmjs.org/ripple-lib-transactionparser/-/ripple-lib-transactionparser-0.8.2.tgz"
|
||||||
@@ -4125,10 +4096,10 @@ ripple-lib-transactionparser@0.8.2:
|
|||||||
bignumber.js "^9.0.0"
|
bignumber.js "^9.0.0"
|
||||||
lodash "^4.17.15"
|
lodash "^4.17.15"
|
||||||
|
|
||||||
ripple-lib@^1.6.4:
|
ripple-lib@^1.10.1:
|
||||||
version "1.10.0"
|
version "1.10.1"
|
||||||
resolved "https://registry.npmjs.org/ripple-lib/-/ripple-lib-1.10.0.tgz"
|
resolved "https://registry.yarnpkg.com/ripple-lib/-/ripple-lib-1.10.1.tgz#9c353702792b25465cdb269265d6f5bb27b1471b"
|
||||||
integrity sha512-Cg2u73UybfM1PnzcuLt5flvLKZn35ovdIp+1eLrReVB4swuRuUF/SskJG9hf5wMosbvh+E+jZu8A6IbYJoyFIA==
|
integrity sha512-OQk+Syl2JfxKxV2KuF/kBMtnh012I5tNnziP3G4WDGCGSIAgeqkOgkR59IQ0YDNrs1YW8GbApxrdMSRi/QClcA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/lodash" "^4.14.136"
|
"@types/lodash" "^4.14.136"
|
||||||
"@types/ws" "^7.2.0"
|
"@types/ws" "^7.2.0"
|
||||||
@@ -4142,10 +4113,10 @@ ripple-lib@^1.6.4:
|
|||||||
ripple-lib-transactionparser "0.8.2"
|
ripple-lib-transactionparser "0.8.2"
|
||||||
ws "^7.2.0"
|
ws "^7.2.0"
|
||||||
|
|
||||||
ripple-secret-codec@^1.0.2:
|
ripple-secret-codec@^1.0.3:
|
||||||
version "1.0.2"
|
version "1.0.3"
|
||||||
resolved "https://registry.npmjs.org/ripple-secret-codec/-/ripple-secret-codec-1.0.2.tgz"
|
resolved "https://registry.yarnpkg.com/ripple-secret-codec/-/ripple-secret-codec-1.0.3.tgz#dbc27bf18f09fb5cfe2aa8f814ee378e7731d001"
|
||||||
integrity sha512-BgI49rBThZm/Y01EE8vTdDh0iTFffvHzyc3M4K5kS33+od7lww/9+n/DaSCGkIbz0mZxsghlkQx0Z7GAt7Chlg==
|
integrity sha512-vYcHlJx1p+5uH4ORda2dlvbgCy68m/Ib2kn+Np6PMmRoBenf9pKHa4vzaWmp2SjJKPi1921lQjdeAWoXdm7E0g==
|
||||||
dependencies:
|
dependencies:
|
||||||
base-x "^3.0.3"
|
base-x "^3.0.3"
|
||||||
bignumber.js "^5.0.0"
|
bignumber.js "^5.0.0"
|
||||||
@@ -4854,30 +4825,29 @@ ws@^7.2.0:
|
|||||||
resolved "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz"
|
resolved "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz"
|
||||||
integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==
|
integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==
|
||||||
|
|
||||||
xrpl-accountlib@^1.5.2:
|
xrpl-accountlib@^1.6.1:
|
||||||
version "1.5.2"
|
version "1.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/xrpl-accountlib/-/xrpl-accountlib-1.5.2.tgz#8f16abe449fd60ba9ed75597f6ce3f0c45dfff43"
|
resolved "https://registry.yarnpkg.com/xrpl-accountlib/-/xrpl-accountlib-1.6.1.tgz#97a027e1c774246c536593e7c3d689ac58bfc0e8"
|
||||||
integrity sha512-lieY2/5G9DySqdtgQ0AD/aMMG5Sy/MLAmbIsmsCaF06scM5DpR8s4SsEzgHni7dOG68Wjnb2Uz6tf5aV+l4/Kg==
|
integrity sha512-H7hvrbIFfO1N6XkTZVFtO8LntlLfNpNByH2Cqov1ZNocJLSvqAClVpVdHIwU9K9cW1koiP/7o2ww++PksfmbIQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
assert "^2.0.0"
|
assert "^2.0.0"
|
||||||
bip32 "^2.0.5"
|
bip32 "^2.0.6"
|
||||||
bip39 "^3.0.2"
|
bip39 "^3.0.4"
|
||||||
bn.js "^5.1.1"
|
bn.js "^5.2.1"
|
||||||
elliptic "6.5.4"
|
elliptic "6.5.4"
|
||||||
hash.js "^1.1.7"
|
hash.js "^1.1.7"
|
||||||
ripple-address-codec "^4.1.0"
|
ripple-address-codec "^4.2.4"
|
||||||
ripple-binary-codec "^1.4.2"
|
ripple-binary-codec "^1.4.2"
|
||||||
ripple-hashes "^0.3.4"
|
ripple-keypairs "^1.1.4"
|
||||||
ripple-keypairs "^1.0.3"
|
ripple-lib "^1.10.1"
|
||||||
ripple-lib "^1.6.4"
|
ripple-secret-codec "^1.0.3"
|
||||||
ripple-secret-codec "^1.0.2"
|
|
||||||
xrpl-secret-numbers "^0.3.3"
|
xrpl-secret-numbers "^0.3.3"
|
||||||
xrpl-sign-keypairs "^2.1.1"
|
xrpl-sign-keypairs "^2.1.2"
|
||||||
|
|
||||||
xrpl-client@^1.9.4:
|
xrpl-client@^2.0.2:
|
||||||
version "1.9.4"
|
version "2.0.2"
|
||||||
resolved "https://registry.npmjs.org/xrpl-client/-/xrpl-client-1.9.4.tgz"
|
resolved "https://registry.yarnpkg.com/xrpl-client/-/xrpl-client-2.0.2.tgz#f24c7fb38fe0de3b1d45cd8c3a5e9f5ef1a0c439"
|
||||||
integrity sha512-0+O5TbJB4GBAuZVvIrZje8VMSTTQKU8pyvuOggSmX9fhqed5c7+GGOSmKD7RWNmyQ1dZT2I70tDpzocZybtYyg==
|
integrity sha512-ujquoaRn4U0FTm3jEAISr9VS+FMwPVVjWTLqBrQL1MiYypShUSje17R721dHa5ZebxWRwz6SG3BBZsKgcx6egw==
|
||||||
dependencies:
|
dependencies:
|
||||||
debug "^4.1.1"
|
debug "^4.1.1"
|
||||||
websocket "^1.0.34"
|
websocket "^1.0.34"
|
||||||
@@ -4891,16 +4861,15 @@ xrpl-secret-numbers@^0.3.3:
|
|||||||
brorand "^1.1.0"
|
brorand "^1.1.0"
|
||||||
ripple-keypairs "^1.0.3"
|
ripple-keypairs "^1.0.3"
|
||||||
|
|
||||||
xrpl-sign-keypairs@^2.1.1:
|
xrpl-sign-keypairs@^2.1.2:
|
||||||
version "2.1.1"
|
version "2.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/xrpl-sign-keypairs/-/xrpl-sign-keypairs-2.1.1.tgz#2f7f2855799c5d4ba091007963825eef1db21a4e"
|
resolved "https://registry.yarnpkg.com/xrpl-sign-keypairs/-/xrpl-sign-keypairs-2.1.2.tgz#dbe1543c4ded5fa2ffab763c31c26bff895cbf3b"
|
||||||
integrity sha512-rKQmUCx+x7gjjJ5zv/Z7bOYR+8I36JwUCFlpuD9UzYD4w2msGQDG0rmxVENyZSfThDBVQ1kEArVn6SMDMe9LUQ==
|
integrity sha512-4QieWblhpL3upnUw7lJ0lgyDSY8Q/KT35HP7xhHk03o5fcqMo0FU5b8Aa6YUXhDZIlQoy8ssjCYB9rRQO4DSWg==
|
||||||
dependencies:
|
dependencies:
|
||||||
big-integer latest
|
big-integer "^1.6.51"
|
||||||
ripple-binary-codec "^1.4.2"
|
ripple-address-codec "^4.2.4"
|
||||||
ripple-bs58check latest
|
ripple-binary-codec "^1.5.0-beta.2"
|
||||||
ripple-hashes latest
|
ripple-keypairs "^1.1.4"
|
||||||
ripple-keypairs latest
|
|
||||||
|
|
||||||
yaeti@^0.0.6:
|
yaeti@^0.0.6:
|
||||||
version "0.0.6"
|
version "0.0.6"
|
||||||
|
|||||||
Reference in New Issue
Block a user