Skip to content
Snippets Groups Projects
Commit 95f2a6d3 authored by arnaud kaderi's avatar arnaud kaderi
Browse files

initial commit

parents
Branches
No related tags found
No related merge requests found
**/node_modules
.DS_Store
.ligo/
_esy/
/compiled
**/compiled
/deploy/metadata.json
**/.env
\ No newline at end of file
{}
\ No newline at end of file
LICENSE 0 → 100644
MIT License
Copyright (c) 2022 ligolang
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Makefile 0 → 100644
ligo_compiler?=docker run --rm -v "$(PWD)":"$(PWD)" -w "$(PWD)" ligolang/ligo:stable
# ^ Override this variable when you run make command by make <COMMAND> ligo_compiler=<LIGO_EXECUTABLE>
# ^ Otherwise use default one (you'll need docker)
protocol_opt?=
json=--michelson-format json
all: clean compile test
help:
@echo 'Usage:'
@echo ' all - Remove generated Michelson files, recompile smart contracts, lauch all tests and originate contract'
@echo ' compile '
@echo ' clean - Remove generated Michelson and JavaScript files'
@echo ' test - Run Ligo tests'
@echo ' deploy - Deploy multisig smart contract (typescript using Taquito)'
compile: compile_js
compile_js: src/contract.jsligo
@if [ ! -d ./compiled ]; then mkdir ./compiled ; fi
@echo "Compiling to Michelson"
@$(ligo_compiler) compile contract src/contract.jsligo $(protocol_opt) > compiled/Multisig.tz
@echo "Compiling to Michelson in JSON format"
@$(ligo_compiler) compile contract src/contract.jsligo $(json) $(protocol_opt) > compiled/Multisig.json
clean:
@echo "Removing Michelson files"
@rm -f compiled/*.tz
@echo "Removing Michelson 'json format' files"
@rm -f compiled/*.json
.PHONY: test
test: test/multisig.test.jsligo
@echo "Running tests"
@$(ligo_compiler) run test test/multisig.test.jsligo $(protocol_opt)
@echo "Running mutation tests"
@$(ligo_compiler) run test test/multisig_mutation.test.jsligo $(protocol_opt)
deploy: node_modules deploy.js
deploy.js:
@if [ ! -f ./deploy/metadata.json ]; then cp deploy/metadata.json.dist deploy/metadata.json ; fi
@echo "Running deploy script\n"
@cd deploy && npm start
node_modules:
@echo "Installing deploy script dependencies"
@cd deploy && npm install
@echo ""
let no_operation : operation list = []
[@no_mutation]
let only_signer = "Only one of the contract signer can create an proposal"
[@no_mutation]
let amount_must_be_zero_tez = "You must not send Tezos to the smart contract"
[@no_mutation]
let no_proposal_exist = "No proposal exists for this counter"
[@no_mutation]
let has_already_signed = "You have already signed this proposal"
[@no_mutation]
let unknown_contract_entrypoint =
"Cannot connect to the target transfer token entrypoint"
# Required: Your private key
PK=
# Required: see https://tezostaquito.io/docs/rpc_nodes/
RPC_URL=https://ghostnet.tezos.marigold.dev/
import { InMemorySigner } from "@taquito/signer";
import { MichelsonMap, TezosToolkit } from "@taquito/taquito";
import { buf2hex } from "@taquito/utils";
import chalk from "chalk";
import { Spinner } from "cli-spinner";
import dotenv from "dotenv";
import multisig from "../compiled/Multisig.json";
import metadata from "./metadata.json";
dotenv.config();
const rpcUrl = process.env.RPC_URL;
const pk = process.env.PK;
const missingEnvVarLog = (name: string) =>
console.log(
chalk.redBright`Missing ` +
chalk.red.bold.underline(name) +
chalk.redBright` env var. Please add it in ` +
chalk.red.bold.underline(`deploy/.env`)
);
const makeSpinnerOperation = async <T>(
operation: Promise<T>,
{
loadingMessage,
endMessage,
}: {
loadingMessage: string;
endMessage: string;
}
): Promise<T> => {
const spinner = new Spinner(loadingMessage);
spinner.start();
const result = await operation;
spinner.stop();
console.log("");
console.log(endMessage);
return result;
};
if (!pk && !rpcUrl) {
console.log(
chalk.redBright`Couldn't find env variables. Have you renamed ` +
chalk.red.bold.underline`deploy/.env.dist` +
chalk.redBright` to ` +
chalk.red.bold.underline(`deploy/.env`)
);
process.exit(-1);
}
if (!pk) {
missingEnvVarLog("PK");
process.exit(-1);
}
if (!rpcUrl) {
missingEnvVarLog("RPC_URL");
process.exit(-1);
}
const Tezos = new TezosToolkit(rpcUrl);
const signer = new InMemorySigner(pk);
Tezos.setProvider({ signer: signer });
const signers: Array<string> = [
"tz1KeYsjjSCLEELMuiq1oXzVZmuJrZ15W4mv",
"tz1MBWU1WkszFfkEER2pgn4ATKXE9ng7x1sR",
"tz1TDZG4vFoA2xutZMYauUnS4HVucnAGQSpZ",
"tz1fi3AzSELiXmvcrLKrLBUpYmq1vQGMxv9p",
"tz1go7VWXhhkzdPMSL1CD7JujcqasFJc2hrF",
];
async function deploy() {
const storage = {
metadata: MichelsonMap.fromLiteral({
"": buf2hex(Buffer.from("tezos-storage:contents")),
contents: buf2hex(Buffer.from(JSON.stringify(metadata))),
}),
signers: signers,
threshold: 3,
proposal_map: new MichelsonMap(),
proposal_counter: 0,
};
try {
const origination = await makeSpinnerOperation(
Tezos.contract.originate({
code: multisig,
storage: storage,
}),
{
loadingMessage: chalk.yellowBright`Deploying contract`,
endMessage: chalk.green`Contract deployed!`,
}
);
await makeSpinnerOperation(origination.contract(), {
loadingMessage:
chalk.yellowBright`Waiting for contract to be confirmed at: ` +
chalk.yellow.bold(origination.contractAddress),
endMessage: chalk.green`Contract confirmed!`,
});
console.log(
chalk.green`\nContract address: \n- ` +
chalk.green.underline`${origination.contractAddress}`
);
} catch (error: any) {
console.log("");
console.log(chalk.redBright`Error during deployment:`);
console.log(error);
process.exit(1);
}
}
deploy();
{
"name": "multisig Example",
"description": "An Example Multisig Contract",
"version": "1.0.0",
"license": {
"name": "MIT"
},
"authors": [
"smart-chain <tezos@smart-chain.fr>"
],
"homepage": "https://github.com/ligolang/multisig-jsligo",
"source": {
"tools": "jsligo",
"location": "https://github.com/ligolang/multisig-jsligo/contracts"
},
"interfaces": [
"TZIP-016"
]
}
{
"name": "multisig",
"version": "1.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "multisig",
"version": "1.0.0",
"license": "ISC",
"dependencies": {
"@taquito/signer": "^15.0.0",
"@taquito/taquito": "^15.0.0",
"chalk": "^4.1.2",
"cli-spinner": "^0.2.10",
"dotenv": "^10.0.0",
"ts-node": "^10.9.1"
},
"devDependencies": {
"@types/cli-spinner": "^0.2.1"
}
},
"node_modules/@cspotcode/source-map-support": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
"dependencies": {
"@jridgewell/trace-mapping": "0.3.9"
},
"engines": {
"node": ">=12"
}
},
"node_modules/@jridgewell/resolve-uri": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
"integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.14",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
"dependencies": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
"node_modules/@stablelib/binary": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz",
"integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==",
"dependencies": {
"@stablelib/int": "^1.0.1"
}
},
"node_modules/@stablelib/blake2b": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/blake2b/-/blake2b-1.0.1.tgz",
"integrity": "sha512-B3KyKoBAjkIFeH7romcF96i+pVFYk7K2SBQ1pZvaxV+epSBXJ+n0C66esUhyz6FF+5FbdQVm77C5fzGFcEZpKA==",
"dependencies": {
"@stablelib/binary": "^1.0.1",
"@stablelib/hash": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
}
},
"node_modules/@stablelib/bytes": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz",
"integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ=="
},
"node_modules/@stablelib/constant-time": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz",
"integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg=="
},
"node_modules/@stablelib/ed25519": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.3.tgz",
"integrity": "sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==",
"dependencies": {
"@stablelib/random": "^1.0.2",
"@stablelib/sha512": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
}
},
"node_modules/@stablelib/hash": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz",
"integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg=="
},
"node_modules/@stablelib/hmac": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz",
"integrity": "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==",
"dependencies": {
"@stablelib/constant-time": "^1.0.1",
"@stablelib/hash": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
}
},
"node_modules/@stablelib/int": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz",
"integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w=="
},
"node_modules/@stablelib/keyagreement": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz",
"integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==",
"dependencies": {
"@stablelib/bytes": "^1.0.1"
}
},
"node_modules/@stablelib/nacl": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@stablelib/nacl/-/nacl-1.0.4.tgz",
"integrity": "sha512-PJ2U/MrkXSKUM8C4qFs87WeCNxri7KQwR8Cdwm9q2sweGuAtTvOJGuW0F3N+zn+ySLPJA98SYWSSpogMJ1gCmw==",
"dependencies": {
"@stablelib/poly1305": "^1.0.1",
"@stablelib/random": "^1.0.2",
"@stablelib/wipe": "^1.0.1",
"@stablelib/x25519": "^1.0.3",
"@stablelib/xsalsa20": "^1.0.2"
}
},
"node_modules/@stablelib/pbkdf2": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/pbkdf2/-/pbkdf2-1.0.1.tgz",
"integrity": "sha512-d5jwK6jW1DkMyzqY8D1Io+fRXcsUVr95lk5LKX9ghaUdAITTc1ZL0bff+R0IrwSixbHluxhnivG7vDw59AZ/Nw==",
"dependencies": {
"@stablelib/binary": "^1.0.1",
"@stablelib/hash": "^1.0.1",
"@stablelib/hmac": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
}
},
"node_modules/@stablelib/poly1305": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz",
"integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==",
"dependencies": {
"@stablelib/constant-time": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
}
},
"node_modules/@stablelib/random": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.2.tgz",
"integrity": "sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==",
"dependencies": {
"@stablelib/binary": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
}
},
"node_modules/@stablelib/salsa20": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@stablelib/salsa20/-/salsa20-1.0.2.tgz",
"integrity": "sha512-nfjKzw0KTKrrKBasEP+j7UP4I8Xudom8lVZIBCp0kQNARXq72IlSic0oabg2FC1NU68L4RdHrNJDd8bFwrphYA==",
"dependencies": {
"@stablelib/binary": "^1.0.1",
"@stablelib/constant-time": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
}
},
"node_modules/@stablelib/sha512": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz",
"integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==",
"dependencies": {
"@stablelib/binary": "^1.0.1",
"@stablelib/hash": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
}
},
"node_modules/@stablelib/wipe": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz",
"integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg=="
},
"node_modules/@stablelib/x25519": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.3.tgz",
"integrity": "sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==",
"dependencies": {
"@stablelib/keyagreement": "^1.0.1",
"@stablelib/random": "^1.0.2",
"@stablelib/wipe": "^1.0.1"
}
},
"node_modules/@stablelib/xsalsa20": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@stablelib/xsalsa20/-/xsalsa20-1.0.2.tgz",
"integrity": "sha512-7XdBGbcNgBShmuhDXv1G1WPVCkjZdkb1oPMzSidO7Fve0MHntH6TjFkj5bfLI+aRE+61weO076vYpP/jmaAYog==",
"dependencies": {
"@stablelib/binary": "^1.0.1",
"@stablelib/salsa20": "^1.0.2",
"@stablelib/wipe": "^1.0.1"
}
},
"node_modules/@taquito/http-utils": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@taquito/http-utils/-/http-utils-15.0.0.tgz",
"integrity": "sha512-caOofYWZzbxti1s1t3ObkRL4Ph8DpAWWY/staI1IiZJ/g/XX8FDtS71tE+IwBLXwH0kYqP0bNhTGPP04ebEHpQ==",
"dependencies": {
"@vespaiach/axios-fetch-adapter": "^0.3.1",
"axios": "^0.26.0"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@taquito/local-forging": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@taquito/local-forging/-/local-forging-15.0.0.tgz",
"integrity": "sha512-8QLut19U03Tsm59RjrSZOlLZx5mglQjQFt5No1VzWfNsXv7mytmn8SlvqFxyt8hyTlm1RM1NdJJ1oO1h1A/BRQ==",
"dependencies": {
"@taquito/utils": "^15.0.0",
"bignumber.js": "^9.1.0"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@taquito/michel-codec": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@taquito/michel-codec/-/michel-codec-15.0.0.tgz",
"integrity": "sha512-pfnrXVSkGeeVNx7MYHTeu79iU4lGynym/7+8QbD/O28LWob8PUrwpt+jaAxsVDdNOYtKz+LO1E4FpC348tHO6Q==",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@taquito/michelson-encoder": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@taquito/michelson-encoder/-/michelson-encoder-15.0.0.tgz",
"integrity": "sha512-TxmWCgZBuA7SrNPSN+xfeeovDGU5H5sXyXcgL3KwYfeILaWiWr1MbI9n8xV7ewJZSC9svor6/osz7Y04+TIpgw==",
"dependencies": {
"@taquito/rpc": "^15.0.0",
"@taquito/utils": "^15.0.0",
"bignumber.js": "^9.1.0",
"fast-json-stable-stringify": "^2.1.0"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@taquito/rpc": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@taquito/rpc/-/rpc-15.0.0.tgz",
"integrity": "sha512-z5oPSD2QDhLqU9scA4Pof2+DUaK9P3oDWeCqr6/JAOlt1DwDwYsHj84d4UVmpjP/DrTj4Sp1IyY7I9KpNNLlGQ==",
"dependencies": {
"@taquito/http-utils": "^15.0.0",
"@taquito/utils": "^15.0.0",
"bignumber.js": "^9.1.0"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@taquito/signer": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@taquito/signer/-/signer-15.0.0.tgz",
"integrity": "sha512-23AmEuzvvz5sLHMkZlElyeZL3a8H25293v4v2G09bylUt79T7GyQPzIuGFwsYPgPlSteP3NarzTrnbit+/pyKg==",
"dependencies": {
"@stablelib/blake2b": "^1.0.1",
"@stablelib/ed25519": "^1.0.3",
"@stablelib/hmac": "^1.0.1",
"@stablelib/nacl": "^1.0.4",
"@stablelib/pbkdf2": "^1.0.1",
"@stablelib/sha512": "^1.0.1",
"@taquito/taquito": "^15.0.0",
"@taquito/utils": "^15.0.0",
"@types/bn.js": "^5.1.1",
"bip39": "^3.0.4",
"elliptic": "^6.5.4",
"pbkdf2": "^3.1.2",
"typedarray-to-buffer": "^4.0.0"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@taquito/taquito": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@taquito/taquito/-/taquito-15.0.0.tgz",
"integrity": "sha512-pYs/hBbjapR/wN+gLhQQYEbL3D7WZXsR/+cb5oCN67vhKwyXkDuBJIEpWIoFGNcwJn0eGFGkUjfngE1bUyMypA==",
"hasInstallScript": true,
"dependencies": {
"@taquito/http-utils": "^15.0.0",
"@taquito/local-forging": "^15.0.0",
"@taquito/michel-codec": "^15.0.0",
"@taquito/michelson-encoder": "^15.0.0",
"@taquito/rpc": "^15.0.0",
"@taquito/utils": "^15.0.0",
"bignumber.js": "^9.1.0",
"rxjs": "^6.6.3"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@taquito/utils": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@taquito/utils/-/utils-15.0.0.tgz",
"integrity": "sha512-15Eq3YarC3HuZY8fmAEmtZaFglMIHjRVeR7l4fd8NJK6EdDZydJ00o40JMof9mhSy6A5atm15IHLD5sfdfx5lg==",
"dependencies": {
"@stablelib/blake2b": "^1.0.1",
"@stablelib/ed25519": "^1.0.3",
"@types/bs58check": "^2.1.0",
"bignumber.js": "^9.1.0",
"blakejs": "^1.2.1",
"bs58check": "^2.1.2",
"buffer": "^6.0.3",
"elliptic": "^6.5.4",
"typedarray-to-buffer": "^4.0.0"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@tsconfig/node10": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
"integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA=="
},
"node_modules/@tsconfig/node12": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
"integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="
},
"node_modules/@tsconfig/node14": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
"integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="
},
"node_modules/@tsconfig/node16": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz",
"integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ=="
},
"node_modules/@types/bn.js": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz",
"integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/bs58check": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@types/bs58check/-/bs58check-2.1.0.tgz",
"integrity": "sha512-OxsysnJQh82vy9DRbOcw9m2j/WiyqZLn0YBhKxdQ+aCwoHj+tWzyCgpwAkr79IfDXZKxc6h7k89T9pwS78CqTQ==",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/cli-spinner": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/@types/cli-spinner/-/cli-spinner-0.2.1.tgz",
"integrity": "sha512-bsdlZy3LThi9QbsK0GXm5s/e3F6HAJi1tMsIanm9trtoStSlV3gzir9JpfOK40gERMNIVevDTpG5NzSGnYs3QA==",
"dev": true,
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/node": {
"version": "18.11.17",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.17.tgz",
"integrity": "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng=="
},
"node_modules/@vespaiach/axios-fetch-adapter": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/@vespaiach/axios-fetch-adapter/-/axios-fetch-adapter-0.3.1.tgz",
"integrity": "sha512-+1F52VWXmQHSRFSv4/H0wtnxfvjRMPK5531e880MIjypPdUSX6QZuoDgEVeCE1vjhzDdxCVX7rOqkub7StEUwQ==",
"peerDependencies": {
"axios": ">=0.26.0"
}
},
"node_modules/acorn": {
"version": "8.8.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
"integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
"bin": {
"acorn": "bin/acorn"
},
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/acorn-walk": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/arg": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
},
"node_modules/axios": {
"version": "0.26.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
"integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
"dependencies": {
"follow-redirects": "^1.14.8"
}
},
"node_modules/base-x": {
"version": "3.0.9",
"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
"integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
"dependencies": {
"safe-buffer": "^5.0.1"
}
},
"node_modules/base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/bignumber.js": {
"version": "9.1.1",
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz",
"integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==",
"engines": {
"node": "*"
}
},
"node_modules/bip39": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz",
"integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==",
"dependencies": {
"@types/node": "11.11.6",
"create-hash": "^1.1.0",
"pbkdf2": "^3.0.9",
"randombytes": "^2.0.1"
}
},
"node_modules/bip39/node_modules/@types/node": {
"version": "11.11.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz",
"integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ=="
},
"node_modules/blakejs": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
"integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ=="
},
"node_modules/bn.js": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
"node_modules/brorand": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
"integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
},
"node_modules/bs58": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
"integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
"dependencies": {
"base-x": "^3.0.2"
}
},
"node_modules/bs58check": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
"integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
"dependencies": {
"bs58": "^4.0.0",
"create-hash": "^1.1.0",
"safe-buffer": "^5.1.2"
}
},
"node_modules/buffer": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.2.1"
}
},
"node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/cipher-base": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
"integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
"dependencies": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
}
},
"node_modules/cli-spinner": {
"version": "0.2.10",
"resolved": "https://registry.npmjs.org/cli-spinner/-/cli-spinner-0.2.10.tgz",
"integrity": "sha512-U0sSQ+JJvSLi1pAYuJykwiA8Dsr15uHEy85iCJ6A+0DjVxivr3d+N2Wjvodeg89uP5K6TswFkKBfAD7B3YSn/Q==",
"engines": {
"node": ">=0.10"
}
},
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/create-hash": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
"integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
"dependencies": {
"cipher-base": "^1.0.1",
"inherits": "^2.0.1",
"md5.js": "^1.3.4",
"ripemd160": "^2.0.1",
"sha.js": "^2.4.0"
}
},
"node_modules/create-hmac": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
"dependencies": {
"cipher-base": "^1.0.3",
"create-hash": "^1.1.0",
"inherits": "^2.0.1",
"ripemd160": "^2.0.0",
"safe-buffer": "^5.0.1",
"sha.js": "^2.4.8"
}
},
"node_modules/create-require": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
},
"node_modules/diff": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
"engines": {
"node": ">=0.3.1"
}
},
"node_modules/dotenv": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
"integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==",
"engines": {
"node": ">=10"
}
},
"node_modules/elliptic": {
"version": "6.5.4",
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
"integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
"dependencies": {
"bn.js": "^4.11.9",
"brorand": "^1.1.0",
"hash.js": "^1.0.0",
"hmac-drbg": "^1.0.1",
"inherits": "^2.0.4",
"minimalistic-assert": "^1.0.1",
"minimalistic-crypto-utils": "^1.0.1"
}
},
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"node_modules/follow-redirects": {
"version": "1.15.2",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
"engines": {
"node": ">=4.0"
},
"peerDependenciesMeta": {
"debug": {
"optional": true
}
}
},
"node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/hash-base": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
"integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
"dependencies": {
"inherits": "^2.0.4",
"readable-stream": "^3.6.0",
"safe-buffer": "^5.2.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/hash.js": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
"integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
"dependencies": {
"inherits": "^2.0.3",
"minimalistic-assert": "^1.0.1"
}
},
"node_modules/hmac-drbg": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
"integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
"dependencies": {
"hash.js": "^1.0.3",
"minimalistic-assert": "^1.0.0",
"minimalistic-crypto-utils": "^1.0.1"
}
},
"node_modules/ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/make-error": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
},
"node_modules/md5.js": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
"integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
"dependencies": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1",
"safe-buffer": "^5.1.2"
}
},
"node_modules/minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
"integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
},
"node_modules/minimalistic-crypto-utils": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
"integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
},
"node_modules/pbkdf2": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
"integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
"dependencies": {
"create-hash": "^1.1.2",
"create-hmac": "^1.1.4",
"ripemd160": "^2.0.1",
"safe-buffer": "^5.0.1",
"sha.js": "^2.4.8"
},
"engines": {
"node": ">=0.12"
}
},
"node_modules/randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"dependencies": {
"safe-buffer": "^5.1.0"
}
},
"node_modules/readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/ripemd160": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
"integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
"dependencies": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1"
}
},
"node_modules/rxjs": {
"version": "6.6.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
"integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
"dependencies": {
"tslib": "^1.9.0"
},
"engines": {
"npm": ">=2.0.0"
}
},
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/sha.js": {
"version": "2.4.11",
"resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
"dependencies": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
},
"bin": {
"sha.js": "bin.js"
}
},
"node_modules/string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dependencies": {
"safe-buffer": "~5.2.0"
}
},
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/ts-node": {
"version": "10.9.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
"integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
"dependencies": {
"@cspotcode/source-map-support": "^0.8.0",
"@tsconfig/node10": "^1.0.7",
"@tsconfig/node12": "^1.0.7",
"@tsconfig/node14": "^1.0.0",
"@tsconfig/node16": "^1.0.2",
"acorn": "^8.4.1",
"acorn-walk": "^8.1.1",
"arg": "^4.1.0",
"create-require": "^1.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
"v8-compile-cache-lib": "^3.0.1",
"yn": "3.1.1"
},
"bin": {
"ts-node": "dist/bin.js",
"ts-node-cwd": "dist/bin-cwd.js",
"ts-node-esm": "dist/bin-esm.js",
"ts-node-script": "dist/bin-script.js",
"ts-node-transpile-only": "dist/bin-transpile.js",
"ts-script": "dist/bin-script-deprecated.js"
},
"peerDependencies": {
"@swc/core": ">=1.2.50",
"@swc/wasm": ">=1.2.50",
"@types/node": "*",
"typescript": ">=2.7"
},
"peerDependenciesMeta": {
"@swc/core": {
"optional": true
},
"@swc/wasm": {
"optional": true
}
}
},
"node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/typedarray-to-buffer": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-4.0.0.tgz",
"integrity": "sha512-6dOYeZfS3O9RtRD1caom0sMxgK59b27+IwoNy8RDPsmslSGOyU+mpTamlaIW7aNKi90ZQZ9DFaZL3YRoiSCULQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/typescript": {
"version": "4.8.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz",
"integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==",
"peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=4.2.0"
}
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"node_modules/v8-compile-cache-lib": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="
},
"node_modules/yn": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
"engines": {
"node": ">=6"
}
}
},
"dependencies": {
"@cspotcode/source-map-support": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
"requires": {
"@jridgewell/trace-mapping": "0.3.9"
}
},
"@jridgewell/resolve-uri": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
"integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
},
"@jridgewell/sourcemap-codec": {
"version": "1.4.14",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
},
"@jridgewell/trace-mapping": {
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
"requires": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
"@stablelib/binary": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz",
"integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==",
"requires": {
"@stablelib/int": "^1.0.1"
}
},
"@stablelib/blake2b": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/blake2b/-/blake2b-1.0.1.tgz",
"integrity": "sha512-B3KyKoBAjkIFeH7romcF96i+pVFYk7K2SBQ1pZvaxV+epSBXJ+n0C66esUhyz6FF+5FbdQVm77C5fzGFcEZpKA==",
"requires": {
"@stablelib/binary": "^1.0.1",
"@stablelib/hash": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
}
},
"@stablelib/bytes": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz",
"integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ=="
},
"@stablelib/constant-time": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz",
"integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg=="
},
"@stablelib/ed25519": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.3.tgz",
"integrity": "sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==",
"requires": {
"@stablelib/random": "^1.0.2",
"@stablelib/sha512": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
}
},
"@stablelib/hash": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz",
"integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg=="
},
"@stablelib/hmac": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz",
"integrity": "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==",
"requires": {
"@stablelib/constant-time": "^1.0.1",
"@stablelib/hash": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
}
},
"@stablelib/int": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz",
"integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w=="
},
"@stablelib/keyagreement": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz",
"integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==",
"requires": {
"@stablelib/bytes": "^1.0.1"
}
},
"@stablelib/nacl": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@stablelib/nacl/-/nacl-1.0.4.tgz",
"integrity": "sha512-PJ2U/MrkXSKUM8C4qFs87WeCNxri7KQwR8Cdwm9q2sweGuAtTvOJGuW0F3N+zn+ySLPJA98SYWSSpogMJ1gCmw==",
"requires": {
"@stablelib/poly1305": "^1.0.1",
"@stablelib/random": "^1.0.2",
"@stablelib/wipe": "^1.0.1",
"@stablelib/x25519": "^1.0.3",
"@stablelib/xsalsa20": "^1.0.2"
}
},
"@stablelib/pbkdf2": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/pbkdf2/-/pbkdf2-1.0.1.tgz",
"integrity": "sha512-d5jwK6jW1DkMyzqY8D1Io+fRXcsUVr95lk5LKX9ghaUdAITTc1ZL0bff+R0IrwSixbHluxhnivG7vDw59AZ/Nw==",
"requires": {
"@stablelib/binary": "^1.0.1",
"@stablelib/hash": "^1.0.1",
"@stablelib/hmac": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
}
},
"@stablelib/poly1305": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz",
"integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==",
"requires": {
"@stablelib/constant-time": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
}
},
"@stablelib/random": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.2.tgz",
"integrity": "sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==",
"requires": {
"@stablelib/binary": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
}
},
"@stablelib/salsa20": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@stablelib/salsa20/-/salsa20-1.0.2.tgz",
"integrity": "sha512-nfjKzw0KTKrrKBasEP+j7UP4I8Xudom8lVZIBCp0kQNARXq72IlSic0oabg2FC1NU68L4RdHrNJDd8bFwrphYA==",
"requires": {
"@stablelib/binary": "^1.0.1",
"@stablelib/constant-time": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
}
},
"@stablelib/sha512": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz",
"integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==",
"requires": {
"@stablelib/binary": "^1.0.1",
"@stablelib/hash": "^1.0.1",
"@stablelib/wipe": "^1.0.1"
}
},
"@stablelib/wipe": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz",
"integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg=="
},
"@stablelib/x25519": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.3.tgz",
"integrity": "sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==",
"requires": {
"@stablelib/keyagreement": "^1.0.1",
"@stablelib/random": "^1.0.2",
"@stablelib/wipe": "^1.0.1"
}
},
"@stablelib/xsalsa20": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@stablelib/xsalsa20/-/xsalsa20-1.0.2.tgz",
"integrity": "sha512-7XdBGbcNgBShmuhDXv1G1WPVCkjZdkb1oPMzSidO7Fve0MHntH6TjFkj5bfLI+aRE+61weO076vYpP/jmaAYog==",
"requires": {
"@stablelib/binary": "^1.0.1",
"@stablelib/salsa20": "^1.0.2",
"@stablelib/wipe": "^1.0.1"
}
},
"@taquito/http-utils": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@taquito/http-utils/-/http-utils-15.0.0.tgz",
"integrity": "sha512-caOofYWZzbxti1s1t3ObkRL4Ph8DpAWWY/staI1IiZJ/g/XX8FDtS71tE+IwBLXwH0kYqP0bNhTGPP04ebEHpQ==",
"requires": {
"@vespaiach/axios-fetch-adapter": "^0.3.1",
"axios": "^0.26.0"
}
},
"@taquito/local-forging": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@taquito/local-forging/-/local-forging-15.0.0.tgz",
"integrity": "sha512-8QLut19U03Tsm59RjrSZOlLZx5mglQjQFt5No1VzWfNsXv7mytmn8SlvqFxyt8hyTlm1RM1NdJJ1oO1h1A/BRQ==",
"requires": {
"@taquito/utils": "^15.0.0",
"bignumber.js": "^9.1.0"
}
},
"@taquito/michel-codec": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@taquito/michel-codec/-/michel-codec-15.0.0.tgz",
"integrity": "sha512-pfnrXVSkGeeVNx7MYHTeu79iU4lGynym/7+8QbD/O28LWob8PUrwpt+jaAxsVDdNOYtKz+LO1E4FpC348tHO6Q=="
},
"@taquito/michelson-encoder": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@taquito/michelson-encoder/-/michelson-encoder-15.0.0.tgz",
"integrity": "sha512-TxmWCgZBuA7SrNPSN+xfeeovDGU5H5sXyXcgL3KwYfeILaWiWr1MbI9n8xV7ewJZSC9svor6/osz7Y04+TIpgw==",
"requires": {
"@taquito/rpc": "^15.0.0",
"@taquito/utils": "^15.0.0",
"bignumber.js": "^9.1.0",
"fast-json-stable-stringify": "^2.1.0"
}
},
"@taquito/rpc": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@taquito/rpc/-/rpc-15.0.0.tgz",
"integrity": "sha512-z5oPSD2QDhLqU9scA4Pof2+DUaK9P3oDWeCqr6/JAOlt1DwDwYsHj84d4UVmpjP/DrTj4Sp1IyY7I9KpNNLlGQ==",
"requires": {
"@taquito/http-utils": "^15.0.0",
"@taquito/utils": "^15.0.0",
"bignumber.js": "^9.1.0"
}
},
"@taquito/signer": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@taquito/signer/-/signer-15.0.0.tgz",
"integrity": "sha512-23AmEuzvvz5sLHMkZlElyeZL3a8H25293v4v2G09bylUt79T7GyQPzIuGFwsYPgPlSteP3NarzTrnbit+/pyKg==",
"requires": {
"@stablelib/blake2b": "^1.0.1",
"@stablelib/ed25519": "^1.0.3",
"@stablelib/hmac": "^1.0.1",
"@stablelib/nacl": "^1.0.4",
"@stablelib/pbkdf2": "^1.0.1",
"@stablelib/sha512": "^1.0.1",
"@taquito/taquito": "^15.0.0",
"@taquito/utils": "^15.0.0",
"@types/bn.js": "^5.1.1",
"bip39": "^3.0.4",
"elliptic": "^6.5.4",
"pbkdf2": "^3.1.2",
"typedarray-to-buffer": "^4.0.0"
}
},
"@taquito/taquito": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@taquito/taquito/-/taquito-15.0.0.tgz",
"integrity": "sha512-pYs/hBbjapR/wN+gLhQQYEbL3D7WZXsR/+cb5oCN67vhKwyXkDuBJIEpWIoFGNcwJn0eGFGkUjfngE1bUyMypA==",
"requires": {
"@taquito/http-utils": "^15.0.0",
"@taquito/local-forging": "^15.0.0",
"@taquito/michel-codec": "^15.0.0",
"@taquito/michelson-encoder": "^15.0.0",
"@taquito/rpc": "^15.0.0",
"@taquito/utils": "^15.0.0",
"bignumber.js": "^9.1.0",
"rxjs": "^6.6.3"
}
},
"@taquito/utils": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@taquito/utils/-/utils-15.0.0.tgz",
"integrity": "sha512-15Eq3YarC3HuZY8fmAEmtZaFglMIHjRVeR7l4fd8NJK6EdDZydJ00o40JMof9mhSy6A5atm15IHLD5sfdfx5lg==",
"requires": {
"@stablelib/blake2b": "^1.0.1",
"@stablelib/ed25519": "^1.0.3",
"@types/bs58check": "^2.1.0",
"bignumber.js": "^9.1.0",
"blakejs": "^1.2.1",
"bs58check": "^2.1.2",
"buffer": "^6.0.3",
"elliptic": "^6.5.4",
"typedarray-to-buffer": "^4.0.0"
}
},
"@tsconfig/node10": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
"integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA=="
},
"@tsconfig/node12": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
"integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="
},
"@tsconfig/node14": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
"integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="
},
"@tsconfig/node16": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz",
"integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ=="
},
"@types/bn.js": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz",
"integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==",
"requires": {
"@types/node": "*"
}
},
"@types/bs58check": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@types/bs58check/-/bs58check-2.1.0.tgz",
"integrity": "sha512-OxsysnJQh82vy9DRbOcw9m2j/WiyqZLn0YBhKxdQ+aCwoHj+tWzyCgpwAkr79IfDXZKxc6h7k89T9pwS78CqTQ==",
"requires": {
"@types/node": "*"
}
},
"@types/cli-spinner": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/@types/cli-spinner/-/cli-spinner-0.2.1.tgz",
"integrity": "sha512-bsdlZy3LThi9QbsK0GXm5s/e3F6HAJi1tMsIanm9trtoStSlV3gzir9JpfOK40gERMNIVevDTpG5NzSGnYs3QA==",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"@types/node": {
"version": "18.11.17",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.17.tgz",
"integrity": "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng=="
},
"@vespaiach/axios-fetch-adapter": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/@vespaiach/axios-fetch-adapter/-/axios-fetch-adapter-0.3.1.tgz",
"integrity": "sha512-+1F52VWXmQHSRFSv4/H0wtnxfvjRMPK5531e880MIjypPdUSX6QZuoDgEVeCE1vjhzDdxCVX7rOqkub7StEUwQ==",
"requires": {}
},
"acorn": {
"version": "8.8.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
"integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA=="
},
"acorn-walk": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA=="
},
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"requires": {
"color-convert": "^2.0.1"
}
},
"arg": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
},
"axios": {
"version": "0.26.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
"integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
"requires": {
"follow-redirects": "^1.14.8"
}
},
"base-x": {
"version": "3.0.9",
"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
"integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
"requires": {
"safe-buffer": "^5.0.1"
}
},
"base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"bignumber.js": {
"version": "9.1.1",
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz",
"integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig=="
},
"bip39": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz",
"integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==",
"requires": {
"@types/node": "11.11.6",
"create-hash": "^1.1.0",
"pbkdf2": "^3.0.9",
"randombytes": "^2.0.1"
},
"dependencies": {
"@types/node": {
"version": "11.11.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz",
"integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ=="
}
}
},
"blakejs": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
"integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ=="
},
"bn.js": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
"brorand": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
"integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
},
"bs58": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
"integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
"requires": {
"base-x": "^3.0.2"
}
},
"bs58check": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
"integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
"requires": {
"bs58": "^4.0.0",
"create-hash": "^1.1.0",
"safe-buffer": "^5.1.2"
}
},
"buffer": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"requires": {
"base64-js": "^1.3.1",
"ieee754": "^1.2.1"
}
},
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"cipher-base": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
"integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
"requires": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
}
},
"cli-spinner": {
"version": "0.2.10",
"resolved": "https://registry.npmjs.org/cli-spinner/-/cli-spinner-0.2.10.tgz",
"integrity": "sha512-U0sSQ+JJvSLi1pAYuJykwiA8Dsr15uHEy85iCJ6A+0DjVxivr3d+N2Wjvodeg89uP5K6TswFkKBfAD7B3YSn/Q=="
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"create-hash": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
"integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
"requires": {
"cipher-base": "^1.0.1",
"inherits": "^2.0.1",
"md5.js": "^1.3.4",
"ripemd160": "^2.0.1",
"sha.js": "^2.4.0"
}
},
"create-hmac": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
"requires": {
"cipher-base": "^1.0.3",
"create-hash": "^1.1.0",
"inherits": "^2.0.1",
"ripemd160": "^2.0.0",
"safe-buffer": "^5.0.1",
"sha.js": "^2.4.8"
}
},
"create-require": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
},
"diff": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
},
"dotenv": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
"integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q=="
},
"elliptic": {
"version": "6.5.4",
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
"integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
"requires": {
"bn.js": "^4.11.9",
"brorand": "^1.1.0",
"hash.js": "^1.0.0",
"hmac-drbg": "^1.0.1",
"inherits": "^2.0.4",
"minimalistic-assert": "^1.0.1",
"minimalistic-crypto-utils": "^1.0.1"
}
},
"fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"follow-redirects": {
"version": "1.15.2",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
"hash-base": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
"integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
"requires": {
"inherits": "^2.0.4",
"readable-stream": "^3.6.0",
"safe-buffer": "^5.2.0"
}
},
"hash.js": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
"integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
"requires": {
"inherits": "^2.0.3",
"minimalistic-assert": "^1.0.1"
}
},
"hmac-drbg": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
"integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
"requires": {
"hash.js": "^1.0.3",
"minimalistic-assert": "^1.0.0",
"minimalistic-crypto-utils": "^1.0.1"
}
},
"ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"make-error": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
},
"md5.js": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
"integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
"requires": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1",
"safe-buffer": "^5.1.2"
}
},
"minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
"integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
},
"minimalistic-crypto-utils": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
"integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
},
"pbkdf2": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
"integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
"requires": {
"create-hash": "^1.1.2",
"create-hmac": "^1.1.4",
"ripemd160": "^2.0.1",
"safe-buffer": "^5.0.1",
"sha.js": "^2.4.8"
}
},
"randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"requires": {
"safe-buffer": "^5.1.0"
}
},
"readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
}
},
"ripemd160": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
"integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
"requires": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1"
}
},
"rxjs": {
"version": "6.6.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
"integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
"requires": {
"tslib": "^1.9.0"
}
},
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"sha.js": {
"version": "2.4.11",
"resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
"requires": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
}
},
"string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"requires": {
"safe-buffer": "~5.2.0"
}
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"requires": {
"has-flag": "^4.0.0"
}
},
"ts-node": {
"version": "10.9.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
"integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
"requires": {
"@cspotcode/source-map-support": "^0.8.0",
"@tsconfig/node10": "^1.0.7",
"@tsconfig/node12": "^1.0.7",
"@tsconfig/node14": "^1.0.0",
"@tsconfig/node16": "^1.0.2",
"acorn": "^8.4.1",
"acorn-walk": "^8.1.1",
"arg": "^4.1.0",
"create-require": "^1.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
"v8-compile-cache-lib": "^3.0.1",
"yn": "3.1.1"
}
},
"tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"typedarray-to-buffer": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-4.0.0.tgz",
"integrity": "sha512-6dOYeZfS3O9RtRD1caom0sMxgK59b27+IwoNy8RDPsmslSGOyU+mpTamlaIW7aNKi90ZQZ9DFaZL3YRoiSCULQ=="
},
"typescript": {
"version": "4.8.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz",
"integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==",
"peer": true
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"v8-compile-cache-lib": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="
},
"yn": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="
}
}
}
{
"name": "multisig",
"version": "1.0.0",
"description": "This exeample is meant to illustrate a transaction requiring multiple people's confirmation before the operation is executed. With this MVP example smart-contrat, we show how to use multisig-type confirmation from M of N signers in order to send an operation. In this example, we will bind a call to a token transfer from another smart-contrat, since it’s the most classic use case ( Fungible Asset 2 ).",
"main": "index.js",
"directories": {
"test": "tests"
},
"dependencies": {
"@taquito/signer": "^15.0.0",
"@taquito/taquito": "^15.0.0",
"chalk": "^4.1.2",
"cli-spinner": "^0.2.10",
"dotenv": "^10.0.0",
"ts-node": "^10.9.1",
"@types/cli-spinner": "^0.2.1"
},
"scripts": {
"start": "ts-node deploy.ts",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
{
"compilerOptions": {
"module": "commonjs",
"resolveJsonModule": true,
"esModuleInterop": true,
"target": "es6",
"moduleResolution": "node",
"sourceMap": true,
"outDir": "dist",
"types": ["node"],
"typeRoots": ["@types", "node_modules/@types"]
},
"lib": ["es2015"]
}
[@no_mutation]
let undefined_token = "FA2_TOKEN_UNDEFINED"
[@no_mutation]
let ins_balance = "FA2_INSUFFICIENT_BALANCE"
[@no_mutation]
let no_transfer = "FA2_TX_DENIED"
[@no_mutation]
let not_owner = "FA2_NOT_OWNER"
[@no_mutation]
let not_operator = "FA2_NOT_OPERATOR"
[@no_mutation]
let not_supported = "FA2_OPERATORS_UNSUPPORTED"
[@no_mutation]
let rec_hook_fail = "FA2_RECEIVER_HOOK_FAILED"
[@no_mutation]
let send_hook_fail = "FA2_SENDER_HOOK_FAILED"
[@no_mutation]
let rec_hook_undef = "FA2_RECEIVER_HOOK_UNDEFINED"
[@no_mutation]
let send_hook_under = "FA2_SENDER_HOOK_UNDEFINED"
(**
This file implement the TZIP-12 protocol (a.k.a FA2) for NFT on Tezos
copyright Wulfman Corporation 2021
*)
#import "errors.mligo" "Errors"
module Operators = struct
type owner = address
type operator = address
type token_id = nat
type t = ((owner * operator), token_id set) big_map
(** if transfer policy is Owner_or_operator_transfer *)
let assert_authorisation (operators : t) (from_ : address) (token_id : nat)
: unit =
let sender_ = (Tezos.get_sender ()) in
if (sender_ = from_)
then ()
else
let authorized =
match Big_map.find_opt (from_, sender_) operators with
Some (a) -> a
| None -> Set.empty in
if Set.mem token_id authorized then () else failwith Errors.not_operator
(** if transfer policy is Owner_transfer
let assert_authorisation (operators : t) (from_ : address) : unit =
let sender_ = (Tezos.get_sender ()) in
if (sender_ = from_) then ()
else failwith Errors.not_owner
*)
(** if transfer policy is No_transfer
let assert_authorisation (operators : t) (from_ : address) : unit =
failwith Errors.no_owner
*)
[@no_mutation]
let assert_update_permission (owner : owner) : unit =
assert_with_error
(owner = (Tezos.get_sender ()))
"The sender can only manage operators for his own token"
(** For an administator
let admin = tz1.... in
assert_with_error ((Tezos.get_sender ()) = admiin) "Only administrator can manage operators"
*)
let add_operator
(operators : t)
(owner : owner)
(operator : operator)
(token_id : token_id)
: t =
if owner = operator
then operators
(* assert_authorisation always allow the owner so this case is not relevant *)
else
let () = assert_update_permission owner in
let auth_tokens =
match Big_map.find_opt (owner, operator) operators with
Some (ts) -> ts
| None -> Set.empty in
let auth_tokens = Set.add token_id auth_tokens in
Big_map.update (owner, operator) (Some auth_tokens) operators
[@no_mutation]
let remove_operator
(operators : t)
(owner : owner)
(operator : operator)
(token_id : token_id)
: t =
if owner = operator
then operators
(* assert_authorisation always allow the owner so this case is not relevant *)
else
let () = assert_update_permission owner in
let auth_tokens =
match Big_map.find_opt (owner, operator) operators with
None -> None
| Some (ts) ->
let ts = Set.remove token_id ts in
if (Set.cardinal ts = 0n) then None else Some (ts) in
Big_map.update (owner, operator) auth_tokens operators
end
module Ledger = struct
type token_id = nat
type owner = address
type t = (token_id, owner) big_map
let is_owner_of (ledger : t) (token_id : token_id) (owner : address) : bool =
(** We already sanitized token_id, a failwith here indicated a patological storage *)
let current_owner = Option.unopt (Big_map.find_opt token_id ledger) in
current_owner = owner
let assert_owner_of (ledger : t) (token_id : token_id) (owner : address)
: unit =
assert_with_error (is_owner_of ledger token_id owner) Errors.ins_balance
let transfer_token_from_user_to_user
(ledger : t)
(token_id : token_id)
(from_ : owner)
(to_ : owner)
: t =
let () = assert_owner_of ledger token_id from_ in
let ledger = Big_map.update token_id (Some to_) ledger in
ledger
end
module TokenMetadata = struct
(**
This should be initialized at origination, conforming to either
TZIP-12 : https://gitlab.com/tezos/tzip/-/blob/master/proposals/tzip-12/tzip-12.md#token-metadata
or TZIP-16 : https://gitlab.com/tezos/tzip/-/blob/master/proposals/tzip-12/tzip-12.md#contract-metadata-tzip-016
*)
type data =
{
token_id : nat;
token_info : (string, bytes) map
}
type t = (nat, data) big_map
end
module Storage = struct
type token_id = nat
type t =
{
ledger : Ledger.t;
token_metadata : TokenMetadata.t;
operators : Operators.t
}
let is_owner_of (s : t) (owner : address) (token_id : token_id) : bool =
Ledger.is_owner_of s.ledger token_id owner
let assert_token_exist (s : t) (token_id : nat) : unit =
let _ =
Option.unopt_with_error
(Big_map.find_opt token_id s.token_metadata)
Errors.undefined_token in
()
let set_ledger (s : t) (ledger : Ledger.t) = {s with ledger = ledger}
let get_operators (s : t) = s.operators
let set_operators (s : t) (operators : Operators.t) =
{s with operators = operators}
end
type storage = Storage.t
(** Transfer entrypoint *)
type atomic_trans =
[@layout comb]
{
to_ : address;
token_id : nat
}
type transfer_from =
{
from_ : address;
tx : atomic_trans list
}
type transfer = transfer_from list
[@entry]
let transfer : transfer -> storage -> operation list * storage =
fun (t : transfer)
(s : storage) -> (* This function process the "tx" list. Since all transfer share the same "from_" address, we use a se *)
let process_atomic_transfer
(from_ : address)
(ledger, t : Ledger.t * atomic_trans) =
let {
to_;
token_id
} = t in
let () = Storage.assert_token_exist s token_id in
let () = Operators.assert_authorisation s.operators from_ token_id in
let ledger =
Ledger.transfer_token_from_user_to_user ledger token_id from_ to_ in
ledger in
let process_single_transfer (ledger, t : Ledger.t * transfer_from) =
let {
from_;
tx
} = t in
let ledger = List.fold_left (process_atomic_transfer from_) ledger tx in
ledger in
let ledger = List.fold_left process_single_transfer s.ledger t in
let s = Storage.set_ledger s ledger in
([] : operation list), s
type request =
{
owner : address;
token_id : nat
}
type callback =
[@layout comb]
{
request : request;
balance : nat
}
type balance_of =
[@layout comb]
{
requests : request list;
callback : callback list contract
}
(** Balance_of entrypoint *)
[@entry]
let balance_of : balance_of -> storage -> operation list * storage =
fun (b : balance_of)
(s : storage) -> let {
requests;
callback
} = b in
let get_balance_info (request : request) : callback =
let {
owner;
token_id
} = request in
let () = Storage.assert_token_exist s token_id in
[@no_mutation]
let balance_ = if Storage.is_owner_of s owner token_id then 1n else 0n in
{
request = request;
balance = balance_
} in
let callback_param = List.map get_balance_info requests in
[@no_mutation]
let operation = Tezos.transaction callback_param 0mutez callback in
([operation] : operation list), s
(** Update_operators entrypoint *)
type operator =
[@layout comb]
{
owner : address;
operator : address;
token_id : nat
}
type unit_update =
| Add_operator of operator
| Remove_operator of operator
type update_operators = unit_update list
[@entry]
let update_operators : update_operators -> storage -> operation list * storage =
fun (updates : update_operators)
(s : storage) -> let update_operator
(operators, update : Operators.t * unit_update) =
match update with
Add_operator
{
owner = owner;
operator = operator;
token_id = token_id
} -> Operators.add_operator operators owner operator token_id
| Remove_operator
{
owner = owner;
operator = operator;
token_id = token_id
} -> Operators.remove_operator operators owner operator token_id in
let operators = Storage.get_operators s in
let operators = List.fold_left update_operator operators updates in
let s = Storage.set_operators s operators in
([] : operation list), s
(** If transfer_policy is No_transfer or Owner_transfer
[@entry]
let update_operators : update_operators -> storage -> operation list * storage =
fun (updates: update_operators) (s: storage) ->
let () = failwith Errors.not_supported in
([]: operation list),s
*)
#import "../common/errors.mligo" "Errors"
#import "storage.jsligo" "Storage"
@inline
export const only_signer = (storage: Storage.Types.t): unit =>
assert_with_error(
Set.mem((Tezos.get_sender()), storage.signers),
Errors.only_signer
);
@inline
export const amount_must_be_zero_tez = (an_amout: tez): unit =>
assert_with_error(an_amout == (0 as tez), Errors.amount_must_be_zero_tez);
@inline
export const not_yet_signer = (proposal: Storage.Types.proposal): unit =>
assert_with_error(
! Set.mem((Tezos.get_sender()), proposal.approved_signers),
Errors.has_already_signed
);
#import "../common/constants.mligo" "Constants"
#import "parameter.jsligo" "Parameter"
#import "storage.jsligo" "Storage"
#import "conditions.jsligo" "Conditions"
#import "contracts/fa2.jsligo" "FA2"
// ===============================================================================================
namespace Preamble {
export const prepare_new_proposal = (
params: Parameter.Types.proposal_params,
storage: Storage.Types.t
): Storage.Types.proposal => {
Conditions.only_signer(storage);
Conditions.amount_must_be_zero_tez((Tezos.get_amount()));
return Storage.Utils.create_proposal(params);
};
export const retrieve_a_proposal = (
proposal_number: nat,
storage: Storage.Types.t
): Storage.Types.proposal => {
Conditions.only_signer(storage);
const target_proposal: Storage.Types.proposal =
Storage.Utils.retrieve_proposal(proposal_number, storage);
Conditions.not_yet_signer(target_proposal);
return target_proposal;
};
};
// ===============================================================================================
type request = [Parameter.Types.t, Storage.Types.t];
export type result = [list<operation>, Storage.Types.t];
@entry
export const create_proposal = (
params: Parameter.Types.proposal_params,
storage: Storage.Types.t
): result => {
const proposal = Preamble.prepare_new_proposal(params, storage);
const final_storage = Storage.Utils.register_proposal(proposal, storage);
return [Constants.no_operation, final_storage];
};
@entry
export const sign_proposal = (proposal_number: nat, storage: Storage.Types.t): result => {
let proposal = Preamble.retrieve_a_proposal(proposal_number, storage);
proposal
= Storage.Utils.add_signer_to_proposal(
proposal,
(Tezos.get_sender()),
storage.threshold
);
const final_storage =
Storage.Utils.update_proposal(proposal_number, proposal, storage);
const operations = FA2.perform_operations(proposal);
return [operations, final_storage];
};
// ===============================================================================================
// This function is now only used for tests, and will be removed once tests are rewritten
export const main = (action: Parameter.Types.t, store: Storage.Types.t): result =>
match(action) {
when (Create_proposal(p)):
create_proposal(p, store)
when (Sign_proposal(p)):
sign_proposal(p, store)
}
#import "../../common/errors.mligo" "Errors"
#import "../../common/constants.mligo" "Constants"
#import "../storage.jsligo" "Storage"
#import "../../fa2/fa2.mligo" "FA2"
export const send = (transfers: FA2.transfer, target_fa2_address: address): operation => {
@no_mutation
const fa2_contract_opt: option<contract<FA2.transfer>> =
Tezos.get_entrypoint_opt("%transfer", target_fa2_address);
return match(fa2_contract_opt) {
when (Some(contr)):
Tezos.transaction(transfers, 0 as tez, contr)
when (None()):
failwith(Errors.unknown_contract_entrypoint)
};
}
export const perform_operations = (proposal: Storage.Types.proposal): list<
operation
> => {
if (proposal.executed) {
return list([send(proposal.transfers, proposal.target_fa2)]) as
list<operation>;
} else return Constants.no_operation;
}
#import "../fa2/fa2.mligo" "FA2"
export namespace Types {
export type proposal_params = {
target_fa2: address,
transfers: FA2.transfer
};
export type proposal_number = nat;
export type t =
| ["Create_proposal", proposal_params]
| ["Sign_proposal", proposal_number];
};
#import "parameter.jsligo" "Parameter"
#import "../common/errors.mligo" "Errors"
#import "../fa2/fa2.mligo" "FA2"
export namespace Types {
export type proposal = {
approved_signers: set<address>,
executed: bool,
number_of_signer: nat,
target_fa2: address,
transfers: FA2.transfer,
timestamp: timestamp
};
export type t = {
proposal_counter: nat,
proposal_map: big_map<nat, proposal>,
signers: set<address>,
threshold: nat,
metadata: big_map<string, bytes>
};
};
export namespace Utils {
@inline
const new_storage = ([signers, threshold]: [set<address>, nat]): Types.t =>
(
{
proposal_counter: 0 as nat,
proposal_map: Big_map.empty as big_map<nat, Types.proposal>,
signers: signers,
threshold: threshold,
metadata: (Big_map.empty as big_map<string, bytes>)
}
);
@inline
export const create_proposal = (params: Parameter.Types.proposal_params): Types.
proposal => {
@no_mutation
let number_of_signer = 1 as nat;
return {
approved_signers: Set.literal(list([(Tezos.get_sender())])),
executed: false,
number_of_signer,
target_fa2: params.target_fa2,
timestamp: (Tezos.get_now()),
transfers: params.transfers
}
};
@inline
export const register_proposal = (
proposal: Types.proposal,
storage: Types.t
): Types.t => {
@no_mutation
const proposal_counter = storage.proposal_counter + (1 as nat);
const proposal_map =
Big_map.add(proposal_counter, proposal, storage.proposal_map);
return {
...storage,
proposal_map: proposal_map,
proposal_counter: proposal_counter
};
};
@inline
export const retrieve_proposal = (proposal_number: nat, storage: Types.t): Types.
proposal =>
match(Big_map.find_opt(proposal_number, storage.proposal_map)) {
when (None()):
failwith(Errors.no_proposal_exist)
when (Some(proposal)):
proposal
};
@inline
export const add_signer_to_proposal = (
proposal: Types.proposal,
signer: address,
threshold: nat
): Types.proposal => {
const approved_signers: set<address> =
Set.add(signer, proposal.approved_signers);
const executed: bool =
Set.cardinal(approved_signers) >= threshold || proposal.executed;
@no_mutation
const number_of_signer = proposal.number_of_signer + (1 as nat);
return {
...proposal,
approved_signers: approved_signers,
number_of_signer,
executed: executed
};
};
@inline
export const update_proposal = (
proposal_number: Parameter.Types.proposal_number,
proposal: Types.proposal,
storage: Types.t
): Types.t => {
const proposal_map =
Big_map.update(
proposal_number,
Some(proposal),
storage.proposal_map
);
return { ...storage, proposal_map: proposal_map }
};
}
{ parameter
(or (pair %create_operation
(pair (address %target_fa12) (address %target_to))
(nat %token_amount))
(nat %sign)) ;
storage
(pair (pair (nat %operation_counter)
(big_map %operation_map
nat
(pair (pair (pair (set %approved_signers address) (bool %executed))
(pair (address %target_fa12) (address %target_to)))
(pair (timestamp %timestamp) (nat %token_amount)))))
(pair (set %signers address) (nat %threshold))) ;
code { PUSH string "Only one of the contract signer can create an operation" ;
NIL operation ;
DUP 3 ;
CDR ;
DIG 3 ;
CAR ;
IF_LEFT
{ SWAP ;
DIG 3 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CAR ;
SENDER ;
MEM ;
IF { DROP } { FAILWITH } ;
PUSH string "You must not send Tezos to the smart contract" ;
PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
NOW ;
PAIR ;
DUP 3 ;
CAR ;
CDR ;
DIG 3 ;
CAR ;
CAR ;
PAIR ;
PUSH bool False ;
EMPTY_SET address ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
PUSH nat 1 ;
DUP 5 ;
CAR ;
CAR ;
ADD ;
PAIR ;
PAIR ;
DUP ;
CDR ;
DUP 4 ;
CAR ;
CDR ;
DIG 3 ;
DIG 4 ;
CAR ;
CAR ;
SWAP ;
SOME ;
SWAP ;
UPDATE ;
DIG 2 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{ SWAP ;
DIG 3 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CAR ;
SENDER ;
MEM ;
IF { DROP } { FAILWITH } ;
PUSH string "You have already signed this operation" ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CAR ;
SENDER ;
MEM ;
IF { DROP } { FAILWITH } ;
DUP ;
CAR ;
CDR ;
DUP 3 ;
GET ;
IF_NONE
{ PUSH string "No operation exists for this counter" ; FAILWITH }
{ DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
DUP 3 ;
CAR ;
CAR ;
CDR ;
DIG 3 ;
CAR ;
CAR ;
CAR ;
PUSH bool True ;
SENDER ;
UPDATE ;
PAIR ;
PAIR ;
PAIR } ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SIZE ;
COMPARE ;
GE ;
IF { DIG 3 ;
DROP ;
NIL operation ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CAR ;
DUP 3 ;
CAR ;
CDR ;
CDR ;
DUP 4 ;
CDR ;
CDR ;
PAIR ;
PAIR ;
DUP ;
CDR ;
CONTRACT %transfer (pair address (pair address nat)) ;
IF_NONE
{ PUSH string "Cannot connect to the target transfer token entrypoint" ;
FAILWITH }
{} ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
DIG 2 ;
CAR ;
CDR ;
PAIR ;
SELF_ADDRESS ;
PAIR ;
SWAP ;
PUSH mutez 0 ;
DIG 2 ;
TRANSFER_TOKENS ;
CONS ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
PUSH bool True ;
DIG 4 ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{ DIG 3 ; PAIR } ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
DUP 3 ;
CDR ;
SOME ;
DIG 5 ;
UPDATE ;
DIG 3 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
SWAP ;
CAR ;
PAIR } } }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment