diff --git a/apps/counter/package.json b/apps/counter/package.json
index 387d333..019ac8f 100644
--- a/apps/counter/package.json
+++ b/apps/counter/package.json
@@ -12,27 +12,27 @@
},
"dependencies": {
"@ton/core": "^0.56.3",
- "@tonconnect/ui": "^2.0.2",
- "@tonconnect/ui-react": "^2.0.2",
+ "@tonconnect/ui": "^2.0.3",
+ "@tonconnect/ui-react": "^2.0.3",
"react": "^18.3.1",
"react-dom": "^18.3.1",
- "viem": "^2.9.28"
+ "viem": "^2.13.5"
},
"devDependencies": {
"@fotonjs/api": "workspace:*",
- "@fotonjs/core": "workspace:*",
"@fotonjs/cli": "workspace:*",
- "@tact-lang/compiler": "^1.2.0",
- "@types/react": "^18.3.1",
+ "@fotonjs/core": "workspace:*",
+ "@tact-lang/compiler": "^1.3.0",
+ "@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
- "@typescript-eslint/eslint-plugin": "^7.7.1",
- "@typescript-eslint/parser": "^7.7.1",
- "@vitejs/plugin-react-swc": "^3.6.0",
+ "@typescript-eslint/eslint-plugin": "^7.12.0",
+ "@typescript-eslint/parser": "^7.12.0",
+ "@vitejs/plugin-react-swc": "^3.7.0",
"eslint": "^8.57.0",
"eslint-plugin-react-hooks": "^4.6.2",
- "eslint-plugin-react-refresh": "^0.4.6",
+ "eslint-plugin-react-refresh": "^0.4.7",
"typescript": "^5.4.5",
- "vite": "^5.2.10",
+ "vite": "^5.2.12",
"vite-plugin-node-polyfills": "^0.21.0"
}
}
diff --git a/apps/docs/package.json b/apps/docs/package.json
index 81947af..35d355f 100644
--- a/apps/docs/package.json
+++ b/apps/docs/package.json
@@ -9,18 +9,18 @@
"lint": "next lint"
},
"dependencies": {
- "@vercel/analytics": "^1.2.2",
+ "@vercel/analytics": "^1.3.1",
"next": "14.2.3",
"nextra": "^2.13.4",
"nextra-theme-docs": "^2.13.4",
- "react": "^18",
- "react-dom": "^18",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
"shiki": "^0.14.7"
},
"devDependencies": {
- "@types/node": "^20",
- "@types/react": "^18",
- "@types/react-dom": "^18",
- "typescript": "^5"
+ "@types/node": "^20.14.1",
+ "@types/react": "^18.3.3",
+ "@types/react-dom": "^18.3.0",
+ "typescript": "^5.4.5"
}
}
diff --git a/apps/jetton/.env.production b/apps/jetton/.env.production
new file mode 100644
index 0000000..98bfd95
--- /dev/null
+++ b/apps/jetton/.env.production
@@ -0,0 +1 @@
+VITE_API_KEY=""
diff --git a/apps/jetton/.eslintrc.cjs b/apps/jetton/.eslintrc.cjs
new file mode 100644
index 0000000..7c49501
--- /dev/null
+++ b/apps/jetton/.eslintrc.cjs
@@ -0,0 +1,19 @@
+module.exports = {
+ root: true,
+ env: { browser: true, es2020: true },
+ extends: [
+ 'eslint:recommended',
+ 'plugin:@typescript-eslint/recommended',
+ 'plugin:react-hooks/recommended',
+ ],
+ ignorePatterns: ['dist', '.eslintrc.cjs'],
+ parser: '@typescript-eslint/parser',
+ plugins: ['react-refresh'],
+ rules: {
+ 'semi': ['warn', 'always'],
+ 'react-refresh/only-export-components': [
+ 'warn',
+ { allowConstantExport: true },
+ ],
+ },
+}
diff --git a/apps/jetton/.gitignore b/apps/jetton/.gitignore
new file mode 100644
index 0000000..863e5c8
--- /dev/null
+++ b/apps/jetton/.gitignore
@@ -0,0 +1,26 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+build
diff --git a/apps/jetton/README.md b/apps/jetton/README.md
new file mode 100644
index 0000000..41bc6c2
--- /dev/null
+++ b/apps/jetton/README.md
@@ -0,0 +1,3 @@
+# Foton Jetton
+
+An application showcasing how Foton can help with Jetton manipulations
diff --git a/apps/jetton/index.html b/apps/jetton/index.html
new file mode 100644
index 0000000..fb7692e
--- /dev/null
+++ b/apps/jetton/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Jetton | Foton
+
+
+
+
+
+
diff --git a/apps/jetton/package.json b/apps/jetton/package.json
new file mode 100644
index 0000000..ceec1cc
--- /dev/null
+++ b/apps/jetton/package.json
@@ -0,0 +1,36 @@
+{
+ "name": "@fotonjs/jetton",
+ "private": true,
+ "version": "0.0.1",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
+ "preview": "vite preview",
+ "compile": "tact --config ./tact.config.json"
+ },
+ "dependencies": {
+ "@ton/core": "^0.56.3",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "zustand": "^4.5.2"
+ },
+ "devDependencies": {
+ "@fotonjs/api": "workspace:*",
+ "@fotonjs/core": "workspace:*",
+ "@tact-lang/compiler": "^1.2.0",
+ "@ton/blueprint": "^0.20.0",
+ "@types/react": "^18.2.66",
+ "@types/react-dom": "^18.2.22",
+ "@typescript-eslint/eslint-plugin": "^7.2.0",
+ "@typescript-eslint/parser": "^7.2.0",
+ "@vitejs/plugin-react-swc": "^3.5.0",
+ "eslint": "^8.57.0",
+ "eslint-plugin-react-hooks": "^4.6.0",
+ "eslint-plugin-react-refresh": "^0.4.6",
+ "typescript": "^5.2.2",
+ "vite": "^5.2.0",
+ "vite-plugin-node-polyfills": "^0.21.0"
+ }
+}
diff --git a/apps/jetton/public/foton.png b/apps/jetton/public/foton.png
new file mode 100644
index 0000000..d85c29d
Binary files /dev/null and b/apps/jetton/public/foton.png differ
diff --git a/apps/jetton/public/tonconnect-manifest.json b/apps/jetton/public/tonconnect-manifest.json
new file mode 100644
index 0000000..ca59a81
--- /dev/null
+++ b/apps/jetton/public/tonconnect-manifest.json
@@ -0,0 +1,5 @@
+{
+ "name": "Foton Jetton",
+ "url": "https://jetton.foton.sh",
+ "iconUrl": "https://jetton.foton.sh/foton.png"
+}
diff --git a/apps/jetton/src/.eslintignore b/apps/jetton/src/.eslintignore
new file mode 100644
index 0000000..4d27c38
--- /dev/null
+++ b/apps/jetton/src/.eslintignore
@@ -0,0 +1 @@
+src/contract
diff --git a/apps/jetton/src/App.css b/apps/jetton/src/App.css
new file mode 100644
index 0000000..73aa63d
--- /dev/null
+++ b/apps/jetton/src/App.css
@@ -0,0 +1,23 @@
+#root {
+ width: 90%;
+ margin: 0 auto;
+ padding-top: 3rem;
+}
+
+@media (min-width: 768px) {
+ #root {
+ width: 720px;
+ }
+}
+
+.card {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 12px;
+ padding: 2em;
+}
+
+form {
+ margin-top: 2em;
+}
diff --git a/apps/jetton/src/App.tsx b/apps/jetton/src/App.tsx
new file mode 100644
index 0000000..27b8134
--- /dev/null
+++ b/apps/jetton/src/App.tsx
@@ -0,0 +1,29 @@
+import { useEffect } from 'react';
+import { useUserStore } from './stores/user-store.ts';
+import { JettonMinters } from './components/jetton-minters';
+import { CreateJetton } from './components/create-jetton';
+import { ManageJetton } from './components/manage-jetton';
+import { AppHeader } from './components/header';
+import './App.css';
+
+function App() {
+ const userAddress = useUserStore((state) => state.address);
+ const activeSection = useUserStore((state) => state.activeSection);
+ const monitorAuth = useUserStore((state) => state.monitorAuth);
+
+ useEffect(() => {
+ monitorAuth();
+ }, [monitorAuth]);
+
+ return (
+ <>
+
+
+ {activeSection === 'minters' && }
+ {activeSection === 'create' && }
+ {activeSection === 'manage' && }
+ >
+ );
+}
+
+export default App;
diff --git a/apps/jetton/src/components/connect-button/index.tsx b/apps/jetton/src/components/connect-button/index.tsx
new file mode 100644
index 0000000..b1b44e5
--- /dev/null
+++ b/apps/jetton/src/components/connect-button/index.tsx
@@ -0,0 +1,13 @@
+import { FC } from 'react';
+import { useUserStore } from '../../stores/user-store.ts';
+
+export const ConnectButton: FC = () => {
+ const loading = useUserStore((state) => state.loading);
+ const connect = useUserStore((state) => state.connect);
+
+ return (
+
+ );
+};
diff --git a/apps/jetton/src/components/create-jetton/index.tsx b/apps/jetton/src/components/create-jetton/index.tsx
new file mode 100644
index 0000000..f92a5b9
--- /dev/null
+++ b/apps/jetton/src/components/create-jetton/index.tsx
@@ -0,0 +1,109 @@
+import { FC, FormEventHandler, useState } from 'react';
+import styles from './styles.module.css';
+import { getJettonDeployArguments, parseTon } from '@fotonjs/core';
+import { contractClient, publicClient, walletClient } from '../../ton-clients.ts';
+import { AppSection } from '../section';
+import { useUserStore } from '../../stores/user-store.ts';
+
+export interface CreateJettonProps {}
+
+export const CreateJetton: FC = () => {
+ const changeSection = useUserStore((state) => state.changeSection);
+ const userAddress = useUserStore((state) => state.address);
+
+ const [name, setName] = useState('');
+ const [symbol, setSymbol] = useState('');
+ const [description, setDescription] = useState('');
+
+ const [error, setError] = useState();
+ const [loading, setLoading] = useState(false);
+
+ const onConnect = () => {
+ walletClient.connect();
+ };
+
+ const onSubmit: FormEventHandler = async (event) => {
+ event.preventDefault();
+
+ setError(undefined);
+ if (!name || !symbol || !description) {
+ setError('Please, fill in all fields');
+ return;
+ }
+
+ const data = getJettonDeployArguments({
+ owner: userAddress!,
+ maxSupply: 21000000n,
+ content: {
+ name: 'Foton',
+ symbol: 'FTN',
+ description: 'Foton token',
+ },
+ });
+
+ setLoading(true);
+ const res = await contractClient.deploy({
+ value: parseTon('0.05'),
+ arguments: data,
+ payload: undefined,
+ });
+
+ if (res.data) {
+ await publicClient.waitForTransaction({ hash: res.data.txHash });
+ changeSection('minters');
+ } else {
+ setError(res.error.message);
+ }
+ setLoading(false);
+ };
+
+ return (
+
+
+
+ );
+};
diff --git a/apps/jetton/src/components/create-jetton/styles.module.css b/apps/jetton/src/components/create-jetton/styles.module.css
new file mode 100644
index 0000000..109443f
--- /dev/null
+++ b/apps/jetton/src/components/create-jetton/styles.module.css
@@ -0,0 +1,37 @@
+.form {
+ display: flex;
+ flex-direction: column;
+ margin: 0;
+ gap: 16px;
+ padding-bottom: 32px;
+}
+
+.field {
+ display: flex;
+ flex-direction: column;
+ gap: 6px;
+ border: none;
+ padding: 0;
+ margin: 0;
+}
+
+.field input {
+ width: 100%;
+ padding: 16px;
+ border: none;
+ border-radius: 8px;
+ font-size: 16px;
+}
+
+.form > button {
+ padding: 16px;
+ border-radius: 8px;
+ font-size: 16px;
+ font-weight: bold;
+ cursor: pointer;
+}
+
+.error {
+ text-align: center;
+ color: #fa3636;
+}
diff --git a/apps/jetton/src/components/disconnect-button/index.tsx b/apps/jetton/src/components/disconnect-button/index.tsx
new file mode 100644
index 0000000..1ccc46c
--- /dev/null
+++ b/apps/jetton/src/components/disconnect-button/index.tsx
@@ -0,0 +1,25 @@
+import { FC } from 'react';
+import { useUserStore } from '../../stores/user-store.ts';
+import { shortenAddress } from '../../utils/shortenAddress.ts';
+import styles from './styles.module.css';
+
+export interface DisconnectButtonProps {}
+
+export const DisconnectButton: FC = () => {
+ const address = useUserStore((state) => state.address);
+ const loading = useUserStore((state) => state.loading);
+ const changeSection = useUserStore((state) => state.changeSection);
+ const disconnect = useUserStore((state) => state.disconnect);
+
+ return (
+
+ {shortenAddress(address)}
+
+
+
+
+
+ );
+};
diff --git a/apps/jetton/src/components/disconnect-button/styles.module.css b/apps/jetton/src/components/disconnect-button/styles.module.css
new file mode 100644
index 0000000..a9740dd
--- /dev/null
+++ b/apps/jetton/src/components/disconnect-button/styles.module.css
@@ -0,0 +1,7 @@
+.account {
+ position: relative;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 12px;
+}
diff --git a/apps/jetton/src/components/header/index.tsx b/apps/jetton/src/components/header/index.tsx
new file mode 100644
index 0000000..b722627
--- /dev/null
+++ b/apps/jetton/src/components/header/index.tsx
@@ -0,0 +1,24 @@
+import { FC } from 'react';
+import fotonLogo from '/foton.png';
+
+import { ConnectButton } from '../connect-button';
+import { DisconnectButton } from '../disconnect-button';
+import { useUserStore } from '../../stores/user-store.ts';
+import styles from './styles.module.css';
+
+export const AppHeader: FC = () => {
+ const userAddress = useUserStore((state) => state.address);
+
+ return (
+
+ );
+};
diff --git a/apps/jetton/src/components/header/styles.module.css b/apps/jetton/src/components/header/styles.module.css
new file mode 100644
index 0000000..a5c6775
--- /dev/null
+++ b/apps/jetton/src/components/header/styles.module.css
@@ -0,0 +1,47 @@
+.header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ width: 100%;
+}
+
+.header > a {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+}
+
+.header h1 {
+ margin: 0;
+}
+
+.header img {
+ height: 40px;
+ width: 40px;
+ will-change: filter;
+ transition: filter 300ms;
+}
+
+.header img:hover {
+ filter: drop-shadow(0 0 2em rgba(255, 154, 7, 0.89));
+}
+
+.header.down {
+ flex-direction: column;
+ gap: 16px;
+}
+
+@media (min-width: 768px) {
+ .header > a {
+ gap: 24px;
+ }
+
+ .header img {
+ height: 60px;
+ width: 60px;
+ }
+
+ .header.down {
+ flex-direction: row;
+ }
+}
diff --git a/apps/jetton/src/components/jetton-minters/index.tsx b/apps/jetton/src/components/jetton-minters/index.tsx
new file mode 100644
index 0000000..17c422e
--- /dev/null
+++ b/apps/jetton/src/components/jetton-minters/index.tsx
@@ -0,0 +1,119 @@
+import { FC, useEffect, useState } from 'react';
+import { JettonMaster, JettonWallet } from '@fotonjs/api';
+import { contractClient, publicClient } from '../../ton-clients.ts';
+import { shortenAddress } from '../../utils/shortenAddress.ts';
+import { useUserStore } from '../../stores/user-store.ts';
+import { AppSection } from '../section';
+import styles from './styles.module.css';
+
+interface JettonMetadata {
+ name: string;
+ description: string;
+ symbol: string;
+ image: string;
+ imageData: string;
+ uri: string;
+ decimals: number;
+ amount_style: 'n' | 'n-of-total' | '%';
+ render_type: 'currency' | 'game';
+}
+
+interface JettonMinter extends JettonMaster {
+ jetton_content: JettonMetadata;
+ balance: bigint;
+}
+
+export interface JettonMintersProps {}
+
+export const JettonMinters: FC = () => {
+ const userAddress = useUserStore((state) => state.address);
+ const changeSection = useUserStore((state) => state.changeSection);
+
+ const [minters, setMinters] = useState([]);
+
+ const fetchJettonMinters = async (address: string): Promise => {
+ const [minters, wallets] = await Promise.all([
+ publicClient._api.jettonMasters({ admin_address: address }),
+ publicClient._api.jettonWallets({ owner_address: address }),
+ ]);
+ let mintersData = (minters.data?.jetton_masters || []) as JettonMinter[];
+ const walletsData = (wallets.data?.jetton_wallets || []) as JettonWallet[];
+
+ mintersData = mintersData.map((minter) => {
+ const balance = walletsData.reduce((accum, wallet) => {
+ console.log(wallet.jetton, minter.address, wallet.jetton === minter.address, BigInt(wallet.balance));
+ if (wallet.jetton === minter.address) {
+ return accum + BigInt(wallet.balance);
+ }
+ return accum;
+ }, 0n);
+
+ return {
+ ...minter,
+ balance,
+ };
+ });
+
+ setMinters(mintersData);
+ };
+
+ useEffect(() => {
+ if (userAddress) {
+ fetchJettonMinters(userAddress);
+ } else {
+ setMinters([]);
+ }
+ }, [userAddress]);
+
+ const onManage = (address: string) => {
+ contractClient.setAddress(address);
+ changeSection('manage');
+ };
+
+ if (!minters.length) {
+ return null;
+ }
+
+ return (
+ changeSection('create')}>Create new jetton}
+ >
+
+
+
+ Symbol |
+ Name |
+ Total supply |
+ Balance |
+ Address |
+ |
+
+
+
+ {minters.map((minter) => (
+
+ ${minter.jetton_content.symbol} |
+ {minter.jetton_content.name} |
+ {minter.total_supply} |
+ {minter.balance?.toString() || '0'} |
+
+
+ {shortenAddress(minter.address)}
+
+ |
+
+
+ |
+
+ ))}
+
+
+
+ );
+};
diff --git a/apps/jetton/src/components/jetton-minters/styles.module.css b/apps/jetton/src/components/jetton-minters/styles.module.css
new file mode 100644
index 0000000..b35482d
--- /dev/null
+++ b/apps/jetton/src/components/jetton-minters/styles.module.css
@@ -0,0 +1,33 @@
+.table {
+ overflow-x: auto;
+}
+
+.table, .table thead, .table tbody {
+ width: 100%;
+}
+
+.table tr {
+ display: grid;
+ grid-template-columns: repeat(6, 1fr);
+ width: 100%;
+}
+
+.table a {
+ color: var(--hover-color);
+ text-decoration: underline;
+}
+
+.table th, .table td {
+ display: flex;
+ align-items: center;
+ padding: 8px;
+}
+
+.table th {
+ display: flex;
+ align-items: center;
+ font-weight: bold;
+ white-space: nowrap;
+ border-top: 1px solid var(--stroke-primary);
+ border-bottom: 1px solid var(--stroke-primary);
+}
diff --git a/apps/jetton/src/components/manage-jetton/index.tsx b/apps/jetton/src/components/manage-jetton/index.tsx
new file mode 100644
index 0000000..67e56a1
--- /dev/null
+++ b/apps/jetton/src/components/manage-jetton/index.tsx
@@ -0,0 +1,92 @@
+import { FC, FormEventHandler, useState } from 'react';
+import styles from './styles.module.css';
+import { AppSection } from '../section';
+import { contractClient, publicClient } from '../../ton-clients.ts';
+import { parseTon } from '@fotonjs/core';
+
+type ActionTabs = 'mint' | 'transfer' | 'burn';
+
+export interface ManageJettonProps {}
+
+export const ManageJetton: FC = () => {
+ const [tab, setTab] = useState('mint');
+
+ const [mintAmount, setMintAmount] = useState('');
+ const [receiver, setReceiver] = useState('');
+
+ const [error, setError] = useState();
+ const [loading, setLoading] = useState(false);
+
+ const onMint: FormEventHandler = async (event) => {
+ event.preventDefault();
+
+ setError(undefined);
+ if (!mintAmount || !receiver) {
+ setError('Please, fill in all fields');
+ return;
+ }
+
+ setLoading(true);
+ const res = await contractClient.write({
+ method: 'Mint',
+ value: parseTon('0.05'),
+ payload: {
+ receiver,
+ amount: BigInt(mintAmount),
+ }
+ });
+
+ if (res.data) {
+ await publicClient.waitForTransaction({ hash: res.data });
+ } else if (res.error) {
+ alert(res.error.message);
+ }
+ setLoading(false);
+ };
+
+ return (
+
+
+
+
+ {tab === 'mint' && (
+
+ )}
+
+
+ );
+};
diff --git a/apps/jetton/src/components/manage-jetton/styles.module.css b/apps/jetton/src/components/manage-jetton/styles.module.css
new file mode 100644
index 0000000..857dff3
--- /dev/null
+++ b/apps/jetton/src/components/manage-jetton/styles.module.css
@@ -0,0 +1,52 @@
+.wrapper {
+ position: relative;
+ width: 100%;
+ padding-bottom: 32px;
+}
+
+.tabs {
+ display: flex;
+ gap: 16px;
+}
+
+.tabs button.active {
+ border: 1px solid var(--focus-color);
+}
+
+.form {
+ display: flex;
+ flex-direction: column;
+ margin: 16px 0 0;
+ gap: 16px;
+ padding-bottom: 32px;
+}
+
+.field {
+ display: flex;
+ flex-direction: column;
+ gap: 6px;
+ border: none;
+ padding: 0;
+ margin: 0;
+}
+
+.field input {
+ width: 100%;
+ padding: 16px;
+ border: none;
+ border-radius: 8px;
+ font-size: 16px;
+}
+
+.form > button {
+ padding: 16px;
+ border-radius: 8px;
+ font-size: 16px;
+ font-weight: bold;
+ cursor: pointer;
+}
+
+.error {
+ text-align: center;
+ color: #fa3636;
+}
diff --git a/apps/jetton/src/components/section/index.tsx b/apps/jetton/src/components/section/index.tsx
new file mode 100644
index 0000000..ec344e7
--- /dev/null
+++ b/apps/jetton/src/components/section/index.tsx
@@ -0,0 +1,21 @@
+import { FC, ReactNode } from 'react';
+import styles from './styles.module.css';
+
+export interface AppSectionProps {
+ title: string;
+ children: ReactNode;
+ headerItem?: ReactNode;
+}
+
+export const AppSection: FC = ({ title, headerItem, children }) => {
+ return (
+
+
+
{title}
+ {headerItem}
+
+
+ {children}
+
+ );
+};
diff --git a/apps/jetton/src/components/section/styles.module.css b/apps/jetton/src/components/section/styles.module.css
new file mode 100644
index 0000000..2f99c9c
--- /dev/null
+++ b/apps/jetton/src/components/section/styles.module.css
@@ -0,0 +1,10 @@
+.section {
+ margin-top: 24px;
+}
+
+.header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 12px;
+}
diff --git a/apps/jetton/src/contract/contract.tact b/apps/jetton/src/contract/contract.tact
new file mode 100644
index 0000000..b4174e8
--- /dev/null
+++ b/apps/jetton/src/contract/contract.tact
@@ -0,0 +1,44 @@
+import "./jetton";
+
+message Mint {
+ amount: Int;
+ receiver: Address;
+}
+
+contract SampleJetton with Jetton {
+ total_supply: Int as coins;
+ owner: Address;
+ content: Cell;
+ mintable: Bool;
+
+ max_supply: Int as coins; // Extract parameter we set here. The Jetton Standards doesn't have this parameter.
+
+ init(owner: Address, content: Cell, max_supply: Int) {
+ self.total_supply = 0;
+ self.owner = owner;
+ self.mintable = true;
+ self.content = content;
+ self.max_supply = max_supply;
+ }
+
+ receive(msg: Mint) { // 0xfc708bd2
+ let ctx: Context = context();
+ require(ctx.sender == self.owner, "Not owner");
+ require(self.mintable, "Not mintable");
+ require(self.total_supply + msg.amount <= self.max_supply, "Max supply exceeded");
+ self.mint(msg.receiver, msg.amount, self.owner); // (to, amount, response_destination)
+ }
+
+ receive("Mint: 100") { // Public Minting
+ let ctx: Context = context();
+ require(self.mintable, "Not mintable");
+ require(self.total_supply + 100 <= self.max_supply, "Max supply exceeded");
+ self.mint(ctx.sender, 100, self.owner); // 🔴
+ }
+
+ receive("Owner: MintClose") {
+ let ctx: Context = context();
+ require(ctx.sender == self.owner, "Not owner");
+ self.mintable = false;
+ }
+}
diff --git a/apps/jetton/src/contract/index.ts b/apps/jetton/src/contract/index.ts
new file mode 100644
index 0000000..8895eaf
--- /dev/null
+++ b/apps/jetton/src/contract/index.ts
@@ -0,0 +1,2 @@
+export { JettonDefaultWallet } from './jetton_JettonDefaultWallet.ts';
+export { SampleJetton } from './jetton_SampleJetton.ts';
diff --git a/apps/jetton/src/contract/jetton.tact b/apps/jetton/src/contract/jetton.tact
new file mode 100644
index 0000000..4240d77
--- /dev/null
+++ b/apps/jetton/src/contract/jetton.tact
@@ -0,0 +1,256 @@
+import "@stdlib/ownable";
+import "./messages";
+
+// ============================================================================================================ //
+@interface("org.ton.jetton.master")
+trait Jetton with Ownable {
+
+ total_supply: Int;
+ mintable: Bool;
+ owner: Address;
+ content: Cell;
+
+ receive(msg: TokenUpdateContent) {
+ self.requireOwner(); // Allow changing content only by owner
+ self.content = msg.content; // Update content
+ }
+
+ receive(msg: TokenBurnNotification) {
+ self.requireSenderAsWalletOwner(msg.response_destination!!); // Check wallet
+ self.total_supply = self.total_supply - msg.amount; // Update supply
+ if (msg.response_destination != null) { // Cashback
+ send(SendParameters{
+ to: msg.response_destination!!,
+ value: 0,
+ bounce: false,
+ mode: SendRemainingValue,
+ body: TokenExcesses{ query_id: msg.query_id }.toCell()
+ });
+ }
+ }
+
+ // https://github.com/ton-blockchain/TEPs/blob/master/text/0089-jetton-wallet-discovery.md
+ receive(msg: ProvideWalletAddress) { // 0x2c76b973
+ require(context().value >= ton("0.0061"), "Insufficient gas");
+ let init: StateInit = initOf JettonDefaultWallet(msg.owner_address, myAddress());
+ if (msg.include_address) {
+ send(SendParameters{
+ to: sender(),
+ value: 0,
+ mode: SendRemainingValue,
+ body: TakeWalletAddress{
+ query_id: msg.query_id,
+ wallet_address: contractAddress(init),
+ owner_address: beginCell().storeBool(true).storeAddress(msg.owner_address).endCell().asSlice()
+ }.toCell()
+ });
+ } else {
+ send(SendParameters{
+ to: sender(),
+ value: 0,
+ mode: SendRemainingValue,
+ body: TakeWalletAddress { // 0xd1735400
+ query_id: msg.query_id,
+ wallet_address: contractAddress(init),
+ owner_address: beginCell().storeBool(false).endCell().asSlice()
+ }.toCell()
+ });
+ }
+ }
+
+ // Private Methods //
+ // @to The Address receive the Jetton token after minting
+ // @amount The amount of Jetton token being minted
+ // @response_destination The previous owner address
+ fun mint(to: Address, amount: Int, response_destination: Address) {
+ require(self.mintable, "Can't Mint Anymore");
+ self.total_supply = self.total_supply + amount; // Update total supply
+
+ let winit: StateInit = self.getJettonWalletInit(to); // Create message
+ send(SendParameters{
+ to: contractAddress(winit),
+ value: 0,
+ bounce: true,
+ mode: SendRemainingValue,
+ body: TokenTransferInternal{
+ query_id: 0,
+ amount: amount,
+ from: myAddress(),
+ response_destination: response_destination,
+ forward_ton_amount: 0,
+ forward_payload: beginCell().endCell().asSlice()
+ }.toCell(),
+ code: winit.code,
+ data: winit.data
+ });
+ }
+
+ fun requireSenderAsWalletOwner(owner: Address) {
+ let ctx: Context = context();
+ let winit: StateInit = self.getJettonWalletInit(owner);
+ require(contractAddress(winit) == ctx.sender, "Invalid sender");
+ }
+
+ virtual fun getJettonWalletInit(address: Address): StateInit {
+ return initOf JettonDefaultWallet(address, myAddress());
+ }
+
+ // ====== Get Methods ====== //
+ get fun get_jetton_data(): JettonData {
+ return JettonData{
+ total_supply: self.total_supply,
+ mintable: self.mintable,
+ owner: self.owner,
+ content: self.content,
+ wallet_code: initOf JettonDefaultWallet(self.owner, myAddress()).code
+ };
+ }
+
+ get fun get_wallet_address(owner: Address): Address {
+ return contractAddress(initOf JettonDefaultWallet(owner, myAddress()));
+ }
+}
+
+// ============================================================ //
+@interface("org.ton.jetton.wallet")
+contract JettonDefaultWallet {
+ const minTonsForStorage: Int = ton("0.019");
+ const gasConsumption: Int = ton("0.013");
+
+ balance: Int as coins = 0;
+ owner: Address;
+ master: Address;
+
+ init(owner: Address, master: Address) {
+ self.balance = 0;
+ self.owner = owner;
+ self.master = master;
+ }
+
+ receive(msg: TokenTransfer) { // 0xf8a7ea5
+ let ctx: Context = context(); // Check sender
+ require(ctx.sender == self.owner, "Invalid sender");
+
+ let final: Int = ctx.readForwardFee() * 2 +
+ 2 * self.gasConsumption +
+ self.minTonsForStorage +
+ msg.forward_ton_amount; // Gas checks, forward_ton = 0.152
+ require(ctx.value > final, "Invalid value");
+
+ // Update balance
+ self.balance = self.balance - msg.amount;
+ require(self.balance >= 0, "Invalid balance");
+
+ let init: StateInit = initOf JettonDefaultWallet(msg.sender, self.master);
+ let wallet_address: Address = contractAddress(init);
+ send(SendParameters{
+ to: wallet_address,
+ value: 0,
+ mode: SendRemainingValue,
+ bounce: false,
+ body: TokenTransferInternal{ // 0x178d4519
+ query_id: msg.query_id,
+ amount: msg.amount,
+ from: self.owner,
+ response_destination: msg.response_destination,
+ forward_ton_amount: msg.forward_ton_amount,
+ forward_payload: msg.forward_payload
+ }.toCell(),
+ code: init.code,
+ data: init.data
+ });
+ }
+
+ receive(msg: TokenTransferInternal) { // 0x178d4519
+ let ctx: Context = context();
+ if (ctx.sender != self.master) {
+ let sinit: StateInit = initOf JettonDefaultWallet(msg.from, self.master);
+ require(contractAddress(sinit) == ctx.sender, "Invalid sender!");
+ }
+
+ // Update balance
+ self.balance = self.balance + msg.amount;
+ require(self.balance >= 0, "Invalid balance");
+
+ // Get value for gas
+ let msg_value: Int = self.msg_value(ctx.value);
+ let fwd_fee: Int = ctx.readForwardFee();
+ if (msg.forward_ton_amount > 0) {
+ msg_value = msg_value - msg.forward_ton_amount - fwd_fee;
+ send(SendParameters{
+ to: self.owner,
+ value: msg.forward_ton_amount,
+ mode: SendPayGasSeparately,
+ bounce: false,
+ body: TokenNotification { // 0x7362d09c -- Remind the new Owner
+ query_id: msg.query_id,
+ amount: msg.amount,
+ from: msg.from,
+ forward_payload: msg.forward_payload
+ }.toCell()
+ });
+ }
+
+ // 0xd53276db -- Cashback to the original Sender
+ if (msg.response_destination != null && msg_value > 0) {
+ send(SendParameters {
+ to: msg.response_destination!!,
+ value: msg_value,
+ bounce: false,
+ body: TokenExcesses { query_id: msg.query_id }.toCell(),
+ mode: SendPayGasSeparately
+ });
+ }
+ }
+
+ receive(msg: TokenBurn) {
+ let ctx: Context = context();
+ require(ctx.sender == self.owner, "Invalid sender"); // Check sender
+
+ self.balance = self.balance - msg.amount; // Update balance
+ require(self.balance >= 0, "Invalid balance");
+
+ let fwd_fee: Int = ctx.readForwardFee(); // Gas checks
+ require(ctx.value > fwd_fee + 2 * self.gasConsumption + self.minTonsForStorage, "Invalid value - Burn");
+
+ // Burn tokens
+ send(SendParameters{
+ to: self.master,
+ value: 0,
+ mode: SendRemainingValue,
+ bounce: true,
+ body: TokenBurnNotification{
+ query_id: msg.query_id,
+ amount: msg.amount,
+ sender: self.owner,
+ response_destination: msg.response_destination!!
+ }.toCell()
+ });
+ }
+
+
+ fun msg_value(value: Int): Int {
+ let msg_value: Int = value;
+ let ton_balance_before_msg: Int = myBalance() - msg_value;
+ let storage_fee: Int = self.minTonsForStorage - min(ton_balance_before_msg, self.minTonsForStorage);
+ msg_value = msg_value - (storage_fee + self.gasConsumption);
+ return msg_value;
+ }
+
+ bounced(msg: bounced) {
+ self.balance = self.balance + msg.amount;
+ }
+
+ bounced(msg: bounced) {
+ self.balance = self.balance + msg.amount;
+ }
+
+ get fun get_wallet_data(): JettonWalletData {
+ return JettonWalletData{
+ balance: self.balance,
+ owner: self.owner,
+ master: self.master,
+ code: (initOf JettonDefaultWallet(self.owner, self.master)).code
+ };
+ }
+}
diff --git a/apps/jetton/src/contract/jetton_JettonDefaultWallet.ts b/apps/jetton/src/contract/jetton_JettonDefaultWallet.ts
new file mode 100644
index 0000000..db821d0
--- /dev/null
+++ b/apps/jetton/src/contract/jetton_JettonDefaultWallet.ts
@@ -0,0 +1,1096 @@
+// @ts-nocheck
+
+import {
+ Cell,
+ Slice,
+ Address,
+ Builder,
+ beginCell,
+ ComputeError,
+ TupleItem,
+ TupleReader,
+ Dictionary,
+ contractAddress,
+ ContractProvider,
+ Sender,
+ Contract,
+ ContractABI,
+ ABIType,
+ ABIGetter,
+ ABIReceiver,
+ TupleBuilder,
+ DictionaryValue
+} from '@ton/core';
+
+export type StateInit = {
+ $$type: 'StateInit';
+ code: Cell;
+ data: Cell;
+}
+
+export function storeStateInit(src: StateInit) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeRef(src.code);
+ b_0.storeRef(src.data);
+ };
+}
+
+export function loadStateInit(slice: Slice) {
+ let sc_0 = slice;
+ let _code = sc_0.loadRef();
+ let _data = sc_0.loadRef();
+ return { $$type: 'StateInit' as const, code: _code, data: _data };
+}
+
+function loadTupleStateInit(source: TupleReader) {
+ let _code = source.readCell();
+ let _data = source.readCell();
+ return { $$type: 'StateInit' as const, code: _code, data: _data };
+}
+
+function storeTupleStateInit(source: StateInit) {
+ let builder = new TupleBuilder();
+ builder.writeCell(source.code);
+ builder.writeCell(source.data);
+ return builder.build();
+}
+
+function dictValueParserStateInit(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeStateInit(src)).endCell());
+ },
+ parse: (src) => {
+ return loadStateInit(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type Context = {
+ $$type: 'Context';
+ bounced: boolean;
+ sender: Address;
+ value: bigint;
+ raw: Cell;
+}
+
+export function storeContext(src: Context) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeBit(src.bounced);
+ b_0.storeAddress(src.sender);
+ b_0.storeInt(src.value, 257);
+ b_0.storeRef(src.raw);
+ };
+}
+
+export function loadContext(slice: Slice) {
+ let sc_0 = slice;
+ let _bounced = sc_0.loadBit();
+ let _sender = sc_0.loadAddress();
+ let _value = sc_0.loadIntBig(257);
+ let _raw = sc_0.loadRef();
+ return { $$type: 'Context' as const, bounced: _bounced, sender: _sender, value: _value, raw: _raw };
+}
+
+function loadTupleContext(source: TupleReader) {
+ let _bounced = source.readBoolean();
+ let _sender = source.readAddress();
+ let _value = source.readBigNumber();
+ let _raw = source.readCell();
+ return { $$type: 'Context' as const, bounced: _bounced, sender: _sender, value: _value, raw: _raw };
+}
+
+function storeTupleContext(source: Context) {
+ let builder = new TupleBuilder();
+ builder.writeBoolean(source.bounced);
+ builder.writeAddress(source.sender);
+ builder.writeNumber(source.value);
+ builder.writeSlice(source.raw);
+ return builder.build();
+}
+
+function dictValueParserContext(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeContext(src)).endCell());
+ },
+ parse: (src) => {
+ return loadContext(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type SendParameters = {
+ $$type: 'SendParameters';
+ bounce: boolean;
+ to: Address;
+ value: bigint;
+ mode: bigint;
+ body: Cell | null;
+ code: Cell | null;
+ data: Cell | null;
+}
+
+export function storeSendParameters(src: SendParameters) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeBit(src.bounce);
+ b_0.storeAddress(src.to);
+ b_0.storeInt(src.value, 257);
+ b_0.storeInt(src.mode, 257);
+ if (src.body !== null && src.body !== undefined) { b_0.storeBit(true).storeRef(src.body); } else { b_0.storeBit(false); }
+ if (src.code !== null && src.code !== undefined) { b_0.storeBit(true).storeRef(src.code); } else { b_0.storeBit(false); }
+ if (src.data !== null && src.data !== undefined) { b_0.storeBit(true).storeRef(src.data); } else { b_0.storeBit(false); }
+ };
+}
+
+export function loadSendParameters(slice: Slice) {
+ let sc_0 = slice;
+ let _bounce = sc_0.loadBit();
+ let _to = sc_0.loadAddress();
+ let _value = sc_0.loadIntBig(257);
+ let _mode = sc_0.loadIntBig(257);
+ let _body = sc_0.loadBit() ? sc_0.loadRef() : null;
+ let _code = sc_0.loadBit() ? sc_0.loadRef() : null;
+ let _data = sc_0.loadBit() ? sc_0.loadRef() : null;
+ return { $$type: 'SendParameters' as const, bounce: _bounce, to: _to, value: _value, mode: _mode, body: _body, code: _code, data: _data };
+}
+
+function loadTupleSendParameters(source: TupleReader) {
+ let _bounce = source.readBoolean();
+ let _to = source.readAddress();
+ let _value = source.readBigNumber();
+ let _mode = source.readBigNumber();
+ let _body = source.readCellOpt();
+ let _code = source.readCellOpt();
+ let _data = source.readCellOpt();
+ return { $$type: 'SendParameters' as const, bounce: _bounce, to: _to, value: _value, mode: _mode, body: _body, code: _code, data: _data };
+}
+
+function storeTupleSendParameters(source: SendParameters) {
+ let builder = new TupleBuilder();
+ builder.writeBoolean(source.bounce);
+ builder.writeAddress(source.to);
+ builder.writeNumber(source.value);
+ builder.writeNumber(source.mode);
+ builder.writeCell(source.body);
+ builder.writeCell(source.code);
+ builder.writeCell(source.data);
+ return builder.build();
+}
+
+function dictValueParserSendParameters(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeSendParameters(src)).endCell());
+ },
+ parse: (src) => {
+ return loadSendParameters(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type ChangeOwner = {
+ $$type: 'ChangeOwner';
+ queryId: bigint;
+ newOwner: Address;
+}
+
+export function storeChangeOwner(src: ChangeOwner) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(2174598809, 32);
+ b_0.storeUint(src.queryId, 64);
+ b_0.storeAddress(src.newOwner);
+ };
+}
+
+export function loadChangeOwner(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 2174598809) { throw Error('Invalid prefix'); }
+ let _queryId = sc_0.loadUintBig(64);
+ let _newOwner = sc_0.loadAddress();
+ return { $$type: 'ChangeOwner' as const, queryId: _queryId, newOwner: _newOwner };
+}
+
+function loadTupleChangeOwner(source: TupleReader) {
+ let _queryId = source.readBigNumber();
+ let _newOwner = source.readAddress();
+ return { $$type: 'ChangeOwner' as const, queryId: _queryId, newOwner: _newOwner };
+}
+
+function storeTupleChangeOwner(source: ChangeOwner) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.queryId);
+ builder.writeAddress(source.newOwner);
+ return builder.build();
+}
+
+function dictValueParserChangeOwner(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeChangeOwner(src)).endCell());
+ },
+ parse: (src) => {
+ return loadChangeOwner(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type ChangeOwnerOk = {
+ $$type: 'ChangeOwnerOk';
+ queryId: bigint;
+ newOwner: Address;
+}
+
+export function storeChangeOwnerOk(src: ChangeOwnerOk) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(846932810, 32);
+ b_0.storeUint(src.queryId, 64);
+ b_0.storeAddress(src.newOwner);
+ };
+}
+
+export function loadChangeOwnerOk(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 846932810) { throw Error('Invalid prefix'); }
+ let _queryId = sc_0.loadUintBig(64);
+ let _newOwner = sc_0.loadAddress();
+ return { $$type: 'ChangeOwnerOk' as const, queryId: _queryId, newOwner: _newOwner };
+}
+
+function loadTupleChangeOwnerOk(source: TupleReader) {
+ let _queryId = source.readBigNumber();
+ let _newOwner = source.readAddress();
+ return { $$type: 'ChangeOwnerOk' as const, queryId: _queryId, newOwner: _newOwner };
+}
+
+function storeTupleChangeOwnerOk(source: ChangeOwnerOk) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.queryId);
+ builder.writeAddress(source.newOwner);
+ return builder.build();
+}
+
+function dictValueParserChangeOwnerOk(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeChangeOwnerOk(src)).endCell());
+ },
+ parse: (src) => {
+ return loadChangeOwnerOk(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type JettonData = {
+ $$type: 'JettonData';
+ total_supply: bigint;
+ mintable: boolean;
+ owner: Address;
+ content: Cell;
+ wallet_code: Cell;
+}
+
+export function storeJettonData(src: JettonData) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeInt(src.total_supply, 257);
+ b_0.storeBit(src.mintable);
+ b_0.storeAddress(src.owner);
+ b_0.storeRef(src.content);
+ b_0.storeRef(src.wallet_code);
+ };
+}
+
+export function loadJettonData(slice: Slice) {
+ let sc_0 = slice;
+ let _total_supply = sc_0.loadIntBig(257);
+ let _mintable = sc_0.loadBit();
+ let _owner = sc_0.loadAddress();
+ let _content = sc_0.loadRef();
+ let _wallet_code = sc_0.loadRef();
+ return { $$type: 'JettonData' as const, total_supply: _total_supply, mintable: _mintable, owner: _owner, content: _content, wallet_code: _wallet_code };
+}
+
+function loadTupleJettonData(source: TupleReader) {
+ let _total_supply = source.readBigNumber();
+ let _mintable = source.readBoolean();
+ let _owner = source.readAddress();
+ let _content = source.readCell();
+ let _wallet_code = source.readCell();
+ return { $$type: 'JettonData' as const, total_supply: _total_supply, mintable: _mintable, owner: _owner, content: _content, wallet_code: _wallet_code };
+}
+
+function storeTupleJettonData(source: JettonData) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.total_supply);
+ builder.writeBoolean(source.mintable);
+ builder.writeAddress(source.owner);
+ builder.writeCell(source.content);
+ builder.writeCell(source.wallet_code);
+ return builder.build();
+}
+
+function dictValueParserJettonData(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeJettonData(src)).endCell());
+ },
+ parse: (src) => {
+ return loadJettonData(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type JettonWalletData = {
+ $$type: 'JettonWalletData';
+ balance: bigint;
+ owner: Address;
+ master: Address;
+ code: Cell;
+}
+
+export function storeJettonWalletData(src: JettonWalletData) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeInt(src.balance, 257);
+ b_0.storeAddress(src.owner);
+ b_0.storeAddress(src.master);
+ b_0.storeRef(src.code);
+ };
+}
+
+export function loadJettonWalletData(slice: Slice) {
+ let sc_0 = slice;
+ let _balance = sc_0.loadIntBig(257);
+ let _owner = sc_0.loadAddress();
+ let _master = sc_0.loadAddress();
+ let _code = sc_0.loadRef();
+ return { $$type: 'JettonWalletData' as const, balance: _balance, owner: _owner, master: _master, code: _code };
+}
+
+function loadTupleJettonWalletData(source: TupleReader) {
+ let _balance = source.readBigNumber();
+ let _owner = source.readAddress();
+ let _master = source.readAddress();
+ let _code = source.readCell();
+ return { $$type: 'JettonWalletData' as const, balance: _balance, owner: _owner, master: _master, code: _code };
+}
+
+function storeTupleJettonWalletData(source: JettonWalletData) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.balance);
+ builder.writeAddress(source.owner);
+ builder.writeAddress(source.master);
+ builder.writeCell(source.code);
+ return builder.build();
+}
+
+function dictValueParserJettonWalletData(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeJettonWalletData(src)).endCell());
+ },
+ parse: (src) => {
+ return loadJettonWalletData(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type TokenTransfer = {
+ $$type: 'TokenTransfer';
+ query_id: bigint;
+ amount: bigint;
+ sender: Address;
+ response_destination: Address | null;
+ custom_payload: Cell | null;
+ forward_ton_amount: bigint;
+ forward_payload: Cell;
+}
+
+export function storeTokenTransfer(src: TokenTransfer) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(260734629, 32);
+ b_0.storeUint(src.query_id, 64);
+ b_0.storeCoins(src.amount);
+ b_0.storeAddress(src.sender);
+ b_0.storeAddress(src.response_destination);
+ if (src.custom_payload !== null && src.custom_payload !== undefined) { b_0.storeBit(true).storeRef(src.custom_payload); } else { b_0.storeBit(false); }
+ b_0.storeCoins(src.forward_ton_amount);
+ b_0.storeBuilder(src.forward_payload.asBuilder());
+ };
+}
+
+export function loadTokenTransfer(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 260734629) { throw Error('Invalid prefix'); }
+ let _query_id = sc_0.loadUintBig(64);
+ let _amount = sc_0.loadCoins();
+ let _sender = sc_0.loadAddress();
+ let _response_destination = sc_0.loadMaybeAddress();
+ let _custom_payload = sc_0.loadBit() ? sc_0.loadRef() : null;
+ let _forward_ton_amount = sc_0.loadCoins();
+ let _forward_payload = sc_0.asCell();
+ return { $$type: 'TokenTransfer' as const, query_id: _query_id, amount: _amount, sender: _sender, response_destination: _response_destination, custom_payload: _custom_payload, forward_ton_amount: _forward_ton_amount, forward_payload: _forward_payload };
+}
+
+function loadTupleTokenTransfer(source: TupleReader) {
+ let _query_id = source.readBigNumber();
+ let _amount = source.readBigNumber();
+ let _sender = source.readAddress();
+ let _response_destination = source.readAddressOpt();
+ let _custom_payload = source.readCellOpt();
+ let _forward_ton_amount = source.readBigNumber();
+ let _forward_payload = source.readCell();
+ return { $$type: 'TokenTransfer' as const, query_id: _query_id, amount: _amount, sender: _sender, response_destination: _response_destination, custom_payload: _custom_payload, forward_ton_amount: _forward_ton_amount, forward_payload: _forward_payload };
+}
+
+function storeTupleTokenTransfer(source: TokenTransfer) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.query_id);
+ builder.writeNumber(source.amount);
+ builder.writeAddress(source.sender);
+ builder.writeAddress(source.response_destination);
+ builder.writeCell(source.custom_payload);
+ builder.writeNumber(source.forward_ton_amount);
+ builder.writeSlice(source.forward_payload);
+ return builder.build();
+}
+
+function dictValueParserTokenTransfer(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeTokenTransfer(src)).endCell());
+ },
+ parse: (src) => {
+ return loadTokenTransfer(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type TokenTransferInternal = {
+ $$type: 'TokenTransferInternal';
+ query_id: bigint;
+ amount: bigint;
+ from: Address;
+ response_destination: Address | null;
+ forward_ton_amount: bigint;
+ forward_payload: Cell;
+}
+
+export function storeTokenTransferInternal(src: TokenTransferInternal) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(395134233, 32);
+ b_0.storeUint(src.query_id, 64);
+ b_0.storeCoins(src.amount);
+ b_0.storeAddress(src.from);
+ b_0.storeAddress(src.response_destination);
+ b_0.storeCoins(src.forward_ton_amount);
+ b_0.storeBuilder(src.forward_payload.asBuilder());
+ };
+}
+
+export function loadTokenTransferInternal(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 395134233) { throw Error('Invalid prefix'); }
+ let _query_id = sc_0.loadUintBig(64);
+ let _amount = sc_0.loadCoins();
+ let _from = sc_0.loadAddress();
+ let _response_destination = sc_0.loadMaybeAddress();
+ let _forward_ton_amount = sc_0.loadCoins();
+ let _forward_payload = sc_0.asCell();
+ return { $$type: 'TokenTransferInternal' as const, query_id: _query_id, amount: _amount, from: _from, response_destination: _response_destination, forward_ton_amount: _forward_ton_amount, forward_payload: _forward_payload };
+}
+
+function loadTupleTokenTransferInternal(source: TupleReader) {
+ let _query_id = source.readBigNumber();
+ let _amount = source.readBigNumber();
+ let _from = source.readAddress();
+ let _response_destination = source.readAddressOpt();
+ let _forward_ton_amount = source.readBigNumber();
+ let _forward_payload = source.readCell();
+ return { $$type: 'TokenTransferInternal' as const, query_id: _query_id, amount: _amount, from: _from, response_destination: _response_destination, forward_ton_amount: _forward_ton_amount, forward_payload: _forward_payload };
+}
+
+function storeTupleTokenTransferInternal(source: TokenTransferInternal) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.query_id);
+ builder.writeNumber(source.amount);
+ builder.writeAddress(source.from);
+ builder.writeAddress(source.response_destination);
+ builder.writeNumber(source.forward_ton_amount);
+ builder.writeSlice(source.forward_payload);
+ return builder.build();
+}
+
+function dictValueParserTokenTransferInternal(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeTokenTransferInternal(src)).endCell());
+ },
+ parse: (src) => {
+ return loadTokenTransferInternal(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type TokenNotification = {
+ $$type: 'TokenNotification';
+ query_id: bigint;
+ amount: bigint;
+ from: Address;
+ forward_payload: Cell;
+}
+
+export function storeTokenNotification(src: TokenNotification) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(1935855772, 32);
+ b_0.storeUint(src.query_id, 64);
+ b_0.storeCoins(src.amount);
+ b_0.storeAddress(src.from);
+ b_0.storeBuilder(src.forward_payload.asBuilder());
+ };
+}
+
+export function loadTokenNotification(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 1935855772) { throw Error('Invalid prefix'); }
+ let _query_id = sc_0.loadUintBig(64);
+ let _amount = sc_0.loadCoins();
+ let _from = sc_0.loadAddress();
+ let _forward_payload = sc_0.asCell();
+ return { $$type: 'TokenNotification' as const, query_id: _query_id, amount: _amount, from: _from, forward_payload: _forward_payload };
+}
+
+function loadTupleTokenNotification(source: TupleReader) {
+ let _query_id = source.readBigNumber();
+ let _amount = source.readBigNumber();
+ let _from = source.readAddress();
+ let _forward_payload = source.readCell();
+ return { $$type: 'TokenNotification' as const, query_id: _query_id, amount: _amount, from: _from, forward_payload: _forward_payload };
+}
+
+function storeTupleTokenNotification(source: TokenNotification) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.query_id);
+ builder.writeNumber(source.amount);
+ builder.writeAddress(source.from);
+ builder.writeSlice(source.forward_payload);
+ return builder.build();
+}
+
+function dictValueParserTokenNotification(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeTokenNotification(src)).endCell());
+ },
+ parse: (src) => {
+ return loadTokenNotification(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type TokenBurn = {
+ $$type: 'TokenBurn';
+ query_id: bigint;
+ amount: bigint;
+ response_destination: Address | null;
+ custom_payload: Cell | null;
+}
+
+export function storeTokenBurn(src: TokenBurn) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(1499400124, 32);
+ b_0.storeUint(src.query_id, 64);
+ b_0.storeCoins(src.amount);
+ b_0.storeAddress(src.response_destination);
+ if (src.custom_payload !== null && src.custom_payload !== undefined) { b_0.storeBit(true).storeRef(src.custom_payload); } else { b_0.storeBit(false); }
+ };
+}
+
+export function loadTokenBurn(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 1499400124) { throw Error('Invalid prefix'); }
+ let _query_id = sc_0.loadUintBig(64);
+ let _amount = sc_0.loadCoins();
+ let _response_destination = sc_0.loadMaybeAddress();
+ let _custom_payload = sc_0.loadBit() ? sc_0.loadRef() : null;
+ return { $$type: 'TokenBurn' as const, query_id: _query_id, amount: _amount, response_destination: _response_destination, custom_payload: _custom_payload };
+}
+
+function loadTupleTokenBurn(source: TupleReader) {
+ let _query_id = source.readBigNumber();
+ let _amount = source.readBigNumber();
+ let _response_destination = source.readAddressOpt();
+ let _custom_payload = source.readCellOpt();
+ return { $$type: 'TokenBurn' as const, query_id: _query_id, amount: _amount, response_destination: _response_destination, custom_payload: _custom_payload };
+}
+
+function storeTupleTokenBurn(source: TokenBurn) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.query_id);
+ builder.writeNumber(source.amount);
+ builder.writeAddress(source.response_destination);
+ builder.writeCell(source.custom_payload);
+ return builder.build();
+}
+
+function dictValueParserTokenBurn(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeTokenBurn(src)).endCell());
+ },
+ parse: (src) => {
+ return loadTokenBurn(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type TokenBurnNotification = {
+ $$type: 'TokenBurnNotification';
+ query_id: bigint;
+ amount: bigint;
+ sender: Address;
+ response_destination: Address | null;
+}
+
+export function storeTokenBurnNotification(src: TokenBurnNotification) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(2078119902, 32);
+ b_0.storeUint(src.query_id, 64);
+ b_0.storeCoins(src.amount);
+ b_0.storeAddress(src.sender);
+ b_0.storeAddress(src.response_destination);
+ };
+}
+
+export function loadTokenBurnNotification(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 2078119902) { throw Error('Invalid prefix'); }
+ let _query_id = sc_0.loadUintBig(64);
+ let _amount = sc_0.loadCoins();
+ let _sender = sc_0.loadAddress();
+ let _response_destination = sc_0.loadMaybeAddress();
+ return { $$type: 'TokenBurnNotification' as const, query_id: _query_id, amount: _amount, sender: _sender, response_destination: _response_destination };
+}
+
+function loadTupleTokenBurnNotification(source: TupleReader) {
+ let _query_id = source.readBigNumber();
+ let _amount = source.readBigNumber();
+ let _sender = source.readAddress();
+ let _response_destination = source.readAddressOpt();
+ return { $$type: 'TokenBurnNotification' as const, query_id: _query_id, amount: _amount, sender: _sender, response_destination: _response_destination };
+}
+
+function storeTupleTokenBurnNotification(source: TokenBurnNotification) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.query_id);
+ builder.writeNumber(source.amount);
+ builder.writeAddress(source.sender);
+ builder.writeAddress(source.response_destination);
+ return builder.build();
+}
+
+function dictValueParserTokenBurnNotification(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeTokenBurnNotification(src)).endCell());
+ },
+ parse: (src) => {
+ return loadTokenBurnNotification(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type TokenExcesses = {
+ $$type: 'TokenExcesses';
+ query_id: bigint;
+}
+
+export function storeTokenExcesses(src: TokenExcesses) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(3576854235, 32);
+ b_0.storeUint(src.query_id, 64);
+ };
+}
+
+export function loadTokenExcesses(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 3576854235) { throw Error('Invalid prefix'); }
+ let _query_id = sc_0.loadUintBig(64);
+ return { $$type: 'TokenExcesses' as const, query_id: _query_id };
+}
+
+function loadTupleTokenExcesses(source: TupleReader) {
+ let _query_id = source.readBigNumber();
+ return { $$type: 'TokenExcesses' as const, query_id: _query_id };
+}
+
+function storeTupleTokenExcesses(source: TokenExcesses) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.query_id);
+ return builder.build();
+}
+
+function dictValueParserTokenExcesses(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeTokenExcesses(src)).endCell());
+ },
+ parse: (src) => {
+ return loadTokenExcesses(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type TokenUpdateContent = {
+ $$type: 'TokenUpdateContent';
+ content: Cell;
+}
+
+export function storeTokenUpdateContent(src: TokenUpdateContent) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(2937889386, 32);
+ b_0.storeRef(src.content);
+ };
+}
+
+export function loadTokenUpdateContent(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 2937889386) { throw Error('Invalid prefix'); }
+ let _content = sc_0.loadRef();
+ return { $$type: 'TokenUpdateContent' as const, content: _content };
+}
+
+function loadTupleTokenUpdateContent(source: TupleReader) {
+ let _content = source.readCell();
+ return { $$type: 'TokenUpdateContent' as const, content: _content };
+}
+
+function storeTupleTokenUpdateContent(source: TokenUpdateContent) {
+ let builder = new TupleBuilder();
+ builder.writeCell(source.content);
+ return builder.build();
+}
+
+function dictValueParserTokenUpdateContent(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeTokenUpdateContent(src)).endCell());
+ },
+ parse: (src) => {
+ return loadTokenUpdateContent(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type ProvideWalletAddress = {
+ $$type: 'ProvideWalletAddress';
+ query_id: bigint;
+ owner_address: Address;
+ include_address: boolean;
+}
+
+export function storeProvideWalletAddress(src: ProvideWalletAddress) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(745978227, 32);
+ b_0.storeUint(src.query_id, 64);
+ b_0.storeAddress(src.owner_address);
+ b_0.storeBit(src.include_address);
+ };
+}
+
+export function loadProvideWalletAddress(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 745978227) { throw Error('Invalid prefix'); }
+ let _query_id = sc_0.loadUintBig(64);
+ let _owner_address = sc_0.loadAddress();
+ let _include_address = sc_0.loadBit();
+ return { $$type: 'ProvideWalletAddress' as const, query_id: _query_id, owner_address: _owner_address, include_address: _include_address };
+}
+
+function loadTupleProvideWalletAddress(source: TupleReader) {
+ let _query_id = source.readBigNumber();
+ let _owner_address = source.readAddress();
+ let _include_address = source.readBoolean();
+ return { $$type: 'ProvideWalletAddress' as const, query_id: _query_id, owner_address: _owner_address, include_address: _include_address };
+}
+
+function storeTupleProvideWalletAddress(source: ProvideWalletAddress) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.query_id);
+ builder.writeAddress(source.owner_address);
+ builder.writeBoolean(source.include_address);
+ return builder.build();
+}
+
+function dictValueParserProvideWalletAddress(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeProvideWalletAddress(src)).endCell());
+ },
+ parse: (src) => {
+ return loadProvideWalletAddress(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type TakeWalletAddress = {
+ $$type: 'TakeWalletAddress';
+ query_id: bigint;
+ wallet_address: Address;
+ owner_address: Cell;
+}
+
+export function storeTakeWalletAddress(src: TakeWalletAddress) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(3513996288, 32);
+ b_0.storeUint(src.query_id, 64);
+ b_0.storeAddress(src.wallet_address);
+ b_0.storeBuilder(src.owner_address.asBuilder());
+ };
+}
+
+export function loadTakeWalletAddress(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 3513996288) { throw Error('Invalid prefix'); }
+ let _query_id = sc_0.loadUintBig(64);
+ let _wallet_address = sc_0.loadAddress();
+ let _owner_address = sc_0.asCell();
+ return { $$type: 'TakeWalletAddress' as const, query_id: _query_id, wallet_address: _wallet_address, owner_address: _owner_address };
+}
+
+function loadTupleTakeWalletAddress(source: TupleReader) {
+ let _query_id = source.readBigNumber();
+ let _wallet_address = source.readAddress();
+ let _owner_address = source.readCell();
+ return { $$type: 'TakeWalletAddress' as const, query_id: _query_id, wallet_address: _wallet_address, owner_address: _owner_address };
+}
+
+function storeTupleTakeWalletAddress(source: TakeWalletAddress) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.query_id);
+ builder.writeAddress(source.wallet_address);
+ builder.writeSlice(source.owner_address);
+ return builder.build();
+}
+
+function dictValueParserTakeWalletAddress(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeTakeWalletAddress(src)).endCell());
+ },
+ parse: (src) => {
+ return loadTakeWalletAddress(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type Mint = {
+ $$type: 'Mint';
+ amount: bigint;
+ receiver: Address;
+}
+
+export function storeMint(src: Mint) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(4235234258, 32);
+ b_0.storeInt(src.amount, 257);
+ b_0.storeAddress(src.receiver);
+ };
+}
+
+export function loadMint(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 4235234258) { throw Error('Invalid prefix'); }
+ let _amount = sc_0.loadIntBig(257);
+ let _receiver = sc_0.loadAddress();
+ return { $$type: 'Mint' as const, amount: _amount, receiver: _receiver };
+}
+
+function loadTupleMint(source: TupleReader) {
+ let _amount = source.readBigNumber();
+ let _receiver = source.readAddress();
+ return { $$type: 'Mint' as const, amount: _amount, receiver: _receiver };
+}
+
+function storeTupleMint(source: Mint) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.amount);
+ builder.writeAddress(source.receiver);
+ return builder.build();
+}
+
+function dictValueParserMint(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeMint(src)).endCell());
+ },
+ parse: (src) => {
+ return loadMint(src.loadRef().beginParse());
+ }
+ }
+}
+
+type JettonDefaultWallet_init_args = {
+ $$type: 'JettonDefaultWallet_init_args';
+ owner: Address;
+ master: Address;
+}
+
+function initJettonDefaultWallet_init_args(src: JettonDefaultWallet_init_args) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeAddress(src.owner);
+ b_0.storeAddress(src.master);
+ };
+}
+
+async function JettonDefaultWallet_init(owner: Address, master: Address) {
+ const __code = Cell.fromBase64('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');
+ const __system = Cell.fromBase64('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');
+ let builder = beginCell();
+ builder.storeRef(__system);
+ builder.storeUint(0, 1);
+ initJettonDefaultWallet_init_args({ $$type: 'JettonDefaultWallet_init_args', owner, master })(builder);
+ const __data = builder.endCell();
+ return { code: __code, data: __data };
+}
+
+const JettonDefaultWallet_errors: { [key: number]: { message: string } } = {
+ 2: { message: `Stack undeflow` },
+ 3: { message: `Stack overflow` },
+ 4: { message: `Integer overflow` },
+ 5: { message: `Integer out of expected range` },
+ 6: { message: `Invalid opcode` },
+ 7: { message: `Type check error` },
+ 8: { message: `Cell overflow` },
+ 9: { message: `Cell underflow` },
+ 10: { message: `Dictionary error` },
+ 13: { message: `Out of gas error` },
+ 32: { message: `Method ID not found` },
+ 34: { message: `Action is invalid or not supported` },
+ 37: { message: `Not enough TON` },
+ 38: { message: `Not enough extra-currencies` },
+ 128: { message: `Null reference exception` },
+ 129: { message: `Invalid serialization prefix` },
+ 130: { message: `Invalid incoming message` },
+ 131: { message: `Constraints error` },
+ 132: { message: `Access denied` },
+ 133: { message: `Contract stopped` },
+ 134: { message: `Invalid argument` },
+ 135: { message: `Code of a contract was not found` },
+ 136: { message: `Invalid address` },
+ 137: { message: `Masterchain support is not enabled for this contract` },
+ 3688: { message: `Not mintable` },
+ 4429: { message: `Invalid sender` },
+ 12241: { message: `Max supply exceeded` },
+ 14534: { message: `Not owner` },
+ 16059: { message: `Invalid value` },
+ 18668: { message: `Can't Mint Anymore` },
+ 23951: { message: `Insufficient gas` },
+ 42708: { message: `Invalid sender!` },
+ 43422: { message: `Invalid value - Burn` },
+ 62972: { message: `Invalid balance` },
+}
+
+const JettonDefaultWallet_types: ABIType[] = [
+ {"name":"StateInit","header":null,"fields":[{"name":"code","type":{"kind":"simple","type":"cell","optional":false}},{"name":"data","type":{"kind":"simple","type":"cell","optional":false}}]},
+ {"name":"Context","header":null,"fields":[{"name":"bounced","type":{"kind":"simple","type":"bool","optional":false}},{"name":"sender","type":{"kind":"simple","type":"address","optional":false}},{"name":"value","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"raw","type":{"kind":"simple","type":"slice","optional":false}}]},
+ {"name":"SendParameters","header":null,"fields":[{"name":"bounce","type":{"kind":"simple","type":"bool","optional":false}},{"name":"to","type":{"kind":"simple","type":"address","optional":false}},{"name":"value","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"mode","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"body","type":{"kind":"simple","type":"cell","optional":true}},{"name":"code","type":{"kind":"simple","type":"cell","optional":true}},{"name":"data","type":{"kind":"simple","type":"cell","optional":true}}]},
+ {"name":"ChangeOwner","header":2174598809,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"newOwner","type":{"kind":"simple","type":"address","optional":false}}]},
+ {"name":"ChangeOwnerOk","header":846932810,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"newOwner","type":{"kind":"simple","type":"address","optional":false}}]},
+ {"name":"JettonData","header":null,"fields":[{"name":"total_supply","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"mintable","type":{"kind":"simple","type":"bool","optional":false}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"content","type":{"kind":"simple","type":"cell","optional":false}},{"name":"wallet_code","type":{"kind":"simple","type":"cell","optional":false}}]},
+ {"name":"JettonWalletData","header":null,"fields":[{"name":"balance","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"master","type":{"kind":"simple","type":"address","optional":false}},{"name":"code","type":{"kind":"simple","type":"cell","optional":false}}]},
+ {"name":"TokenTransfer","header":260734629,"fields":[{"name":"query_id","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"sender","type":{"kind":"simple","type":"address","optional":false}},{"name":"response_destination","type":{"kind":"simple","type":"address","optional":true}},{"name":"custom_payload","type":{"kind":"simple","type":"cell","optional":true}},{"name":"forward_ton_amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"forward_payload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},
+ {"name":"TokenTransferInternal","header":395134233,"fields":[{"name":"query_id","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"from","type":{"kind":"simple","type":"address","optional":false}},{"name":"response_destination","type":{"kind":"simple","type":"address","optional":true}},{"name":"forward_ton_amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"forward_payload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},
+ {"name":"TokenNotification","header":1935855772,"fields":[{"name":"query_id","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"from","type":{"kind":"simple","type":"address","optional":false}},{"name":"forward_payload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},
+ {"name":"TokenBurn","header":1499400124,"fields":[{"name":"query_id","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"response_destination","type":{"kind":"simple","type":"address","optional":true}},{"name":"custom_payload","type":{"kind":"simple","type":"cell","optional":true}}]},
+ {"name":"TokenBurnNotification","header":2078119902,"fields":[{"name":"query_id","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"sender","type":{"kind":"simple","type":"address","optional":false}},{"name":"response_destination","type":{"kind":"simple","type":"address","optional":true}}]},
+ {"name":"TokenExcesses","header":3576854235,"fields":[{"name":"query_id","type":{"kind":"simple","type":"uint","optional":false,"format":64}}]},
+ {"name":"TokenUpdateContent","header":2937889386,"fields":[{"name":"content","type":{"kind":"simple","type":"cell","optional":false}}]},
+ {"name":"ProvideWalletAddress","header":745978227,"fields":[{"name":"query_id","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"owner_address","type":{"kind":"simple","type":"address","optional":false}},{"name":"include_address","type":{"kind":"simple","type":"bool","optional":false}}]},
+ {"name":"TakeWalletAddress","header":3513996288,"fields":[{"name":"query_id","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"wallet_address","type":{"kind":"simple","type":"address","optional":false}},{"name":"owner_address","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},
+ {"name":"Mint","header":4235234258,"fields":[{"name":"amount","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"receiver","type":{"kind":"simple","type":"address","optional":false}}]},
+]
+
+const JettonDefaultWallet_getters: ABIGetter[] = [
+ {"name":"get_wallet_data","arguments":[],"returnType":{"kind":"simple","type":"JettonWalletData","optional":false}},
+]
+
+const JettonDefaultWallet_receivers: ABIReceiver[] = [
+ {"receiver":"internal","message":{"kind":"typed","type":"TokenTransfer"}},
+ {"receiver":"internal","message":{"kind":"typed","type":"TokenTransferInternal"}},
+ {"receiver":"internal","message":{"kind":"typed","type":"TokenBurn"}},
+]
+
+export class JettonDefaultWallet implements Contract {
+
+ static async init(owner: Address, master: Address) {
+ return await JettonDefaultWallet_init(owner, master);
+ }
+
+ static async fromInit(owner: Address, master: Address) {
+ const init = await JettonDefaultWallet_init(owner, master);
+ const address = contractAddress(0, init);
+ return new JettonDefaultWallet(address, init);
+ }
+
+ static fromAddress(address: Address) {
+ return new JettonDefaultWallet(address);
+ }
+
+ readonly address: Address;
+ readonly init?: { code: Cell, data: Cell };
+ readonly abi: ContractABI = {
+ types: JettonDefaultWallet_types,
+ getters: JettonDefaultWallet_getters,
+ receivers: JettonDefaultWallet_receivers,
+ errors: JettonDefaultWallet_errors,
+ };
+
+ private constructor(address: Address, init?: { code: Cell, data: Cell }) {
+ this.address = address;
+ this.init = init;
+ }
+
+ async send(provider: ContractProvider, via: Sender, args: { value: bigint, bounce?: boolean| null | undefined }, message: TokenTransfer | TokenTransferInternal | TokenBurn) {
+
+ let body: Cell | null = null;
+ if (message && typeof message === 'object' && !(message instanceof Slice) && message.$$type === 'TokenTransfer') {
+ body = beginCell().store(storeTokenTransfer(message)).endCell();
+ }
+ if (message && typeof message === 'object' && !(message instanceof Slice) && message.$$type === 'TokenTransferInternal') {
+ body = beginCell().store(storeTokenTransferInternal(message)).endCell();
+ }
+ if (message && typeof message === 'object' && !(message instanceof Slice) && message.$$type === 'TokenBurn') {
+ body = beginCell().store(storeTokenBurn(message)).endCell();
+ }
+ if (body === null) { throw new Error('Invalid message type'); }
+
+ await provider.internal(via, { ...args, body: body });
+
+ }
+
+ async getGetWalletData(provider: ContractProvider) {
+ let builder = new TupleBuilder();
+ let source = (await provider.get('get_wallet_data', builder.build())).stack;
+ const result = loadTupleJettonWalletData(source);
+ return result;
+ }
+
+}
diff --git a/apps/jetton/src/contract/jetton_SampleJetton.ts b/apps/jetton/src/contract/jetton_SampleJetton.ts
new file mode 100644
index 0000000..52337d3
--- /dev/null
+++ b/apps/jetton/src/contract/jetton_SampleJetton.ts
@@ -0,0 +1,1127 @@
+// @ts-nocheck
+
+import {
+ Cell,
+ Slice,
+ Address,
+ Builder,
+ beginCell,
+ ComputeError,
+ TupleItem,
+ TupleReader,
+ Dictionary,
+ contractAddress,
+ ContractProvider,
+ Sender,
+ Contract,
+ ContractABI,
+ ABIType,
+ ABIGetter,
+ ABIReceiver,
+ TupleBuilder,
+ DictionaryValue
+} from '@ton/core';
+
+export type StateInit = {
+ $$type: 'StateInit';
+ code: Cell;
+ data: Cell;
+}
+
+export function storeStateInit(src: StateInit) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeRef(src.code);
+ b_0.storeRef(src.data);
+ };
+}
+
+export function loadStateInit(slice: Slice) {
+ let sc_0 = slice;
+ let _code = sc_0.loadRef();
+ let _data = sc_0.loadRef();
+ return { $$type: 'StateInit' as const, code: _code, data: _data };
+}
+
+function loadTupleStateInit(source: TupleReader) {
+ let _code = source.readCell();
+ let _data = source.readCell();
+ return { $$type: 'StateInit' as const, code: _code, data: _data };
+}
+
+function storeTupleStateInit(source: StateInit) {
+ let builder = new TupleBuilder();
+ builder.writeCell(source.code);
+ builder.writeCell(source.data);
+ return builder.build();
+}
+
+function dictValueParserStateInit(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeStateInit(src)).endCell());
+ },
+ parse: (src) => {
+ return loadStateInit(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type Context = {
+ $$type: 'Context';
+ bounced: boolean;
+ sender: Address;
+ value: bigint;
+ raw: Cell;
+}
+
+export function storeContext(src: Context) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeBit(src.bounced);
+ b_0.storeAddress(src.sender);
+ b_0.storeInt(src.value, 257);
+ b_0.storeRef(src.raw);
+ };
+}
+
+export function loadContext(slice: Slice) {
+ let sc_0 = slice;
+ let _bounced = sc_0.loadBit();
+ let _sender = sc_0.loadAddress();
+ let _value = sc_0.loadIntBig(257);
+ let _raw = sc_0.loadRef();
+ return { $$type: 'Context' as const, bounced: _bounced, sender: _sender, value: _value, raw: _raw };
+}
+
+function loadTupleContext(source: TupleReader) {
+ let _bounced = source.readBoolean();
+ let _sender = source.readAddress();
+ let _value = source.readBigNumber();
+ let _raw = source.readCell();
+ return { $$type: 'Context' as const, bounced: _bounced, sender: _sender, value: _value, raw: _raw };
+}
+
+function storeTupleContext(source: Context) {
+ let builder = new TupleBuilder();
+ builder.writeBoolean(source.bounced);
+ builder.writeAddress(source.sender);
+ builder.writeNumber(source.value);
+ builder.writeSlice(source.raw);
+ return builder.build();
+}
+
+function dictValueParserContext(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeContext(src)).endCell());
+ },
+ parse: (src) => {
+ return loadContext(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type SendParameters = {
+ $$type: 'SendParameters';
+ bounce: boolean;
+ to: Address;
+ value: bigint;
+ mode: bigint;
+ body: Cell | null;
+ code: Cell | null;
+ data: Cell | null;
+}
+
+export function storeSendParameters(src: SendParameters) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeBit(src.bounce);
+ b_0.storeAddress(src.to);
+ b_0.storeInt(src.value, 257);
+ b_0.storeInt(src.mode, 257);
+ if (src.body !== null && src.body !== undefined) { b_0.storeBit(true).storeRef(src.body); } else { b_0.storeBit(false); }
+ if (src.code !== null && src.code !== undefined) { b_0.storeBit(true).storeRef(src.code); } else { b_0.storeBit(false); }
+ if (src.data !== null && src.data !== undefined) { b_0.storeBit(true).storeRef(src.data); } else { b_0.storeBit(false); }
+ };
+}
+
+export function loadSendParameters(slice: Slice) {
+ let sc_0 = slice;
+ let _bounce = sc_0.loadBit();
+ let _to = sc_0.loadAddress();
+ let _value = sc_0.loadIntBig(257);
+ let _mode = sc_0.loadIntBig(257);
+ let _body = sc_0.loadBit() ? sc_0.loadRef() : null;
+ let _code = sc_0.loadBit() ? sc_0.loadRef() : null;
+ let _data = sc_0.loadBit() ? sc_0.loadRef() : null;
+ return { $$type: 'SendParameters' as const, bounce: _bounce, to: _to, value: _value, mode: _mode, body: _body, code: _code, data: _data };
+}
+
+function loadTupleSendParameters(source: TupleReader) {
+ let _bounce = source.readBoolean();
+ let _to = source.readAddress();
+ let _value = source.readBigNumber();
+ let _mode = source.readBigNumber();
+ let _body = source.readCellOpt();
+ let _code = source.readCellOpt();
+ let _data = source.readCellOpt();
+ return { $$type: 'SendParameters' as const, bounce: _bounce, to: _to, value: _value, mode: _mode, body: _body, code: _code, data: _data };
+}
+
+function storeTupleSendParameters(source: SendParameters) {
+ let builder = new TupleBuilder();
+ builder.writeBoolean(source.bounce);
+ builder.writeAddress(source.to);
+ builder.writeNumber(source.value);
+ builder.writeNumber(source.mode);
+ builder.writeCell(source.body);
+ builder.writeCell(source.code);
+ builder.writeCell(source.data);
+ return builder.build();
+}
+
+function dictValueParserSendParameters(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeSendParameters(src)).endCell());
+ },
+ parse: (src) => {
+ return loadSendParameters(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type ChangeOwner = {
+ $$type: 'ChangeOwner';
+ queryId: bigint;
+ newOwner: Address;
+}
+
+export function storeChangeOwner(src: ChangeOwner) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(2174598809, 32);
+ b_0.storeUint(src.queryId, 64);
+ b_0.storeAddress(src.newOwner);
+ };
+}
+
+export function loadChangeOwner(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 2174598809) { throw Error('Invalid prefix'); }
+ let _queryId = sc_0.loadUintBig(64);
+ let _newOwner = sc_0.loadAddress();
+ return { $$type: 'ChangeOwner' as const, queryId: _queryId, newOwner: _newOwner };
+}
+
+function loadTupleChangeOwner(source: TupleReader) {
+ let _queryId = source.readBigNumber();
+ let _newOwner = source.readAddress();
+ return { $$type: 'ChangeOwner' as const, queryId: _queryId, newOwner: _newOwner };
+}
+
+function storeTupleChangeOwner(source: ChangeOwner) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.queryId);
+ builder.writeAddress(source.newOwner);
+ return builder.build();
+}
+
+function dictValueParserChangeOwner(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeChangeOwner(src)).endCell());
+ },
+ parse: (src) => {
+ return loadChangeOwner(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type ChangeOwnerOk = {
+ $$type: 'ChangeOwnerOk';
+ queryId: bigint;
+ newOwner: Address;
+}
+
+export function storeChangeOwnerOk(src: ChangeOwnerOk) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(846932810, 32);
+ b_0.storeUint(src.queryId, 64);
+ b_0.storeAddress(src.newOwner);
+ };
+}
+
+export function loadChangeOwnerOk(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 846932810) { throw Error('Invalid prefix'); }
+ let _queryId = sc_0.loadUintBig(64);
+ let _newOwner = sc_0.loadAddress();
+ return { $$type: 'ChangeOwnerOk' as const, queryId: _queryId, newOwner: _newOwner };
+}
+
+function loadTupleChangeOwnerOk(source: TupleReader) {
+ let _queryId = source.readBigNumber();
+ let _newOwner = source.readAddress();
+ return { $$type: 'ChangeOwnerOk' as const, queryId: _queryId, newOwner: _newOwner };
+}
+
+function storeTupleChangeOwnerOk(source: ChangeOwnerOk) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.queryId);
+ builder.writeAddress(source.newOwner);
+ return builder.build();
+}
+
+function dictValueParserChangeOwnerOk(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeChangeOwnerOk(src)).endCell());
+ },
+ parse: (src) => {
+ return loadChangeOwnerOk(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type JettonData = {
+ $$type: 'JettonData';
+ total_supply: bigint;
+ mintable: boolean;
+ owner: Address;
+ content: Cell;
+ wallet_code: Cell;
+}
+
+export function storeJettonData(src: JettonData) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeInt(src.total_supply, 257);
+ b_0.storeBit(src.mintable);
+ b_0.storeAddress(src.owner);
+ b_0.storeRef(src.content);
+ b_0.storeRef(src.wallet_code);
+ };
+}
+
+export function loadJettonData(slice: Slice) {
+ let sc_0 = slice;
+ let _total_supply = sc_0.loadIntBig(257);
+ let _mintable = sc_0.loadBit();
+ let _owner = sc_0.loadAddress();
+ let _content = sc_0.loadRef();
+ let _wallet_code = sc_0.loadRef();
+ return { $$type: 'JettonData' as const, total_supply: _total_supply, mintable: _mintable, owner: _owner, content: _content, wallet_code: _wallet_code };
+}
+
+function loadTupleJettonData(source: TupleReader) {
+ let _total_supply = source.readBigNumber();
+ let _mintable = source.readBoolean();
+ let _owner = source.readAddress();
+ let _content = source.readCell();
+ let _wallet_code = source.readCell();
+ return { $$type: 'JettonData' as const, total_supply: _total_supply, mintable: _mintable, owner: _owner, content: _content, wallet_code: _wallet_code };
+}
+
+function storeTupleJettonData(source: JettonData) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.total_supply);
+ builder.writeBoolean(source.mintable);
+ builder.writeAddress(source.owner);
+ builder.writeCell(source.content);
+ builder.writeCell(source.wallet_code);
+ return builder.build();
+}
+
+function dictValueParserJettonData(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeJettonData(src)).endCell());
+ },
+ parse: (src) => {
+ return loadJettonData(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type JettonWalletData = {
+ $$type: 'JettonWalletData';
+ balance: bigint;
+ owner: Address;
+ master: Address;
+ code: Cell;
+}
+
+export function storeJettonWalletData(src: JettonWalletData) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeInt(src.balance, 257);
+ b_0.storeAddress(src.owner);
+ b_0.storeAddress(src.master);
+ b_0.storeRef(src.code);
+ };
+}
+
+export function loadJettonWalletData(slice: Slice) {
+ let sc_0 = slice;
+ let _balance = sc_0.loadIntBig(257);
+ let _owner = sc_0.loadAddress();
+ let _master = sc_0.loadAddress();
+ let _code = sc_0.loadRef();
+ return { $$type: 'JettonWalletData' as const, balance: _balance, owner: _owner, master: _master, code: _code };
+}
+
+function loadTupleJettonWalletData(source: TupleReader) {
+ let _balance = source.readBigNumber();
+ let _owner = source.readAddress();
+ let _master = source.readAddress();
+ let _code = source.readCell();
+ return { $$type: 'JettonWalletData' as const, balance: _balance, owner: _owner, master: _master, code: _code };
+}
+
+function storeTupleJettonWalletData(source: JettonWalletData) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.balance);
+ builder.writeAddress(source.owner);
+ builder.writeAddress(source.master);
+ builder.writeCell(source.code);
+ return builder.build();
+}
+
+function dictValueParserJettonWalletData(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeJettonWalletData(src)).endCell());
+ },
+ parse: (src) => {
+ return loadJettonWalletData(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type TokenTransfer = {
+ $$type: 'TokenTransfer';
+ query_id: bigint;
+ amount: bigint;
+ sender: Address;
+ response_destination: Address | null;
+ custom_payload: Cell | null;
+ forward_ton_amount: bigint;
+ forward_payload: Cell;
+}
+
+export function storeTokenTransfer(src: TokenTransfer) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(260734629, 32);
+ b_0.storeUint(src.query_id, 64);
+ b_0.storeCoins(src.amount);
+ b_0.storeAddress(src.sender);
+ b_0.storeAddress(src.response_destination);
+ if (src.custom_payload !== null && src.custom_payload !== undefined) { b_0.storeBit(true).storeRef(src.custom_payload); } else { b_0.storeBit(false); }
+ b_0.storeCoins(src.forward_ton_amount);
+ b_0.storeBuilder(src.forward_payload.asBuilder());
+ };
+}
+
+export function loadTokenTransfer(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 260734629) { throw Error('Invalid prefix'); }
+ let _query_id = sc_0.loadUintBig(64);
+ let _amount = sc_0.loadCoins();
+ let _sender = sc_0.loadAddress();
+ let _response_destination = sc_0.loadMaybeAddress();
+ let _custom_payload = sc_0.loadBit() ? sc_0.loadRef() : null;
+ let _forward_ton_amount = sc_0.loadCoins();
+ let _forward_payload = sc_0.asCell();
+ return { $$type: 'TokenTransfer' as const, query_id: _query_id, amount: _amount, sender: _sender, response_destination: _response_destination, custom_payload: _custom_payload, forward_ton_amount: _forward_ton_amount, forward_payload: _forward_payload };
+}
+
+function loadTupleTokenTransfer(source: TupleReader) {
+ let _query_id = source.readBigNumber();
+ let _amount = source.readBigNumber();
+ let _sender = source.readAddress();
+ let _response_destination = source.readAddressOpt();
+ let _custom_payload = source.readCellOpt();
+ let _forward_ton_amount = source.readBigNumber();
+ let _forward_payload = source.readCell();
+ return { $$type: 'TokenTransfer' as const, query_id: _query_id, amount: _amount, sender: _sender, response_destination: _response_destination, custom_payload: _custom_payload, forward_ton_amount: _forward_ton_amount, forward_payload: _forward_payload };
+}
+
+function storeTupleTokenTransfer(source: TokenTransfer) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.query_id);
+ builder.writeNumber(source.amount);
+ builder.writeAddress(source.sender);
+ builder.writeAddress(source.response_destination);
+ builder.writeCell(source.custom_payload);
+ builder.writeNumber(source.forward_ton_amount);
+ builder.writeSlice(source.forward_payload);
+ return builder.build();
+}
+
+function dictValueParserTokenTransfer(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeTokenTransfer(src)).endCell());
+ },
+ parse: (src) => {
+ return loadTokenTransfer(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type TokenTransferInternal = {
+ $$type: 'TokenTransferInternal';
+ query_id: bigint;
+ amount: bigint;
+ from: Address;
+ response_destination: Address | null;
+ forward_ton_amount: bigint;
+ forward_payload: Cell;
+}
+
+export function storeTokenTransferInternal(src: TokenTransferInternal) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(395134233, 32);
+ b_0.storeUint(src.query_id, 64);
+ b_0.storeCoins(src.amount);
+ b_0.storeAddress(src.from);
+ b_0.storeAddress(src.response_destination);
+ b_0.storeCoins(src.forward_ton_amount);
+ b_0.storeBuilder(src.forward_payload.asBuilder());
+ };
+}
+
+export function loadTokenTransferInternal(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 395134233) { throw Error('Invalid prefix'); }
+ let _query_id = sc_0.loadUintBig(64);
+ let _amount = sc_0.loadCoins();
+ let _from = sc_0.loadAddress();
+ let _response_destination = sc_0.loadMaybeAddress();
+ let _forward_ton_amount = sc_0.loadCoins();
+ let _forward_payload = sc_0.asCell();
+ return { $$type: 'TokenTransferInternal' as const, query_id: _query_id, amount: _amount, from: _from, response_destination: _response_destination, forward_ton_amount: _forward_ton_amount, forward_payload: _forward_payload };
+}
+
+function loadTupleTokenTransferInternal(source: TupleReader) {
+ let _query_id = source.readBigNumber();
+ let _amount = source.readBigNumber();
+ let _from = source.readAddress();
+ let _response_destination = source.readAddressOpt();
+ let _forward_ton_amount = source.readBigNumber();
+ let _forward_payload = source.readCell();
+ return { $$type: 'TokenTransferInternal' as const, query_id: _query_id, amount: _amount, from: _from, response_destination: _response_destination, forward_ton_amount: _forward_ton_amount, forward_payload: _forward_payload };
+}
+
+function storeTupleTokenTransferInternal(source: TokenTransferInternal) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.query_id);
+ builder.writeNumber(source.amount);
+ builder.writeAddress(source.from);
+ builder.writeAddress(source.response_destination);
+ builder.writeNumber(source.forward_ton_amount);
+ builder.writeSlice(source.forward_payload);
+ return builder.build();
+}
+
+function dictValueParserTokenTransferInternal(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeTokenTransferInternal(src)).endCell());
+ },
+ parse: (src) => {
+ return loadTokenTransferInternal(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type TokenNotification = {
+ $$type: 'TokenNotification';
+ query_id: bigint;
+ amount: bigint;
+ from: Address;
+ forward_payload: Cell;
+}
+
+export function storeTokenNotification(src: TokenNotification) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(1935855772, 32);
+ b_0.storeUint(src.query_id, 64);
+ b_0.storeCoins(src.amount);
+ b_0.storeAddress(src.from);
+ b_0.storeBuilder(src.forward_payload.asBuilder());
+ };
+}
+
+export function loadTokenNotification(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 1935855772) { throw Error('Invalid prefix'); }
+ let _query_id = sc_0.loadUintBig(64);
+ let _amount = sc_0.loadCoins();
+ let _from = sc_0.loadAddress();
+ let _forward_payload = sc_0.asCell();
+ return { $$type: 'TokenNotification' as const, query_id: _query_id, amount: _amount, from: _from, forward_payload: _forward_payload };
+}
+
+function loadTupleTokenNotification(source: TupleReader) {
+ let _query_id = source.readBigNumber();
+ let _amount = source.readBigNumber();
+ let _from = source.readAddress();
+ let _forward_payload = source.readCell();
+ return { $$type: 'TokenNotification' as const, query_id: _query_id, amount: _amount, from: _from, forward_payload: _forward_payload };
+}
+
+function storeTupleTokenNotification(source: TokenNotification) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.query_id);
+ builder.writeNumber(source.amount);
+ builder.writeAddress(source.from);
+ builder.writeSlice(source.forward_payload);
+ return builder.build();
+}
+
+function dictValueParserTokenNotification(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeTokenNotification(src)).endCell());
+ },
+ parse: (src) => {
+ return loadTokenNotification(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type TokenBurn = {
+ $$type: 'TokenBurn';
+ query_id: bigint;
+ amount: bigint;
+ response_destination: Address | null;
+ custom_payload: Cell | null;
+}
+
+export function storeTokenBurn(src: TokenBurn) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(1499400124, 32);
+ b_0.storeUint(src.query_id, 64);
+ b_0.storeCoins(src.amount);
+ b_0.storeAddress(src.response_destination);
+ if (src.custom_payload !== null && src.custom_payload !== undefined) { b_0.storeBit(true).storeRef(src.custom_payload); } else { b_0.storeBit(false); }
+ };
+}
+
+export function loadTokenBurn(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 1499400124) { throw Error('Invalid prefix'); }
+ let _query_id = sc_0.loadUintBig(64);
+ let _amount = sc_0.loadCoins();
+ let _response_destination = sc_0.loadMaybeAddress();
+ let _custom_payload = sc_0.loadBit() ? sc_0.loadRef() : null;
+ return { $$type: 'TokenBurn' as const, query_id: _query_id, amount: _amount, response_destination: _response_destination, custom_payload: _custom_payload };
+}
+
+function loadTupleTokenBurn(source: TupleReader) {
+ let _query_id = source.readBigNumber();
+ let _amount = source.readBigNumber();
+ let _response_destination = source.readAddressOpt();
+ let _custom_payload = source.readCellOpt();
+ return { $$type: 'TokenBurn' as const, query_id: _query_id, amount: _amount, response_destination: _response_destination, custom_payload: _custom_payload };
+}
+
+function storeTupleTokenBurn(source: TokenBurn) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.query_id);
+ builder.writeNumber(source.amount);
+ builder.writeAddress(source.response_destination);
+ builder.writeCell(source.custom_payload);
+ return builder.build();
+}
+
+function dictValueParserTokenBurn(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeTokenBurn(src)).endCell());
+ },
+ parse: (src) => {
+ return loadTokenBurn(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type TokenBurnNotification = {
+ $$type: 'TokenBurnNotification';
+ query_id: bigint;
+ amount: bigint;
+ sender: Address;
+ response_destination: Address | null;
+}
+
+export function storeTokenBurnNotification(src: TokenBurnNotification) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(2078119902, 32);
+ b_0.storeUint(src.query_id, 64);
+ b_0.storeCoins(src.amount);
+ b_0.storeAddress(src.sender);
+ b_0.storeAddress(src.response_destination);
+ };
+}
+
+export function loadTokenBurnNotification(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 2078119902) { throw Error('Invalid prefix'); }
+ let _query_id = sc_0.loadUintBig(64);
+ let _amount = sc_0.loadCoins();
+ let _sender = sc_0.loadAddress();
+ let _response_destination = sc_0.loadMaybeAddress();
+ return { $$type: 'TokenBurnNotification' as const, query_id: _query_id, amount: _amount, sender: _sender, response_destination: _response_destination };
+}
+
+function loadTupleTokenBurnNotification(source: TupleReader) {
+ let _query_id = source.readBigNumber();
+ let _amount = source.readBigNumber();
+ let _sender = source.readAddress();
+ let _response_destination = source.readAddressOpt();
+ return { $$type: 'TokenBurnNotification' as const, query_id: _query_id, amount: _amount, sender: _sender, response_destination: _response_destination };
+}
+
+function storeTupleTokenBurnNotification(source: TokenBurnNotification) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.query_id);
+ builder.writeNumber(source.amount);
+ builder.writeAddress(source.sender);
+ builder.writeAddress(source.response_destination);
+ return builder.build();
+}
+
+function dictValueParserTokenBurnNotification(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeTokenBurnNotification(src)).endCell());
+ },
+ parse: (src) => {
+ return loadTokenBurnNotification(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type TokenExcesses = {
+ $$type: 'TokenExcesses';
+ query_id: bigint;
+}
+
+export function storeTokenExcesses(src: TokenExcesses) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(3576854235, 32);
+ b_0.storeUint(src.query_id, 64);
+ };
+}
+
+export function loadTokenExcesses(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 3576854235) { throw Error('Invalid prefix'); }
+ let _query_id = sc_0.loadUintBig(64);
+ return { $$type: 'TokenExcesses' as const, query_id: _query_id };
+}
+
+function loadTupleTokenExcesses(source: TupleReader) {
+ let _query_id = source.readBigNumber();
+ return { $$type: 'TokenExcesses' as const, query_id: _query_id };
+}
+
+function storeTupleTokenExcesses(source: TokenExcesses) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.query_id);
+ return builder.build();
+}
+
+function dictValueParserTokenExcesses(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeTokenExcesses(src)).endCell());
+ },
+ parse: (src) => {
+ return loadTokenExcesses(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type TokenUpdateContent = {
+ $$type: 'TokenUpdateContent';
+ content: Cell;
+}
+
+export function storeTokenUpdateContent(src: TokenUpdateContent) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(2937889386, 32);
+ b_0.storeRef(src.content);
+ };
+}
+
+export function loadTokenUpdateContent(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 2937889386) { throw Error('Invalid prefix'); }
+ let _content = sc_0.loadRef();
+ return { $$type: 'TokenUpdateContent' as const, content: _content };
+}
+
+function loadTupleTokenUpdateContent(source: TupleReader) {
+ let _content = source.readCell();
+ return { $$type: 'TokenUpdateContent' as const, content: _content };
+}
+
+function storeTupleTokenUpdateContent(source: TokenUpdateContent) {
+ let builder = new TupleBuilder();
+ builder.writeCell(source.content);
+ return builder.build();
+}
+
+function dictValueParserTokenUpdateContent(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeTokenUpdateContent(src)).endCell());
+ },
+ parse: (src) => {
+ return loadTokenUpdateContent(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type ProvideWalletAddress = {
+ $$type: 'ProvideWalletAddress';
+ query_id: bigint;
+ owner_address: Address;
+ include_address: boolean;
+}
+
+export function storeProvideWalletAddress(src: ProvideWalletAddress) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(745978227, 32);
+ b_0.storeUint(src.query_id, 64);
+ b_0.storeAddress(src.owner_address);
+ b_0.storeBit(src.include_address);
+ };
+}
+
+export function loadProvideWalletAddress(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 745978227) { throw Error('Invalid prefix'); }
+ let _query_id = sc_0.loadUintBig(64);
+ let _owner_address = sc_0.loadAddress();
+ let _include_address = sc_0.loadBit();
+ return { $$type: 'ProvideWalletAddress' as const, query_id: _query_id, owner_address: _owner_address, include_address: _include_address };
+}
+
+function loadTupleProvideWalletAddress(source: TupleReader) {
+ let _query_id = source.readBigNumber();
+ let _owner_address = source.readAddress();
+ let _include_address = source.readBoolean();
+ return { $$type: 'ProvideWalletAddress' as const, query_id: _query_id, owner_address: _owner_address, include_address: _include_address };
+}
+
+function storeTupleProvideWalletAddress(source: ProvideWalletAddress) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.query_id);
+ builder.writeAddress(source.owner_address);
+ builder.writeBoolean(source.include_address);
+ return builder.build();
+}
+
+function dictValueParserProvideWalletAddress(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeProvideWalletAddress(src)).endCell());
+ },
+ parse: (src) => {
+ return loadProvideWalletAddress(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type TakeWalletAddress = {
+ $$type: 'TakeWalletAddress';
+ query_id: bigint;
+ wallet_address: Address;
+ owner_address: Cell;
+}
+
+export function storeTakeWalletAddress(src: TakeWalletAddress) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(3513996288, 32);
+ b_0.storeUint(src.query_id, 64);
+ b_0.storeAddress(src.wallet_address);
+ b_0.storeBuilder(src.owner_address.asBuilder());
+ };
+}
+
+export function loadTakeWalletAddress(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 3513996288) { throw Error('Invalid prefix'); }
+ let _query_id = sc_0.loadUintBig(64);
+ let _wallet_address = sc_0.loadAddress();
+ let _owner_address = sc_0.asCell();
+ return { $$type: 'TakeWalletAddress' as const, query_id: _query_id, wallet_address: _wallet_address, owner_address: _owner_address };
+}
+
+function loadTupleTakeWalletAddress(source: TupleReader) {
+ let _query_id = source.readBigNumber();
+ let _wallet_address = source.readAddress();
+ let _owner_address = source.readCell();
+ return { $$type: 'TakeWalletAddress' as const, query_id: _query_id, wallet_address: _wallet_address, owner_address: _owner_address };
+}
+
+function storeTupleTakeWalletAddress(source: TakeWalletAddress) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.query_id);
+ builder.writeAddress(source.wallet_address);
+ builder.writeSlice(source.owner_address);
+ return builder.build();
+}
+
+function dictValueParserTakeWalletAddress(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeTakeWalletAddress(src)).endCell());
+ },
+ parse: (src) => {
+ return loadTakeWalletAddress(src.loadRef().beginParse());
+ }
+ }
+}
+
+export type Mint = {
+ $$type: 'Mint';
+ amount: bigint;
+ receiver: Address;
+}
+
+export function storeMint(src: Mint) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeUint(4235234258, 32);
+ b_0.storeInt(src.amount, 257);
+ b_0.storeAddress(src.receiver);
+ };
+}
+
+export function loadMint(slice: Slice) {
+ let sc_0 = slice;
+ if (sc_0.loadUint(32) !== 4235234258) { throw Error('Invalid prefix'); }
+ let _amount = sc_0.loadIntBig(257);
+ let _receiver = sc_0.loadAddress();
+ return { $$type: 'Mint' as const, amount: _amount, receiver: _receiver };
+}
+
+function loadTupleMint(source: TupleReader) {
+ let _amount = source.readBigNumber();
+ let _receiver = source.readAddress();
+ return { $$type: 'Mint' as const, amount: _amount, receiver: _receiver };
+}
+
+function storeTupleMint(source: Mint) {
+ let builder = new TupleBuilder();
+ builder.writeNumber(source.amount);
+ builder.writeAddress(source.receiver);
+ return builder.build();
+}
+
+function dictValueParserMint(): DictionaryValue {
+ return {
+ serialize: (src, buidler) => {
+ buidler.storeRef(beginCell().store(storeMint(src)).endCell());
+ },
+ parse: (src) => {
+ return loadMint(src.loadRef().beginParse());
+ }
+ }
+}
+
+type SampleJetton_init_args = {
+ $$type: 'SampleJetton_init_args';
+ owner: Address;
+ content: Cell;
+ max_supply: bigint;
+}
+
+function initSampleJetton_init_args(src: SampleJetton_init_args) {
+ return (builder: Builder) => {
+ let b_0 = builder;
+ b_0.storeAddress(src.owner);
+ b_0.storeRef(src.content);
+ b_0.storeInt(src.max_supply, 257);
+ };
+}
+
+async function SampleJetton_init(owner: Address, content: Cell, max_supply: bigint) {
+ const __code = Cell.fromBase64('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');
+ const __system = Cell.fromBase64('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');
+ let builder = beginCell();
+ builder.storeRef(__system);
+ builder.storeUint(0, 1);
+ initSampleJetton_init_args({ $$type: 'SampleJetton_init_args', owner, content, max_supply })(builder);
+ const __data = builder.endCell();
+ return { code: __code, data: __data };
+}
+
+const SampleJetton_errors: { [key: number]: { message: string } } = {
+ 2: { message: `Stack undeflow` },
+ 3: { message: `Stack overflow` },
+ 4: { message: `Integer overflow` },
+ 5: { message: `Integer out of expected range` },
+ 6: { message: `Invalid opcode` },
+ 7: { message: `Type check error` },
+ 8: { message: `Cell overflow` },
+ 9: { message: `Cell underflow` },
+ 10: { message: `Dictionary error` },
+ 13: { message: `Out of gas error` },
+ 32: { message: `Method ID not found` },
+ 34: { message: `Action is invalid or not supported` },
+ 37: { message: `Not enough TON` },
+ 38: { message: `Not enough extra-currencies` },
+ 128: { message: `Null reference exception` },
+ 129: { message: `Invalid serialization prefix` },
+ 130: { message: `Invalid incoming message` },
+ 131: { message: `Constraints error` },
+ 132: { message: `Access denied` },
+ 133: { message: `Contract stopped` },
+ 134: { message: `Invalid argument` },
+ 135: { message: `Code of a contract was not found` },
+ 136: { message: `Invalid address` },
+ 137: { message: `Masterchain support is not enabled for this contract` },
+ 3688: { message: `Not mintable` },
+ 4429: { message: `Invalid sender` },
+ 12241: { message: `Max supply exceeded` },
+ 14534: { message: `Not owner` },
+ 16059: { message: `Invalid value` },
+ 18668: { message: `Can't Mint Anymore` },
+ 23951: { message: `Insufficient gas` },
+ 42708: { message: `Invalid sender!` },
+ 43422: { message: `Invalid value - Burn` },
+ 62972: { message: `Invalid balance` },
+}
+
+const SampleJetton_types: ABIType[] = [
+ {"name":"StateInit","header":null,"fields":[{"name":"code","type":{"kind":"simple","type":"cell","optional":false}},{"name":"data","type":{"kind":"simple","type":"cell","optional":false}}]},
+ {"name":"Context","header":null,"fields":[{"name":"bounced","type":{"kind":"simple","type":"bool","optional":false}},{"name":"sender","type":{"kind":"simple","type":"address","optional":false}},{"name":"value","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"raw","type":{"kind":"simple","type":"slice","optional":false}}]},
+ {"name":"SendParameters","header":null,"fields":[{"name":"bounce","type":{"kind":"simple","type":"bool","optional":false}},{"name":"to","type":{"kind":"simple","type":"address","optional":false}},{"name":"value","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"mode","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"body","type":{"kind":"simple","type":"cell","optional":true}},{"name":"code","type":{"kind":"simple","type":"cell","optional":true}},{"name":"data","type":{"kind":"simple","type":"cell","optional":true}}]},
+ {"name":"ChangeOwner","header":2174598809,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"newOwner","type":{"kind":"simple","type":"address","optional":false}}]},
+ {"name":"ChangeOwnerOk","header":846932810,"fields":[{"name":"queryId","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"newOwner","type":{"kind":"simple","type":"address","optional":false}}]},
+ {"name":"JettonData","header":null,"fields":[{"name":"total_supply","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"mintable","type":{"kind":"simple","type":"bool","optional":false}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"content","type":{"kind":"simple","type":"cell","optional":false}},{"name":"wallet_code","type":{"kind":"simple","type":"cell","optional":false}}]},
+ {"name":"JettonWalletData","header":null,"fields":[{"name":"balance","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"owner","type":{"kind":"simple","type":"address","optional":false}},{"name":"master","type":{"kind":"simple","type":"address","optional":false}},{"name":"code","type":{"kind":"simple","type":"cell","optional":false}}]},
+ {"name":"TokenTransfer","header":260734629,"fields":[{"name":"query_id","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"sender","type":{"kind":"simple","type":"address","optional":false}},{"name":"response_destination","type":{"kind":"simple","type":"address","optional":true}},{"name":"custom_payload","type":{"kind":"simple","type":"cell","optional":true}},{"name":"forward_ton_amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"forward_payload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},
+ {"name":"TokenTransferInternal","header":395134233,"fields":[{"name":"query_id","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"from","type":{"kind":"simple","type":"address","optional":false}},{"name":"response_destination","type":{"kind":"simple","type":"address","optional":true}},{"name":"forward_ton_amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"forward_payload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},
+ {"name":"TokenNotification","header":1935855772,"fields":[{"name":"query_id","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"from","type":{"kind":"simple","type":"address","optional":false}},{"name":"forward_payload","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},
+ {"name":"TokenBurn","header":1499400124,"fields":[{"name":"query_id","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"response_destination","type":{"kind":"simple","type":"address","optional":true}},{"name":"custom_payload","type":{"kind":"simple","type":"cell","optional":true}}]},
+ {"name":"TokenBurnNotification","header":2078119902,"fields":[{"name":"query_id","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"amount","type":{"kind":"simple","type":"uint","optional":false,"format":"coins"}},{"name":"sender","type":{"kind":"simple","type":"address","optional":false}},{"name":"response_destination","type":{"kind":"simple","type":"address","optional":true}}]},
+ {"name":"TokenExcesses","header":3576854235,"fields":[{"name":"query_id","type":{"kind":"simple","type":"uint","optional":false,"format":64}}]},
+ {"name":"TokenUpdateContent","header":2937889386,"fields":[{"name":"content","type":{"kind":"simple","type":"cell","optional":false}}]},
+ {"name":"ProvideWalletAddress","header":745978227,"fields":[{"name":"query_id","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"owner_address","type":{"kind":"simple","type":"address","optional":false}},{"name":"include_address","type":{"kind":"simple","type":"bool","optional":false}}]},
+ {"name":"TakeWalletAddress","header":3513996288,"fields":[{"name":"query_id","type":{"kind":"simple","type":"uint","optional":false,"format":64}},{"name":"wallet_address","type":{"kind":"simple","type":"address","optional":false}},{"name":"owner_address","type":{"kind":"simple","type":"slice","optional":false,"format":"remainder"}}]},
+ {"name":"Mint","header":4235234258,"fields":[{"name":"amount","type":{"kind":"simple","type":"int","optional":false,"format":257}},{"name":"receiver","type":{"kind":"simple","type":"address","optional":false}}]},
+]
+
+const SampleJetton_getters: ABIGetter[] = [
+ {"name":"get_jetton_data","arguments":[],"returnType":{"kind":"simple","type":"JettonData","optional":false}},
+ {"name":"get_wallet_address","arguments":[{"name":"owner","type":{"kind":"simple","type":"address","optional":false}}],"returnType":{"kind":"simple","type":"address","optional":false}},
+ {"name":"owner","arguments":[],"returnType":{"kind":"simple","type":"address","optional":false}},
+]
+
+const SampleJetton_receivers: ABIReceiver[] = [
+ {"receiver":"internal","message":{"kind":"typed","type":"Mint"}},
+ {"receiver":"internal","message":{"kind":"text","text":"Mint: 100"}},
+ {"receiver":"internal","message":{"kind":"text","text":"Owner: MintClose"}},
+ {"receiver":"internal","message":{"kind":"typed","type":"TokenUpdateContent"}},
+ {"receiver":"internal","message":{"kind":"typed","type":"TokenBurnNotification"}},
+ {"receiver":"internal","message":{"kind":"typed","type":"ProvideWalletAddress"}},
+]
+
+export class SampleJetton implements Contract {
+
+ static async init(owner: Address, content: Cell, max_supply: bigint) {
+ return await SampleJetton_init(owner, content, max_supply);
+ }
+
+ static async fromInit(owner: Address, content: Cell, max_supply: bigint) {
+ const init = await SampleJetton_init(owner, content, max_supply);
+ const address = contractAddress(0, init);
+ return new SampleJetton(address, init);
+ }
+
+ static fromAddress(address: Address) {
+ return new SampleJetton(address);
+ }
+
+ readonly address: Address;
+ readonly init?: { code: Cell, data: Cell };
+ readonly abi: ContractABI = {
+ types: SampleJetton_types,
+ getters: SampleJetton_getters,
+ receivers: SampleJetton_receivers,
+ errors: SampleJetton_errors,
+ };
+
+ private constructor(address: Address, init?: { code: Cell, data: Cell }) {
+ this.address = address;
+ this.init = init;
+ }
+
+ async send(provider: ContractProvider, via: Sender, args: { value: bigint, bounce?: boolean| null | undefined }, message: Mint | 'Mint: 100' | 'Owner: MintClose' | TokenUpdateContent | TokenBurnNotification | ProvideWalletAddress) {
+
+ let body: Cell | null = null;
+ if (message && typeof message === 'object' && !(message instanceof Slice) && message.$$type === 'Mint') {
+ body = beginCell().store(storeMint(message)).endCell();
+ }
+ if (message === 'Mint: 100') {
+ body = beginCell().storeUint(0, 32).storeStringTail(message).endCell();
+ }
+ if (message === 'Owner: MintClose') {
+ body = beginCell().storeUint(0, 32).storeStringTail(message).endCell();
+ }
+ if (message && typeof message === 'object' && !(message instanceof Slice) && message.$$type === 'TokenUpdateContent') {
+ body = beginCell().store(storeTokenUpdateContent(message)).endCell();
+ }
+ if (message && typeof message === 'object' && !(message instanceof Slice) && message.$$type === 'TokenBurnNotification') {
+ body = beginCell().store(storeTokenBurnNotification(message)).endCell();
+ }
+ if (message && typeof message === 'object' && !(message instanceof Slice) && message.$$type === 'ProvideWalletAddress') {
+ body = beginCell().store(storeProvideWalletAddress(message)).endCell();
+ }
+ if (body === null) { throw new Error('Invalid message type'); }
+
+ await provider.internal(via, { ...args, body: body });
+
+ }
+
+ async getGetJettonData(provider: ContractProvider) {
+ let builder = new TupleBuilder();
+ let source = (await provider.get('get_jetton_data', builder.build())).stack;
+ const result = loadTupleJettonData(source);
+ return result;
+ }
+
+ async getGetWalletAddress(provider: ContractProvider, owner: Address) {
+ let builder = new TupleBuilder();
+ builder.writeAddress(owner);
+ let source = (await provider.get('get_wallet_address', builder.build())).stack;
+ let result = source.readAddress();
+ return result;
+ }
+
+ async getOwner(provider: ContractProvider) {
+ let builder = new TupleBuilder();
+ let source = (await provider.get('owner', builder.build())).stack;
+ let result = source.readAddress();
+ return result;
+ }
+
+}
diff --git a/apps/jetton/src/contract/messages.tact b/apps/jetton/src/contract/messages.tact
new file mode 100644
index 0000000..5023308
--- /dev/null
+++ b/apps/jetton/src/contract/messages.tact
@@ -0,0 +1,77 @@
+struct JettonData {
+ total_supply: Int;
+ mintable: Bool;
+ owner: Address;
+ content: Cell;
+ wallet_code: Cell;
+}
+
+struct JettonWalletData {
+ balance: Int;
+ owner: Address;
+ master: Address;
+ code: Cell;
+}
+
+message(0xf8a7ea5) TokenTransfer {
+ query_id: Int as uint64;
+ amount: Int as coins;
+ sender: Address;
+ response_destination: Address?;
+ custom_payload: Cell?;
+ forward_ton_amount: Int as coins;
+ forward_payload: Slice as remaining;
+}
+
+message(0x178d4519) TokenTransferInternal {
+ query_id: Int as uint64;
+ amount: Int as coins;
+ from: Address;
+ response_destination: Address?;
+ forward_ton_amount: Int as coins;
+ forward_payload: Slice as remaining;
+}
+
+message(0x7362d09c) TokenNotification {
+ query_id: Int as uint64;
+ amount: Int as coins;
+ from: Address;
+ forward_payload: Slice as remaining;
+}
+
+message(0x595f07bc) TokenBurn {
+ query_id: Int as uint64;
+ amount: Int as coins;
+ response_destination: Address?;
+ custom_payload: Cell?;
+}
+
+message(0x7bdd97de) TokenBurnNotification {
+ query_id: Int as uint64;
+ amount: Int as coins;
+ sender: Address;
+ response_destination: Address?;
+}
+
+message(0xd53276db) TokenExcesses {
+ query_id: Int as uint64;
+}
+
+message TokenUpdateContent {
+ content: Cell;
+}
+
+// ==== TEP89: Jetton Wallet Discovery ====
+message(0x2c76b973) ProvideWalletAddress {
+ query_id: Int as uint64;
+ owner_address: Address;
+ include_address: Bool;
+}
+
+// take_wallet_address#d1735400
+// query_id:uint64 wallet_address:MsgAddress owner_address:(Maybe ^MsgAddress) = InternalMsgBody;
+message(0xd1735400) TakeWalletAddress {
+ query_id: Int as uint64;
+ wallet_address: Address;
+ owner_address: Slice as remaining;
+}
diff --git a/apps/jetton/src/index.css b/apps/jetton/src/index.css
new file mode 100644
index 0000000..7e3e5f9
--- /dev/null
+++ b/apps/jetton/src/index.css
@@ -0,0 +1,89 @@
+* {
+ box-sizing: border-box;
+}
+
+:root {
+ --primary-color: rgba(255, 255, 255, 0.87);
+ --hover-color: #747bff;
+ --focus-color: #646cff;
+ --bg-color: #242424;
+ --bg-secondary: #1a1a1a;
+ --stroke-primary: #2d2d32;
+
+ font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
+ line-height: 1.5;
+ font-weight: 400;
+
+ color-scheme: light dark;
+ color: var(--primary-color);
+ background-color: var(--bg-color);
+
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+a {
+ font-weight: 500;
+ text-decoration: inherit;
+ color: var(--primary-color);
+ transition: color 0.15s;
+}
+
+a:hover{
+ color: var(--hover-color);
+}
+
+body {
+ margin: 0;
+}
+
+h1 {
+ font-size: 1.8em;
+ line-height: 1.1;
+}
+
+h4 {
+ font-size: 18px;
+ margin: 0;
+}
+
+@media (min-width: 768px) {
+ h1 {
+ font-size: 2.4em;
+ }
+
+ h4 {
+ font-size: 28px;
+ }
+}
+
+button {
+ border-radius: 8px;
+ border: 1px solid transparent;
+ padding: 0.6em 1.2em;
+ font-size: 1em;
+ font-weight: 500;
+ font-family: inherit;
+ background-color: var(--bg-secondary);
+ cursor: pointer;
+ transition: border-color 0.25s;
+ white-space: nowrap;
+}
+button:hover {
+ border-color: var(--focus-color);
+}
+button:focus,
+button:focus-visible {
+ outline: 4px auto -webkit-focus-ring-color;
+}
+
+@media (prefers-color-scheme: light) {
+ :root {
+ --primary-color: #213547;
+ --bg-color: #ffffff;
+ --bg-secondary: #f9f9f9;
+ --stroke-primary: #dde3e6;
+ }
+}
diff --git a/apps/jetton/src/main.tsx b/apps/jetton/src/main.tsx
new file mode 100644
index 0000000..f02e9ee
--- /dev/null
+++ b/apps/jetton/src/main.tsx
@@ -0,0 +1,7 @@
+import { createRoot } from 'react-dom/client';
+import App from './App.tsx';
+import './index.css';
+
+createRoot(document.getElementById('root')!).render(
+
+);
diff --git a/apps/jetton/src/stores/use-contract.tsx b/apps/jetton/src/stores/use-contract.tsx
new file mode 100644
index 0000000..4484c02
--- /dev/null
+++ b/apps/jetton/src/stores/use-contract.tsx
@@ -0,0 +1,106 @@
+import { useEffect, useState } from 'react';
+import { parseTon, getJettonDeployArguments } from '@fotonjs/core';
+
+import { contractClient, publicClient } from '../ton-clients.ts';
+
+const LS_KEY = 'jetton-contract-address';
+
+export const useContract = (userAddress?: string) => {
+ const [loading, setLoading] = useState(false);
+ const [contractAddress, setContractAddress] = useState(localStorage.getItem(LS_KEY) || undefined);
+ const [counterOwner, setCounterOwner] = useState(undefined);
+
+ const setAddress = (address: string) => {
+ localStorage.setItem(LS_KEY, address);
+ setContractAddress(address);
+ };
+
+ // Set contract address for the contractClient on initial render
+ useEffect(() => {
+ contractClient.setAddress(contractAddress);
+ }, []);
+
+ // Subscribe to the counter state with interval
+ // useEffect(() => {
+ // getCounterAmount();
+ //
+ // const interval = setInterval(getCounterAmount, 5000);
+ // return () => clearInterval(interval);
+ // }, [contractAddress]);
+
+ // const getCounterAmount = async () => {
+ // if (!contractAddress) return;
+ //
+ // const res = await contractClient.read({
+ // getter: 'owner',
+ // arguments: [],
+ // });
+ // if (res.data) {
+ // setCounterOwner(res.data);
+ // }
+ // };
+
+ const onDeploy = async () => {
+ const data = getJettonDeployArguments({
+ owner: userAddress!,
+ maxSupply: 21000000n,
+ content: {
+ name: 'Foton',
+ symbol: 'FTN',
+ description: 'Foton token',
+ },
+ });
+
+ const res = await contractClient.deploy({
+ value: parseTon('0.05'),
+ arguments: data,
+ payload: undefined,
+ });
+
+ if (res.data) {
+ setAddress(res.data.address);
+ } else {
+ alert(res.error.message);
+ }
+ };
+
+ const onMint = async () => {
+ if (!contractAddress) return;
+
+ setLoading(true);
+ const res = await contractClient.write({
+ method: 'Mint',
+ value: parseTon('0.05'),
+ payload: {
+ amount: 100n,
+ receiver: userAddress!,
+ },
+ });
+ if (res.data) {
+ await publicClient.waitForTransaction({ hash: res.data });
+ } else {
+ alert(res.error?.message || '');
+ }
+ setLoading(false);
+ };
+
+ const deployButton = (
+
+ );
+
+ const mintButton = (
+ <>
+
+ >
+ );
+
+ return {
+ contractAddress,
+ deployButton,
+ mintButton,
+ };
+};
diff --git a/apps/jetton/src/stores/user-store.ts b/apps/jetton/src/stores/user-store.ts
new file mode 100644
index 0000000..1e5ce52
--- /dev/null
+++ b/apps/jetton/src/stores/user-store.ts
@@ -0,0 +1,40 @@
+import { create } from 'zustand';
+import { walletClient } from '../ton-clients.ts';
+
+export interface UserStore {
+ address: string | undefined;
+ loading: boolean;
+ connect: () => Promise;
+ disconnect: () => Promise;
+ monitorAuth: VoidFunction;
+ activeSection: 'create' | 'minters' | 'manage';
+ changeSection: (section: 'create' | 'minters' | 'manage') => void;
+}
+
+export const useUserStore = create()((set) => ({
+ address: undefined,
+ loading: false,
+ activeSection: 'create',
+ connect: async () => {
+ set({ loading: true });
+ await walletClient.connect();
+ set({ loading: false });
+ },
+ disconnect: async () => {
+ set({ loading: true });
+ await walletClient.disconnect();
+ set({ loading: false, activeSection: 'create' });
+ },
+ monitorAuth: () => {
+ walletClient.connection.onStatusChange((wallet) => {
+ if (wallet) {
+ set({ address: wallet.account.address });
+ } else {
+ set({ address: undefined });
+ }
+ });
+ },
+ changeSection: (section) => {
+ set({ activeSection: section });
+ },
+}));
diff --git a/apps/jetton/src/ton-clients.ts b/apps/jetton/src/ton-clients.ts
new file mode 100644
index 0000000..930450c
--- /dev/null
+++ b/apps/jetton/src/ton-clients.ts
@@ -0,0 +1,20 @@
+import { createWalletClientUI, createPublicClient, createContractClient } from '@fotonjs/core';
+import { SampleJetton } from './contract';
+import { API_KEY } from './utils/constants.ts';
+
+export const walletClient = createWalletClientUI({
+ chain: 'testnet',
+ manifestUrl: 'https://counter.foton.sh/tonconnect-manifest.json',
+ restoreConnection: true,
+});
+
+export const publicClient = createPublicClient({
+ api: 'testnet',
+ authToken: API_KEY || undefined,
+});
+
+export const contractClient = createContractClient({
+ contract: SampleJetton,
+ publicClient,
+ walletClient,
+});
diff --git a/apps/jetton/src/utils/constants.ts b/apps/jetton/src/utils/constants.ts
new file mode 100644
index 0000000..d2bfbbe
--- /dev/null
+++ b/apps/jetton/src/utils/constants.ts
@@ -0,0 +1,3 @@
+// eslint-disable-next-line @typescript-eslint/ban-ts-comment
+// @ts-nocheck
+export const API_KEY = import.meta.env.VITE_API_KEY;
diff --git a/apps/jetton/src/utils/shortenAddress.ts b/apps/jetton/src/utils/shortenAddress.ts
new file mode 100644
index 0000000..f0d02df
--- /dev/null
+++ b/apps/jetton/src/utils/shortenAddress.ts
@@ -0,0 +1,4 @@
+export const shortenAddress = (address?: string) => {
+ if (!address) return '';
+ return address.slice(0, 5) + '...' + (address || '').slice(-3);
+};
diff --git a/apps/jetton/src/vite-env.d.ts b/apps/jetton/src/vite-env.d.ts
new file mode 100644
index 0000000..73162f0
--- /dev/null
+++ b/apps/jetton/src/vite-env.d.ts
@@ -0,0 +1,9 @@
+///
+
+interface ImportMetaEnv {
+ readonly VITE_API_KEY: string
+}
+
+interface ImportMeta {
+ readonly env: ImportMetaEnv
+}
diff --git a/apps/jetton/tact.config.json b/apps/jetton/tact.config.json
new file mode 100644
index 0000000..a9d3cf8
--- /dev/null
+++ b/apps/jetton/tact.config.json
@@ -0,0 +1,10 @@
+{
+ "$schema": "http://raw.githubusercontent.com/tact-lang/tact/main/grammar/configSchema.json",
+ "projects": [
+ {
+ "name": "jetton",
+ "path": "./src/contract/contract.tact",
+ "output": "./build/jetton"
+ }
+ ]
+}
diff --git a/apps/jetton/tsconfig.json b/apps/jetton/tsconfig.json
new file mode 100644
index 0000000..a7fc6fb
--- /dev/null
+++ b/apps/jetton/tsconfig.json
@@ -0,0 +1,25 @@
+{
+ "compilerOptions": {
+ "target": "ES2020",
+ "useDefineForClassFields": true,
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "module": "ESNext",
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "noEmit": true,
+ "jsx": "react-jsx",
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["src"],
+ "references": [{ "path": "./tsconfig.node.json" }]
+}
diff --git a/apps/jetton/tsconfig.node.json b/apps/jetton/tsconfig.node.json
new file mode 100644
index 0000000..97ede7e
--- /dev/null
+++ b/apps/jetton/tsconfig.node.json
@@ -0,0 +1,11 @@
+{
+ "compilerOptions": {
+ "composite": true,
+ "skipLibCheck": true,
+ "module": "ESNext",
+ "moduleResolution": "bundler",
+ "allowSyntheticDefaultImports": true,
+ "strict": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/apps/jetton/vite.config.ts b/apps/jetton/vite.config.ts
new file mode 100644
index 0000000..af2d1ff
--- /dev/null
+++ b/apps/jetton/vite.config.ts
@@ -0,0 +1,13 @@
+import { defineConfig } from 'vite';
+import react from '@vitejs/plugin-react-swc';
+import { nodePolyfills } from 'vite-plugin-node-polyfills';
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [
+ react(),
+ nodePolyfills({
+ include: ['buffer'],
+ }),
+ ],
+});
diff --git a/packages/api/package.json b/packages/api/package.json
index d9b2cdb..ba752fd 100644
--- a/packages/api/package.json
+++ b/packages/api/package.json
@@ -1,6 +1,6 @@
{
"name": "@fotonjs/api",
- "version": "0.0.3",
+ "version": "0.0.4",
"description": "Foton API: comfortable public APIs to connect to the TON blockchain",
"keywords": [
"TON",
@@ -39,11 +39,11 @@
"prepublishOnly": "pnpm run build"
},
"dependencies": {
- "openapi-fetch": "^0.9.3",
+ "openapi-fetch": "^0.9.7",
"openapi-typescript": "7.0.0-next.8",
"typescript": "^5.4.5"
},
"devDependencies": {
- "tsup": "^8.0.2"
+ "tsup": "^8.1.0"
}
}
diff --git a/packages/core/package.json b/packages/core/package.json
index bdfafec..42a3c58 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -1,6 +1,6 @@
{
"name": "@fotonjs/core",
- "version": "0.0.5",
+ "version": "0.0.6",
"description": "Foton: build TON dApps with ease",
"keywords": [
"TON",
@@ -42,11 +42,12 @@
"dependencies": {
"@fotonjs/api": "workspace:^",
"@ton/core": "^0.56.3",
- "@tonconnect/sdk": "^3.0.2",
- "@tonconnect/ui": "^2.0.2",
+ "@ton/crypto": "^3.2.0",
+ "@tonconnect/sdk": "^3.0.3",
+ "@tonconnect/ui": "^2.0.3",
"typescript": "^5.4.5"
},
"devDependencies": {
- "tsup": "^8.0.2"
+ "tsup": "^8.1.0"
}
}
diff --git a/packages/core/src/contract/abi/compose-payload.ts b/packages/core/src/contract/abi/compose-payload.ts
index 0c65789..9c3aadf 100644
--- a/packages/core/src/contract/abi/compose-payload.ts
+++ b/packages/core/src/contract/abi/compose-payload.ts
@@ -59,7 +59,7 @@ const fieldTypeValidators: Record {
@@ -114,7 +114,7 @@ const validateSchema = (schema: PayloadSchema, payload: Record,
};
// TODO: simplify the function to allow it for external use – without the contract instance or method
-export const composePayload = (contract: Contract, method: 'empty' | string, payload?: Record): string => {
+export const composePayload = (contract: Contract, method: 'empty' | string, payload?: Record): string | undefined => {
if (!contract.abi) {
throw new Error('Contract class must have an ABI');
}
diff --git a/packages/core/src/contract/deploy-contract.ts b/packages/core/src/contract/deploy-contract.ts
index 9392d02..30534f7 100644
--- a/packages/core/src/contract/deploy-contract.ts
+++ b/packages/core/src/contract/deploy-contract.ts
@@ -37,6 +37,14 @@ export async function deployContract (
const contractAddress = fullContract.address.toString();
+ let payload: string | undefined;
+ try {
+ payload = composePayload(fullContract, 'Deploy', options.payload);
+ // TODO: check for this errors and throw better (all except 'Deploy method doesn't exist')
+ } catch (_) {
+ payload = undefined;
+ }
+
try {
const res = await this._walletClient.connection.sendTransaction({
network: getNetwork(this._walletClient._chain),
@@ -47,7 +55,7 @@ export async function deployContract (
address: contractAddress,
amount: options.value.toString(),
stateInit: getStateInit(fullContract),
- payload: composePayload(fullContract, 'Deploy', options.payload),
+ payload,
}
],
});
@@ -58,6 +66,7 @@ export async function deployContract (
txHash: bocToHash(res.boc),
});
} catch (error) {
+ console.error('err', error);
// TODO: add more error handlers for different scenarios
return returnError('UserRejectedTransactionError');
}
diff --git a/packages/core/src/contract/helper-types.ts b/packages/core/src/contract/helper-types.ts
index 8335417..3f4ccac 100644
--- a/packages/core/src/contract/helper-types.ts
+++ b/packages/core/src/contract/helper-types.ts
@@ -18,6 +18,13 @@ export type GetExtendedContract = CONTRACT ex
// Types for the contract methods (actions that write state, require fees)
+// A helper method that transforms any Address type to string in a contract's payload
+type MapMethodPayload = {
+ [K in keyof T]: T[K] extends Address
+ ? string
+ : T[K];
+};
+
/**
* Takes a contract and returns a union-type of the method arguments that a contract can run.
*
@@ -69,7 +76,7 @@ export type ContractMethodNames =
export type ContractMethod
= Exclude, string | null> extends { $$type: infer TYPE } // If receiver is a message
? TYPE extends KEY // find specific message to get the arguments
- ? Omit, { $$type: TYPE }>, '$$type'> // store argument of the specific message without $$type
+ ? MapMethodPayload, { $$type: TYPE }>, '$$type'>> // store argument of the specific message without $$type, map Address to string
: undefined
: undefined; // else – receive is a string (str: String), no payload is required
diff --git a/packages/core/src/contract/index.ts b/packages/core/src/contract/index.ts
index 929f2f4..ae6fc18 100644
--- a/packages/core/src/contract/index.ts
+++ b/packages/core/src/contract/index.ts
@@ -16,3 +16,6 @@ export type {
ContractGetters,
ContractGetterReturn,
} from './helper-types.js';
+
+export { buildJettonOffChainMetadata, buildJettonOnchainMetadata } from './utils/build-jetton-metadata.js';
+export { getJettonDeployArguments } from './utils/get-jetton-deploy-arguments.js';
diff --git a/packages/core/src/contract/utils/build-jetton-metadata.ts b/packages/core/src/contract/utils/build-jetton-metadata.ts
new file mode 100644
index 0000000..3458148
--- /dev/null
+++ b/packages/core/src/contract/utils/build-jetton-metadata.ts
@@ -0,0 +1,33 @@
+import { beginCell, Cell } from '@ton/core';
+import { composeDict } from './compose-dict.js';
+
+const ONCHAIN_CONTENT_PREFIX = 0x00;
+const OFFCHAIN_CONTENT_PREFIX = 0x01;
+// const SNAKE_PREFIX = 0x00;
+
+/** Adapted from Jetton minter project: https://github.com/ton-blockchain/minter/blob/main/src/lib/jetton-minter.ts */
+export const buildJettonOffChainMetadata = (contentUri: string): Cell => {
+ return beginCell()
+ .storeInt(OFFCHAIN_CONTENT_PREFIX, 8)
+ .storeBuffer(Buffer.from(contentUri, "ascii"))
+ .endCell();
+};
+
+export type JettonMetaDataKeys = "name" | "description" | "image" | "symbol";
+
+// const jettonOnChainMetadataSpec: {
+// [key in JettonMetaDataKeys]: "utf8" | "ascii" | undefined;
+// } = {
+// name: "utf8",
+// description: "utf8",
+// image: "ascii",
+// symbol: "utf8",
+// };
+
+export const buildJettonOnchainMetadata = (data: Record): Cell => {
+ const dict = composeDict(data);
+
+ const cell = beginCell().storeInt(ONCHAIN_CONTENT_PREFIX, 8).storeDict(dict).endCell();
+
+ return cell;
+}
diff --git a/packages/core/src/contract/utils/compose-dict.ts b/packages/core/src/contract/utils/compose-dict.ts
new file mode 100644
index 0000000..ae48067
--- /dev/null
+++ b/packages/core/src/contract/utils/compose-dict.ts
@@ -0,0 +1,28 @@
+import { beginCell, Cell, Dictionary } from '@ton/core';
+import { sha256_sync } from '@ton/crypto'
+
+const textToSha256 = (str: string): bigint => {
+ return BigInt('0x' + sha256_sync(str).toString('hex'))
+}
+
+const textToCell = (value: string): Cell => {
+ return beginCell().storeUint(0, 8).storeStringTail(value).endCell()
+}
+
+const numberToCell = (value: bigint): Cell => {
+ return beginCell().storeUint(value, 64).endCell()
+}
+
+export const composeDict = (info: Record): Dictionary => {
+ const dictionary = Dictionary.empty(Dictionary.Keys.BigUint(256), Dictionary.Values.Cell());
+
+ Object.entries(info).forEach(([key, value]) => {
+ if (typeof value === 'bigint') {
+ dictionary.set(textToSha256(key), numberToCell(value));
+ return;
+ }
+ dictionary.set(textToSha256(key), textToCell(value));
+ });
+
+ return dictionary;
+};
diff --git a/packages/core/src/contract/utils/get-jetton-deploy-arguments.ts b/packages/core/src/contract/utils/get-jetton-deploy-arguments.ts
new file mode 100644
index 0000000..a67cc9e
--- /dev/null
+++ b/packages/core/src/contract/utils/get-jetton-deploy-arguments.ts
@@ -0,0 +1,31 @@
+import { Address, Cell } from '@ton/core';
+import { buildJettonOnchainMetadata } from './build-jetton-metadata.js';
+
+export interface JettonMetadata {
+ name: string;
+ description: string;
+ symbol: string;
+ image: string;
+ imageData: string;
+ uri: string;
+ // TODO: add support for number type in dictionary
+ // decimals: number;
+ amount_style: 'n' | 'n-of-total' | '%';
+ render_type: 'currency' | 'game';
+}
+
+export interface GetJettonDeployArgumentsOptions {
+ owner: string;
+ content: Partial,
+ maxSupply: bigint;
+}
+
+export type GetJettonDeployArgumentsReturn = [owner: Address, content: Cell, max_supply: bigint];
+
+export const getJettonDeployArguments = (options: GetJettonDeployArgumentsOptions): GetJettonDeployArgumentsReturn => {
+ const owner = Address.parse(options.owner);
+ const metatada = buildJettonOnchainMetadata(options.content);
+ const supply = BigInt(options.maxSupply);
+
+ return [owner, metatada, supply];
+};
diff --git a/packages/core/src/contract/write-contract.ts b/packages/core/src/contract/write-contract.ts
index aa4e2c5..cf48c0b 100644
--- a/packages/core/src/contract/write-contract.ts
+++ b/packages/core/src/contract/write-contract.ts
@@ -29,14 +29,14 @@ export async function writeContract =6.9.0'}
dependencies:
regenerator-runtime: 0.14.1
@@ -889,15 +953,6 @@ packages:
'@jridgewell/trace-mapping': 0.3.9
dev: true
- /@esbuild/aix-ppc64@0.19.12:
- resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [aix]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/aix-ppc64@0.20.2:
resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
engines: {node: '>=12'}
@@ -907,11 +962,11 @@ packages:
dev: true
optional: true
- /@esbuild/android-arm64@0.19.12:
- resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==}
+ /@esbuild/aix-ppc64@0.21.4:
+ resolution: {integrity: sha512-Zrm+B33R4LWPLjDEVnEqt2+SLTATlru1q/xYKVn8oVTbiRBGmK2VIMoIYGJDGyftnGaC788IuzGFAlb7IQ0Y8A==}
engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
+ cpu: [ppc64]
+ os: [aix]
requiresBuild: true
dev: true
optional: true
@@ -925,10 +980,10 @@ packages:
dev: true
optional: true
- /@esbuild/android-arm@0.19.12:
- resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==}
+ /@esbuild/android-arm64@0.21.4:
+ resolution: {integrity: sha512-fYFnz+ObClJ3dNiITySBUx+oNalYUT18/AryMxfovLkYWbutXsct3Wz2ZWAcGGppp+RVVX5FiXeLYGi97umisA==}
engines: {node: '>=12'}
- cpu: [arm]
+ cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
@@ -943,10 +998,10 @@ packages:
dev: true
optional: true
- /@esbuild/android-x64@0.19.12:
- resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==}
+ /@esbuild/android-arm@0.21.4:
+ resolution: {integrity: sha512-E7H/yTd8kGQfY4z9t3nRPk/hrhaCajfA3YSQSBrst8B+3uTcgsi8N+ZWYCaeIDsiVs6m65JPCaQN/DxBRclF3A==}
engines: {node: '>=12'}
- cpu: [x64]
+ cpu: [arm]
os: [android]
requiresBuild: true
dev: true
@@ -961,11 +1016,11 @@ packages:
dev: true
optional: true
- /@esbuild/darwin-arm64@0.19.12:
- resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==}
+ /@esbuild/android-x64@0.21.4:
+ resolution: {integrity: sha512-mDqmlge3hFbEPbCWxp4fM6hqq7aZfLEHZAKGP9viq9wMUBVQx202aDIfc3l+d2cKhUJM741VrCXEzRFhPDKH3Q==}
engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
+ cpu: [x64]
+ os: [android]
requiresBuild: true
dev: true
optional: true
@@ -979,10 +1034,10 @@ packages:
dev: true
optional: true
- /@esbuild/darwin-x64@0.19.12:
- resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==}
+ /@esbuild/darwin-arm64@0.21.4:
+ resolution: {integrity: sha512-72eaIrDZDSiWqpmCzVaBD58c8ea8cw/U0fq/PPOTqE3c53D0xVMRt2ooIABZ6/wj99Y+h4ksT/+I+srCDLU9TA==}
engines: {node: '>=12'}
- cpu: [x64]
+ cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
@@ -997,11 +1052,11 @@ packages:
dev: true
optional: true
- /@esbuild/freebsd-arm64@0.19.12:
- resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==}
+ /@esbuild/darwin-x64@0.21.4:
+ resolution: {integrity: sha512-uBsuwRMehGmw1JC7Vecu/upOjTsMhgahmDkWhGLWxIgUn2x/Y4tIwUZngsmVb6XyPSTXJYS4YiASKPcm9Zitag==}
engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
+ cpu: [x64]
+ os: [darwin]
requiresBuild: true
dev: true
optional: true
@@ -1015,10 +1070,10 @@ packages:
dev: true
optional: true
- /@esbuild/freebsd-x64@0.19.12:
- resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==}
+ /@esbuild/freebsd-arm64@0.21.4:
+ resolution: {integrity: sha512-8JfuSC6YMSAEIZIWNL3GtdUT5NhUA/CMUCpZdDRolUXNAXEE/Vbpe6qlGLpfThtY5NwXq8Hi4nJy4YfPh+TwAg==}
engines: {node: '>=12'}
- cpu: [x64]
+ cpu: [arm64]
os: [freebsd]
requiresBuild: true
dev: true
@@ -1033,11 +1088,11 @@ packages:
dev: true
optional: true
- /@esbuild/linux-arm64@0.19.12:
- resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==}
+ /@esbuild/freebsd-x64@0.21.4:
+ resolution: {integrity: sha512-8d9y9eQhxv4ef7JmXny7591P/PYsDFc4+STaxC1GBv0tMyCdyWfXu2jBuqRsyhY8uL2HU8uPyscgE2KxCY9imQ==}
engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
+ cpu: [x64]
+ os: [freebsd]
requiresBuild: true
dev: true
optional: true
@@ -1051,10 +1106,10 @@ packages:
dev: true
optional: true
- /@esbuild/linux-arm@0.19.12:
- resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==}
+ /@esbuild/linux-arm64@0.21.4:
+ resolution: {integrity: sha512-/GLD2orjNU50v9PcxNpYZi+y8dJ7e7/LhQukN3S4jNDXCKkyyiyAz9zDw3siZ7Eh1tRcnCHAo/WcqKMzmi4eMQ==}
engines: {node: '>=12'}
- cpu: [arm]
+ cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
@@ -1069,10 +1124,10 @@ packages:
dev: true
optional: true
- /@esbuild/linux-ia32@0.19.12:
- resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==}
+ /@esbuild/linux-arm@0.21.4:
+ resolution: {integrity: sha512-2rqFFefpYmpMs+FWjkzSgXg5vViocqpq5a1PSRgT0AvSgxoXmGF17qfGAzKedg6wAwyM7UltrKVo9kxaJLMF/g==}
engines: {node: '>=12'}
- cpu: [ia32]
+ cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
@@ -1087,10 +1142,10 @@ packages:
dev: true
optional: true
- /@esbuild/linux-loong64@0.19.12:
- resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==}
+ /@esbuild/linux-ia32@0.21.4:
+ resolution: {integrity: sha512-pNftBl7m/tFG3t2m/tSjuYeWIffzwAZT9m08+9DPLizxVOsUl8DdFzn9HvJrTQwe3wvJnwTdl92AonY36w/25g==}
engines: {node: '>=12'}
- cpu: [loong64]
+ cpu: [ia32]
os: [linux]
requiresBuild: true
dev: true
@@ -1105,10 +1160,10 @@ packages:
dev: true
optional: true
- /@esbuild/linux-mips64el@0.19.12:
- resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==}
+ /@esbuild/linux-loong64@0.21.4:
+ resolution: {integrity: sha512-cSD2gzCK5LuVX+hszzXQzlWya6c7hilO71L9h4KHwqI4qeqZ57bAtkgcC2YioXjsbfAv4lPn3qe3b00Zt+jIfQ==}
engines: {node: '>=12'}
- cpu: [mips64el]
+ cpu: [loong64]
os: [linux]
requiresBuild: true
dev: true
@@ -1123,10 +1178,10 @@ packages:
dev: true
optional: true
- /@esbuild/linux-ppc64@0.19.12:
- resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==}
+ /@esbuild/linux-mips64el@0.21.4:
+ resolution: {integrity: sha512-qtzAd3BJh7UdbiXCrg6npWLYU0YpufsV9XlufKhMhYMJGJCdfX/G6+PNd0+v877X1JG5VmjBLUiFB0o8EUSicA==}
engines: {node: '>=12'}
- cpu: [ppc64]
+ cpu: [mips64el]
os: [linux]
requiresBuild: true
dev: true
@@ -1141,10 +1196,10 @@ packages:
dev: true
optional: true
- /@esbuild/linux-riscv64@0.19.12:
- resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==}
+ /@esbuild/linux-ppc64@0.21.4:
+ resolution: {integrity: sha512-yB8AYzOTaL0D5+2a4xEy7OVvbcypvDR05MsB/VVPVA7nL4hc5w5Dyd/ddnayStDgJE59fAgNEOdLhBxjfx5+dg==}
engines: {node: '>=12'}
- cpu: [riscv64]
+ cpu: [ppc64]
os: [linux]
requiresBuild: true
dev: true
@@ -1159,10 +1214,10 @@ packages:
dev: true
optional: true
- /@esbuild/linux-s390x@0.19.12:
- resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==}
+ /@esbuild/linux-riscv64@0.21.4:
+ resolution: {integrity: sha512-Y5AgOuVzPjQdgU59ramLoqSSiXddu7F3F+LI5hYy/d1UHN7K5oLzYBDZe23QmQJ9PIVUXwOdKJ/jZahPdxzm9w==}
engines: {node: '>=12'}
- cpu: [s390x]
+ cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
@@ -1177,10 +1232,10 @@ packages:
dev: true
optional: true
- /@esbuild/linux-x64@0.19.12:
- resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==}
+ /@esbuild/linux-s390x@0.21.4:
+ resolution: {integrity: sha512-Iqc/l/FFwtt8FoTK9riYv9zQNms7B8u+vAI/rxKuN10HgQIXaPzKZc479lZ0x6+vKVQbu55GdpYpeNWzjOhgbA==}
engines: {node: '>=12'}
- cpu: [x64]
+ cpu: [s390x]
os: [linux]
requiresBuild: true
dev: true
@@ -1195,11 +1250,11 @@ packages:
dev: true
optional: true
- /@esbuild/netbsd-x64@0.19.12:
- resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==}
+ /@esbuild/linux-x64@0.21.4:
+ resolution: {integrity: sha512-Td9jv782UMAFsuLZINfUpoF5mZIbAj+jv1YVtE58rFtfvoKRiKSkRGQfHTgKamLVT/fO7203bHa3wU122V/Bdg==}
engines: {node: '>=12'}
cpu: [x64]
- os: [netbsd]
+ os: [linux]
requiresBuild: true
dev: true
optional: true
@@ -1213,11 +1268,11 @@ packages:
dev: true
optional: true
- /@esbuild/openbsd-x64@0.19.12:
- resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==}
+ /@esbuild/netbsd-x64@0.21.4:
+ resolution: {integrity: sha512-Awn38oSXxsPMQxaV0Ipb7W/gxZtk5Tx3+W+rAPdZkyEhQ6968r9NvtkjhnhbEgWXYbgV+JEONJ6PcdBS+nlcpA==}
engines: {node: '>=12'}
cpu: [x64]
- os: [openbsd]
+ os: [netbsd]
requiresBuild: true
dev: true
optional: true
@@ -1231,11 +1286,11 @@ packages:
dev: true
optional: true
- /@esbuild/sunos-x64@0.19.12:
- resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==}
+ /@esbuild/openbsd-x64@0.21.4:
+ resolution: {integrity: sha512-IsUmQeCY0aU374R82fxIPu6vkOybWIMc3hVGZ3ChRwL9hA1TwY+tS0lgFWV5+F1+1ssuvvXt3HFqe8roCip8Hg==}
engines: {node: '>=12'}
cpu: [x64]
- os: [sunos]
+ os: [openbsd]
requiresBuild: true
dev: true
optional: true
@@ -1249,11 +1304,11 @@ packages:
dev: true
optional: true
- /@esbuild/win32-arm64@0.19.12:
- resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==}
+ /@esbuild/sunos-x64@0.21.4:
+ resolution: {integrity: sha512-hsKhgZ4teLUaDA6FG/QIu2q0rI6I36tZVfM4DBZv3BG0mkMIdEnMbhc4xwLvLJSS22uWmaVkFkqWgIS0gPIm+A==}
engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
+ cpu: [x64]
+ os: [sunos]
requiresBuild: true
dev: true
optional: true
@@ -1267,10 +1322,10 @@ packages:
dev: true
optional: true
- /@esbuild/win32-ia32@0.19.12:
- resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==}
+ /@esbuild/win32-arm64@0.21.4:
+ resolution: {integrity: sha512-UUfMgMoXPoA/bvGUNfUBFLCh0gt9dxZYIx9W4rfJr7+hKe5jxxHmfOK8YSH4qsHLLN4Ck8JZ+v7Q5fIm1huErg==}
engines: {node: '>=12'}
- cpu: [ia32]
+ cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
@@ -1285,10 +1340,10 @@ packages:
dev: true
optional: true
- /@esbuild/win32-x64@0.19.12:
- resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==}
+ /@esbuild/win32-ia32@0.21.4:
+ resolution: {integrity: sha512-yIxbspZb5kGCAHWm8dexALQ9en1IYDfErzjSEq1KzXFniHv019VT3mNtTK7t8qdy4TwT6QYHI9sEZabONHg+aw==}
engines: {node: '>=12'}
- cpu: [x64]
+ cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
@@ -1303,6 +1358,15 @@ packages:
dev: true
optional: true
+ /@esbuild/win32-x64@0.21.4:
+ resolution: {integrity: sha512-sywLRD3UK/qRJt0oBwdpYLBibk7KiRfbswmWRDabuncQYSlf8aLEEUor/oP6KRz8KEG+HoiVLBhPRD5JWjS8Sg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@eslint-community/eslint-utils@4.4.0(eslint@8.57.0):
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1318,6 +1382,11 @@ packages:
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
dev: true
+ /@eslint-community/regexpp@4.10.1:
+ resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+ dev: true
+
/@eslint/eslintrc@2.1.4:
resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1387,7 +1456,7 @@ packages:
dependencies:
'@inquirer/type': 1.2.1
'@types/mute-stream': 0.0.4
- '@types/node': 20.12.11
+ '@types/node': 20.14.1
'@types/wrap-ansi': 3.0.0
ansi-escapes: 4.3.2
chalk: 4.1.2
@@ -1508,7 +1577,7 @@ packages:
react: '>=16'
dependencies:
'@types/mdx': 2.0.13
- '@types/react': 18.3.1
+ '@types/react': 18.3.3
react: 18.3.1
dev: false
@@ -1810,6 +1879,14 @@ packages:
- supports-color
dev: true
+ /@orbs-network/ton-access@2.3.3:
+ resolution: {integrity: sha512-b1miCPts7wBG9JKYgzXIRZQm/LMy5Uk1mNK8NzlcXHL3HRHJkkFbuYJGuj3IkWCiIicW3Ipp4sYnn3Fwo4oB0g==}
+ dependencies:
+ isomorphic-fetch: 3.0.0
+ transitivePeerDependencies:
+ - encoding
+ dev: true
+
/@pkgjs/parseargs@0.11.0:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
@@ -1863,16 +1940,16 @@ packages:
uri-js: 4.4.1
dev: false
- /@redocly/config@0.2.0:
- resolution: {integrity: sha512-r0TqTPVXrxdvhpbOntWnJofOx0rC7u+A+tfC0KFwMtw38QCNb3pwodVjeLa7MT5Uu+fcPxfO119yLBj0QHvBuQ==}
+ /@redocly/config@0.5.0:
+ resolution: {integrity: sha512-oA1ezWPT2tSV9CLk0FtZlViaFKtp+id3iAVeKBme1DdP4xUCdxEdP8umB21iLKdc6leRd5uGa+T5Ox4nHBAXWg==}
dev: false
- /@redocly/openapi-core@1.11.0:
- resolution: {integrity: sha512-VH10SAkDu+jVW9tDFJWWYroFxHVY9N5VS4gorXw0cK8L+LydUOQ4KiZaKbTsTF2piWmZCxngZI7sNPHMiJ4Ftg==}
+ /@redocly/openapi-core@1.14.0:
+ resolution: {integrity: sha512-sraF4PGVcc6t6CaYw5raO/GWeOaa6UjcEvH/+Qm7zp+q/fbWAMwbj+1QzaNvpMspCwF+xW6TddDcnXrCDmqYVA==}
engines: {node: '>=14.19.0', npm: '>=7.0.0'}
dependencies:
'@redocly/ajv': 8.11.0
- '@redocly/config': 0.2.0
+ '@redocly/config': 0.5.0
colorette: 1.4.0
js-levenshtein: 1.1.6
js-yaml: 4.1.0
@@ -1921,6 +1998,14 @@ packages:
dev: true
optional: true
+ /@rollup/rollup-android-arm-eabi@4.18.0:
+ resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@rollup/rollup-android-arm64@4.17.0:
resolution: {integrity: sha512-+kjt6dvxnyTIAo7oHeYseYhDyZ7xRKTNl/FoQI96PHkJVxoChldJnne/LzYqpqidoK1/0kX0/q+5rrYqjpth6w==}
cpu: [arm64]
@@ -1929,6 +2014,14 @@ packages:
dev: true
optional: true
+ /@rollup/rollup-android-arm64@4.18.0:
+ resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@rollup/rollup-darwin-arm64@4.17.0:
resolution: {integrity: sha512-Oj6Tp0unMpGTBjvNwbSRv3DopMNLu+mjBzhKTt2zLbDJ/45fB1pltr/rqrO4bE95LzuYwhYn127pop+x/pzf5w==}
cpu: [arm64]
@@ -1937,6 +2030,14 @@ packages:
dev: true
optional: true
+ /@rollup/rollup-darwin-arm64@4.18.0:
+ resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@rollup/rollup-darwin-x64@4.17.0:
resolution: {integrity: sha512-3nJx0T+yptxMd+v93rBRxSPTAVCv8szu/fGZDJiKX7kvRe9sENj2ggXjCH/KK1xZEmJOhaNo0c9sGMgGdfkvEw==}
cpu: [x64]
@@ -1945,6 +2046,14 @@ packages:
dev: true
optional: true
+ /@rollup/rollup-darwin-x64@4.18.0:
+ resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@rollup/rollup-linux-arm-gnueabihf@4.17.0:
resolution: {integrity: sha512-Vb2e8p9b2lxxgqyOlBHmp6hJMu/HSU6g//6Tbr7x5V1DlPCHWLOm37nSIVK314f+IHzORyAQSqL7+9tELxX3zQ==}
cpu: [arm]
@@ -1953,6 +2062,14 @@ packages:
dev: true
optional: true
+ /@rollup/rollup-linux-arm-gnueabihf@4.18.0:
+ resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@rollup/rollup-linux-arm-musleabihf@4.17.0:
resolution: {integrity: sha512-Md60KsmC5ZIaRq/bYYDloklgU+XLEZwS2EXXVcSpiUw+13/ZASvSWQ/P92rQ9YDCL6EIoXxuQ829JkReqdYbGg==}
cpu: [arm]
@@ -1961,6 +2078,14 @@ packages:
dev: true
optional: true
+ /@rollup/rollup-linux-arm-musleabihf@4.18.0:
+ resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@rollup/rollup-linux-arm64-gnu@4.17.0:
resolution: {integrity: sha512-zL5rBFtJ+2EGnMRm2TqKjdjgFqlotSU+ZJEN37nV+fiD3I6Gy0dUh3jBWN0wSlcXVDEJYW7YBe+/2j0N9unb2w==}
cpu: [arm64]
@@ -1969,6 +2094,14 @@ packages:
dev: true
optional: true
+ /@rollup/rollup-linux-arm64-gnu@4.18.0:
+ resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@rollup/rollup-linux-arm64-musl@4.17.0:
resolution: {integrity: sha512-s2xAyNkJqUdtRVgNK4NK4P9QttS538JuX/kfVQOdZDI5FIKVAUVdLW7qhGfmaySJ1EvN/Bnj9oPm5go9u8navg==}
cpu: [arm64]
@@ -1977,6 +2110,14 @@ packages:
dev: true
optional: true
+ /@rollup/rollup-linux-arm64-musl@4.18.0:
+ resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@rollup/rollup-linux-powerpc64le-gnu@4.17.0:
resolution: {integrity: sha512-7F99yzVT67B7IUNMjLD9QCFDCyHkyCJMS1dywZrGgVFJao4VJ9szrIEgH67cR+bXQgEaY01ur/WSL6B0jtcLyA==}
cpu: [ppc64]
@@ -1985,6 +2126,14 @@ packages:
dev: true
optional: true
+ /@rollup/rollup-linux-powerpc64le-gnu@4.18.0:
+ resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@rollup/rollup-linux-riscv64-gnu@4.17.0:
resolution: {integrity: sha512-leFtyiXisfa3Sg9pgZJwRKITWnrQfhtqDjCamnZhkZuIsk1FXmYwKoTkp6lsCgimIcneFFkHKp/yGLxDesga4g==}
cpu: [riscv64]
@@ -1993,6 +2142,14 @@ packages:
dev: true
optional: true
+ /@rollup/rollup-linux-riscv64-gnu@4.18.0:
+ resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@rollup/rollup-linux-s390x-gnu@4.17.0:
resolution: {integrity: sha512-FtOgui6qMJ4jbSXTxElsy/60LEe/3U0rXkkz2G5CJ9rbHPAvjMvI+3qF0A0fwLQ5hW+/ZC6PbnS2KfRW9JkgDQ==}
cpu: [s390x]
@@ -2001,6 +2158,14 @@ packages:
dev: true
optional: true
+ /@rollup/rollup-linux-s390x-gnu@4.18.0:
+ resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@rollup/rollup-linux-x64-gnu@4.17.0:
resolution: {integrity: sha512-v6eiam/1w3HUfU/ZjzIDodencqgrSqzlNuNtiwH7PFJHYSo1ezL0/UIzmS2lpSJF1ORNaplXeKHYmmdt81vV2g==}
cpu: [x64]
@@ -2009,6 +2174,14 @@ packages:
dev: true
optional: true
+ /@rollup/rollup-linux-x64-gnu@4.18.0:
+ resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@rollup/rollup-linux-x64-musl@4.17.0:
resolution: {integrity: sha512-OUhkSdpM5ofVlVU2k4CwVubYwiwu1a4jYWPpubzN7Vzao73GoPBowHcCfaRSFRz1SszJ3HIsk3dZYk4kzbqjgw==}
cpu: [x64]
@@ -2017,6 +2190,14 @@ packages:
dev: true
optional: true
+ /@rollup/rollup-linux-x64-musl@4.18.0:
+ resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@rollup/rollup-win32-arm64-msvc@4.17.0:
resolution: {integrity: sha512-uL7UYO/MNJPGL/yflybI+HI+n6+4vlfZmQZOCb4I+z/zy1wisHT3exh7oNQsnL6Eso0EUTEfgQ/PaGzzXf6XyQ==}
cpu: [arm64]
@@ -2025,6 +2206,14 @@ packages:
dev: true
optional: true
+ /@rollup/rollup-win32-arm64-msvc@4.18.0:
+ resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@rollup/rollup-win32-ia32-msvc@4.17.0:
resolution: {integrity: sha512-4WnSgaUiUmXILwFqREdOcqvSj6GD/7FrvSjhaDjmwakX9w4Z2F8JwiSP1AZZbuRkPqzi444UI5FPv33VKOWYFQ==}
cpu: [ia32]
@@ -2033,6 +2222,14 @@ packages:
dev: true
optional: true
+ /@rollup/rollup-win32-ia32-msvc@4.18.0:
+ resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@rollup/rollup-win32-x64-msvc@4.17.0:
resolution: {integrity: sha512-ve+D8t1prRSRnF2S3pyDtTXDlvW1Pngbz76tjgYFQW1jxVSysmQCZfPoDAo4WP+Ano8zeYp85LsArZBI12HfwQ==}
cpu: [x64]
@@ -2041,6 +2238,19 @@ packages:
dev: true
optional: true
+ /@rollup/rollup-win32-x64-msvc@4.18.0:
+ resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@scarf/scarf@1.3.0:
+ resolution: {integrity: sha512-lHKK8M5CTcpFj2hZDB3wIjb0KAbEOgDmiJGDv1WBRfQgRm/a8/XMEkG/N1iM01xgbUDsPQwi42D+dFo1XPAKew==}
+ requiresBuild: true
+ dev: true
+
/@scure/base@1.1.6:
resolution: {integrity: sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==}
dev: false
@@ -2530,6 +2740,15 @@ packages:
dev: true
optional: true
+ /@swc/core-darwin-arm64@1.5.24:
+ resolution: {integrity: sha512-M7oLOcC0sw+UTyAuL/9uyB9GeO4ZpaBbH76JSH6g1m0/yg7LYJZGRmplhDmwVSDAR5Fq4Sjoi1CksmmGkgihGA==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@swc/core-darwin-x64@1.4.17:
resolution: {integrity: sha512-WYRO9Fdzq4S/he8zjW5I95G1zcvyd9yyD3Tgi4/ic84P5XDlSMpBDpBLbr/dCPjmSg7aUXxNQqKqGkl6dQxYlA==}
engines: {node: '>=10'}
@@ -2539,6 +2758,15 @@ packages:
dev: true
optional: true
+ /@swc/core-darwin-x64@1.5.24:
+ resolution: {integrity: sha512-MfcFjGGYognpSBSos2pYUNYJSmqEhuw5ceGr6qAdME7ddbjGXliza4W6FggsM+JnWwpqa31+e7/R+GetW4WkaQ==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@swc/core-linux-arm-gnueabihf@1.4.17:
resolution: {integrity: sha512-cgbvpWOvtMH0XFjvwppUCR+Y+nf6QPaGu6AQ5hqCP+5Lv2zO5PG0RfasC4zBIjF53xgwEaaWmGP5/361P30X8Q==}
engines: {node: '>=10'}
@@ -2548,6 +2776,15 @@ packages:
dev: true
optional: true
+ /@swc/core-linux-arm-gnueabihf@1.5.24:
+ resolution: {integrity: sha512-amI2pwtcWV3E/m/nf+AQtn1LWDzKLZyjCmWd3ms7QjEueWYrY8cU1Y4Wp7wNNsxIoPOi8zek1Uj2wwFD/pttNQ==}
+ engines: {node: '>=10'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@swc/core-linux-arm64-gnu@1.4.17:
resolution: {integrity: sha512-l7zHgaIY24cF9dyQ/FOWbmZDsEj2a9gRFbmgx2u19e3FzOPuOnaopFj0fRYXXKCmtdx+anD750iBIYnTR+pq/Q==}
engines: {node: '>=10'}
@@ -2557,8 +2794,26 @@ packages:
dev: true
optional: true
- /@swc/core-linux-arm64-musl@1.4.17:
- resolution: {integrity: sha512-qhH4gr9gAlVk8MBtzXbzTP3BJyqbAfUOATGkyUtohh85fPXQYuzVlbExix3FZXTwFHNidGHY8C+ocscI7uDaYw==}
+ /@swc/core-linux-arm64-gnu@1.5.24:
+ resolution: {integrity: sha512-sTSvmqMmgT1ynH/nP75Pc51s+iT4crZagHBiDOf5cq+kudUYjda9lWMs7xkXB/TUKFHPCRK0HGunl8bkwiIbuw==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@swc/core-linux-arm64-musl@1.4.17:
+ resolution: {integrity: sha512-qhH4gr9gAlVk8MBtzXbzTP3BJyqbAfUOATGkyUtohh85fPXQYuzVlbExix3FZXTwFHNidGHY8C+ocscI7uDaYw==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@swc/core-linux-arm64-musl@1.5.24:
+ resolution: {integrity: sha512-vd2/hfOBGbrX21FxsFdXCUaffjkHvlZkeE2UMRajdXifwv79jqOHIJg3jXG1F3ZrhCghCzirFts4tAZgcG8XWg==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
@@ -2575,6 +2830,15 @@ packages:
dev: true
optional: true
+ /@swc/core-linux-x64-gnu@1.5.24:
+ resolution: {integrity: sha512-Zrdzi7NqzQxm2BvAG5KyOSBEggQ7ayrxh599AqqevJmsUXJ8o2nMiWQOBvgCGp7ye+Biz3pvZn1EnRzAp+TpUg==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@swc/core-linux-x64-musl@1.4.17:
resolution: {integrity: sha512-zQNPXAXn3nmPqv54JVEN8k2JMEcMTQ6veVuU0p5O+A7KscJq+AGle/7ZQXzpXSfUCXlLMX4wvd+rwfGhh3J4cw==}
engines: {node: '>=10'}
@@ -2584,6 +2848,15 @@ packages:
dev: true
optional: true
+ /@swc/core-linux-x64-musl@1.5.24:
+ resolution: {integrity: sha512-1F8z9NRi52jdZQCGc5sflwYSctL6omxiVmIFVp8TC9nngjQKc00TtX/JC2Eo2HwvgupkFVl5YQJidAck9YtmJw==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@swc/core-win32-arm64-msvc@1.4.17:
resolution: {integrity: sha512-z86n7EhOwyzxwm+DLE5NoLkxCTme2lq7QZlDjbQyfCxOt6isWz8rkW5QowTX8w9Rdmk34ncrjSLvnHOeLY17+w==}
engines: {node: '>=10'}
@@ -2593,6 +2866,15 @@ packages:
dev: true
optional: true
+ /@swc/core-win32-arm64-msvc@1.5.24:
+ resolution: {integrity: sha512-cKpP7KvS6Xr0jFSTBXY53HZX/YfomK5EMQYpCVDOvfsZeYHN20sQSKXfpVLvA/q2igVt1zzy1XJcOhpJcgiKLg==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@swc/core-win32-ia32-msvc@1.4.17:
resolution: {integrity: sha512-JBwuSTJIgiJJX6wtr4wmXbfvOswHFj223AumUrK544QV69k60FJ9q2adPW9Csk+a8wm1hLxq4HKa2K334UHJ/g==}
engines: {node: '>=10'}
@@ -2602,6 +2884,15 @@ packages:
dev: true
optional: true
+ /@swc/core-win32-ia32-msvc@1.5.24:
+ resolution: {integrity: sha512-IoPWfi0iwqjZuf7gE223+B97/ZwkKbu7qL5KzGP7g3hJrGSKAvv7eC5Y9r2iKKtLKyv5R/T6Ho0kFR/usi7rHw==}
+ engines: {node: '>=10'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@swc/core-win32-x64-msvc@1.4.17:
resolution: {integrity: sha512-jFkOnGQamtVDBm3MF5Kq1lgW8vx4Rm1UvJWRUfg+0gx7Uc3Jp3QMFeMNw/rDNQYRDYPG3yunCC+2463ycd5+dg==}
engines: {node: '>=10'}
@@ -2611,6 +2902,15 @@ packages:
dev: true
optional: true
+ /@swc/core-win32-x64-msvc@1.5.24:
+ resolution: {integrity: sha512-zHgF2k1uVJL8KIW+PnVz1To4a3Cz9THbh2z2lbehaF/gKHugH4c3djBozU4das1v35KOqf5jWIEviBLql2wDLQ==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@swc/core@1.4.17:
resolution: {integrity: sha512-tq+mdWvodMBNBBZbwFIMTVGYHe9N7zvEaycVVjfvAx20k1XozHbHhRv+9pEVFJjwRxLdXmtvFZd3QZHRAOpoNQ==}
engines: {node: '>=10'}
@@ -2636,6 +2936,31 @@ packages:
'@swc/core-win32-x64-msvc': 1.4.17
dev: true
+ /@swc/core@1.5.24:
+ resolution: {integrity: sha512-Eph9zvO4xvqWZGVzTdtdEJ0Vqf0VIML/o/e4Qd2RLOqtfgnlRi7avmMu5C0oqciJ0tk+hqdUKVUZ4JPoPaiGvQ==}
+ engines: {node: '>=10'}
+ requiresBuild: true
+ peerDependencies:
+ '@swc/helpers': '*'
+ peerDependenciesMeta:
+ '@swc/helpers':
+ optional: true
+ dependencies:
+ '@swc/counter': 0.1.3
+ '@swc/types': 0.1.7
+ optionalDependencies:
+ '@swc/core-darwin-arm64': 1.5.24
+ '@swc/core-darwin-x64': 1.5.24
+ '@swc/core-linux-arm-gnueabihf': 1.5.24
+ '@swc/core-linux-arm64-gnu': 1.5.24
+ '@swc/core-linux-arm64-musl': 1.5.24
+ '@swc/core-linux-x64-gnu': 1.5.24
+ '@swc/core-linux-x64-musl': 1.5.24
+ '@swc/core-win32-arm64-msvc': 1.5.24
+ '@swc/core-win32-ia32-msvc': 1.5.24
+ '@swc/core-win32-x64-msvc': 1.5.24
+ dev: true
+
/@swc/counter@0.1.3:
resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
@@ -2652,6 +2977,12 @@ packages:
'@swc/counter': 0.1.3
dev: true
+ /@swc/types@0.1.7:
+ resolution: {integrity: sha512-scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ==}
+ dependencies:
+ '@swc/counter': 0.1.3
+ dev: true
+
/@szmarczak/http-timer@5.0.1:
resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
engines: {node: '>=14.16'}
@@ -2681,6 +3012,31 @@ packages:
transitivePeerDependencies:
- encoding
- supports-color
+ dev: false
+
+ /@tact-lang/compiler@1.3.0:
+ resolution: {integrity: sha512-JER8kAritfvLFLOfKnFfJ+A7vB9RZJFwfO4c0AzWBuzDJCyOp6ByIhNPkn+srpoDOEd7U0yMIyzq4RjCnRyTJw==}
+ hasBin: true
+ dependencies:
+ '@ipld/dag-pb': 2.1.18
+ '@tact-lang/opcode': 0.0.14(@ton/core@0.56.3)(@ton/crypto@3.2.0)
+ '@ton/core': 0.56.3(@ton/crypto@3.2.0)
+ '@ton/crypto': 3.2.0
+ blockstore-core: 1.0.5
+ change-case: 4.1.2
+ ipfs-unixfs-importer: 9.0.10
+ meow: 13.2.0
+ mkdirp: 2.1.6
+ multiformats: 13.1.1
+ ohm-js: 17.1.0
+ path-normalize: 6.0.13
+ prando: 6.0.1
+ qs: 6.12.1
+ zod: 3.23.8
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+ dev: true
/@tact-lang/opcode@0.0.14(@ton/core@0.49.2)(@ton/crypto@3.2.0):
resolution: {integrity: sha512-8FKHK2jwvViRBReO2t40DCkHAP9KPTRWZof4kdsAUJFlyeWIC8SsRQSl9QkZxF+48WvjDduKNqN5Ltb80paufA==}
@@ -2690,6 +3046,17 @@ packages:
dependencies:
'@ton/core': 0.49.2(@ton/crypto@3.2.0)
'@ton/crypto': 3.2.0
+ dev: false
+
+ /@tact-lang/opcode@0.0.14(@ton/core@0.56.3)(@ton/crypto@3.2.0):
+ resolution: {integrity: sha512-8FKHK2jwvViRBReO2t40DCkHAP9KPTRWZof4kdsAUJFlyeWIC8SsRQSl9QkZxF+48WvjDduKNqN5Ltb80paufA==}
+ peerDependencies:
+ '@ton/core': '>=0.49.2'
+ '@ton/crypto': ^3.2.0
+ dependencies:
+ '@ton/core': 0.56.3(@ton/crypto@3.2.0)
+ '@ton/crypto': 3.2.0
+ dev: true
/@tanstack/react-virtual@3.5.0(react-dom@18.3.1)(react@18.3.1):
resolution: {integrity: sha512-rtvo7KwuIvqK9zb0VZ5IL7fiJAEnG+0EiFZz8FUOs+2mhGqdGmjKIaT1XU7Zq0eFqL0jonLlhbayJI/J2SA/Bw==}
@@ -2711,7 +3078,7 @@ packages:
peerDependencies:
react: ^18.2.0
dependencies:
- mermaid: 10.9.0
+ mermaid: 10.9.1
react: 18.3.1
unist-util-visit: 5.0.0
transitivePeerDependencies:
@@ -2725,6 +3092,50 @@ packages:
unist-util-visit: 5.0.0
dev: false
+ /@ton-community/func-js-bin@0.4.4-newops.1:
+ resolution: {integrity: sha512-TV4t6XhmItq4t+wv4pV30yEwb+YvdmsKo4Ig4B0zp4PLdI0r9iZHz4y5bBHcXmDQDRqulXzK6kTgfHvs2CIsaQ==}
+ dev: true
+
+ /@ton-community/func-js@0.7.0:
+ resolution: {integrity: sha512-VYJsv6Pqz6+qh3HlZWReBG5W9RXutAdIFYDqmblPSCXfjBhx/QjON/3WoppzUVrqQQdD0BVIh4PR+xRHRCBNhw==}
+ hasBin: true
+ dependencies:
+ '@ton-community/func-js-bin': 0.4.4-newops.1
+ arg: 5.0.2
+ dev: true
+
+ /@ton/blueprint@0.20.0(@ton/core@0.56.3)(@ton/crypto@3.2.0)(@ton/ton@13.11.2)(@types/node@20.14.1)(typescript@5.4.5):
+ resolution: {integrity: sha512-rZ5mE9wYgvpcYy6KEcyF7i5ysPO6+j3RO3jxQw8qYjPcMu+5zvhy80AUzQ3JLv2ClraqoIU8OYe1PFlDo9I3BA==}
+ hasBin: true
+ peerDependencies:
+ '@ton/core': '>=0.56.0'
+ '@ton/crypto': '>=3.2.0'
+ '@ton/ton': '>=13.11.0'
+ dependencies:
+ '@orbs-network/ton-access': 2.3.3
+ '@tact-lang/compiler': 1.3.0
+ '@ton-community/func-js': 0.7.0
+ '@ton/core': 0.56.3(@ton/crypto@3.2.0)
+ '@ton/crypto': 3.2.0
+ '@ton/ton': 13.11.2(@ton/core@0.56.3)(@ton/crypto@3.2.0)
+ '@tonconnect/sdk': 2.2.0
+ arg: 5.0.2
+ chalk: 4.1.2
+ dotenv: 16.4.5
+ inquirer: 8.2.6
+ qrcode-terminal: 0.12.0
+ ton-x: 2.1.0
+ ts-node: 10.9.2(@types/node@20.14.1)(typescript@5.4.5)
+ transitivePeerDependencies:
+ - '@swc/core'
+ - '@swc/wasm'
+ - '@types/node'
+ - debug
+ - encoding
+ - supports-color
+ - typescript
+ dev: true
+
/@ton/core@0.49.2(@ton/crypto@3.2.0):
resolution: {integrity: sha512-jzW7ZGNkkkv131uvgX/4JgHBdtEnanT8i1fnZ6NOL7lxXjlVIKTuAfr1J2wJQAGHn0wLrbceAHix3jKX+4F5CA==}
peerDependencies:
@@ -2732,6 +3143,7 @@ packages:
dependencies:
'@ton/crypto': 3.2.0
symbol.inspect: 1.0.1
+ dev: false
/@ton/core@0.56.3(@ton/crypto@3.2.0):
resolution: {integrity: sha512-HVkalfqw8zqLLPehtq0CNhu5KjVzc7IrbDwDHPjGoOSXmnqSobiWj8a5F+YuWnZnEbQKtrnMGNOOjVw4LG37rg==}
@@ -2740,7 +3152,6 @@ packages:
dependencies:
'@ton/crypto': 3.2.0
symbol.inspect: 1.0.1
- dev: false
/@ton/crypto-primitives@2.0.0:
resolution: {integrity: sha512-wttiNClmGbI6Dfy/8oyNnsIV0b/qYkCJz4Gn4eP62lJZzMtVQ94Ko7nikDX1EfYHkLI1xpOitWpW+8ZuG6XtDg==}
@@ -2754,12 +3165,43 @@ packages:
jssha: 3.2.0
tweetnacl: 1.0.3
+ /@ton/ton@13.11.2(@ton/core@0.56.3)(@ton/crypto@3.2.0):
+ resolution: {integrity: sha512-EPqW+ZTe0MmfqguJEIGMuAqTAFRKMEce95HlDx8h6CGn2y3jiMgV1/oO+WpDIOiX+1wnTu+xtajk8JTWr8nKRQ==}
+ peerDependencies:
+ '@ton/core': '>=0.56.0'
+ '@ton/crypto': '>=3.2.0'
+ dependencies:
+ '@ton/core': 0.56.3(@ton/crypto@3.2.0)
+ '@ton/crypto': 3.2.0
+ axios: 1.7.2
+ dataloader: 2.2.2
+ symbol.inspect: 1.0.1
+ teslabot: 1.5.0
+ zod: 3.23.8
+ transitivePeerDependencies:
+ - debug
+ dev: true
+
+ /@tonconnect/isomorphic-eventsource@0.0.1:
+ resolution: {integrity: sha512-ODk48pMlqLSOvu3fM0R1sdlz/Cv2y4hSfwtXmLq9ky9+H7ZQfw/16ElpIJ69B4lUvHycxrueNgrRtF9PJHoGMw==}
+ dependencies:
+ eventsource: 2.0.2
+ dev: true
+
/@tonconnect/isomorphic-eventsource@0.0.2:
resolution: {integrity: sha512-B4UoIjPi0QkvIzZH5fV3BQLWrqSYABdrzZQSI9sJA9aA+iC0ohOzFwVVGXanlxeDAy1bcvPbb29f6sVUk0UnnQ==}
dependencies:
eventsource: 2.0.2
dev: false
+ /@tonconnect/isomorphic-fetch@0.0.2:
+ resolution: {integrity: sha512-DAyA4oL7MqbBo9k8+8E+YiWsGCYi6UMhDTcsZjhgzhESkBNG6b+NBkpb1KH4oi0xDZQoknFtY9XogJLuQtSMQQ==}
+ dependencies:
+ node-fetch: 2.7.0
+ transitivePeerDependencies:
+ - encoding
+ dev: true
+
/@tonconnect/isomorphic-fetch@0.0.3:
resolution: {integrity: sha512-jIg5nTrDwnite4fXao3dD83eCpTvInTjZon/rZZrIftIegh4XxyVb5G2mpMqXrVGk1e8SVXm3Kj5OtfMplQs0w==}
dependencies:
@@ -2773,10 +3215,19 @@ packages:
dependencies:
tweetnacl: 1.0.3
tweetnacl-util: 0.15.1
- dev: false
- /@tonconnect/sdk@3.0.2:
- resolution: {integrity: sha512-TEPIoczYZhJcXu9pixYJimGlYKLWLSkgJZgC2vwHLObwuqoiOa06BTOlooaxoNFgZ0LOgIzt+QRs8tF8jyYsSw==}
+ /@tonconnect/sdk@2.2.0:
+ resolution: {integrity: sha512-8plnAXzaLhapUnt47ZqAOQSIQ8NHSvgTSR74QVJdPWqg8128smgGM4cDYewKdBfTD6Lup0odT1WMMrJu+rE4NQ==}
+ dependencies:
+ '@tonconnect/isomorphic-eventsource': 0.0.1
+ '@tonconnect/isomorphic-fetch': 0.0.2
+ '@tonconnect/protocol': 2.2.6
+ transitivePeerDependencies:
+ - encoding
+ dev: true
+
+ /@tonconnect/sdk@3.0.3:
+ resolution: {integrity: sha512-ElVre1DPixzQLgLtQIa8Wu5xS8nozlgblZTJhFFPrk82M2rZ+sawyF+LAVwt9wZRN7+htWnJrNz0+bBr4b3geA==}
dependencies:
'@tonconnect/isomorphic-eventsource': 0.0.2
'@tonconnect/isomorphic-fetch': 0.0.3
@@ -2785,26 +3236,26 @@ packages:
- encoding
dev: false
- /@tonconnect/ui-react@2.0.2(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-nNsaB8DzQsVfBRtKli4KTC4Nj1WwJ+gHP4j9FOgjqNylf+VRYH5mpDkpRw/vRVwOYNMsZ4k8ZznreccWqFJRXg==}
+ /@tonconnect/ui-react@2.0.3(react-dom@18.3.1)(react@18.3.1):
+ resolution: {integrity: sha512-Pzxy0Ea9bTQbkF68Hbyb1erKnAzjT2DlP7HEh7lc9Xs2jU6ID1dg1XGB+hRvBMnl6dIhxflK5EiHE82v6iWnnQ==}
peerDependencies:
react: '>=17.0.0'
react-dom: '>=17.0.0'
dependencies:
- '@tonconnect/ui': 2.0.2
+ '@tonconnect/ui': 2.0.3
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
transitivePeerDependencies:
- encoding
dev: false
- /@tonconnect/ui@2.0.2:
- resolution: {integrity: sha512-x/iI7yX8yMvs7HKZ1wm3Quz5yg8mJJwZQlg+DYHGBvqdx0JMqXbF8YOcvGdh/Lhmrq92ahE8QIwX+85cS80vjQ==}
+ /@tonconnect/ui@2.0.3:
+ resolution: {integrity: sha512-P2i+kZXJULlIIBBfHs8b3ONHEaDFgJ4jpP7eAtqubikjoYyk43qb8XyzKC67hEdS+pHzd+JCB2U+47LTJcdRzA==}
dependencies:
- '@tonconnect/sdk': 3.0.2
+ '@tonconnect/sdk': 3.0.3
classnames: 2.5.1
deepmerge: 4.3.1
- ua-parser-js: 1.0.37
+ ua-parser-js: 1.0.38
transitivePeerDependencies:
- encoding
dev: false
@@ -2831,10 +3282,16 @@ packages:
'@types/estree': 1.0.5
dev: false
+ /@types/bn.js@5.1.5:
+ resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==}
+ dependencies:
+ '@types/node': 20.14.1
+ dev: true
+
/@types/cli-progress@3.11.5:
resolution: {integrity: sha512-D4PbNRbviKyppS5ivBGyFO29POlySLmA2HyUFE4p5QGazAMM3CwkKWcvTl8gvElSuxRh6FPKL8XmidX873ou4g==}
dependencies:
- '@types/node': 20.12.11
+ '@types/node': 20.14.1
/@types/d3-scale-chromatic@3.0.3:
resolution: {integrity: sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==}
@@ -2869,7 +3326,7 @@ packages:
resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
dependencies:
'@types/jsonfile': 6.1.4
- '@types/node': 20.12.11
+ '@types/node': 20.14.1
dev: false
/@types/hast@2.3.10:
@@ -2899,7 +3356,7 @@ packages:
/@types/jsonfile@6.1.4:
resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
dependencies:
- '@types/node': 20.12.11
+ '@types/node': 20.14.1
dev: false
/@types/katex@0.16.7:
@@ -2915,8 +3372,8 @@ packages:
'@types/unist': 2.0.10
dev: false
- /@types/mdast@4.0.3:
- resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==}
+ /@types/mdast@4.0.4:
+ resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
dependencies:
'@types/unist': 3.0.2
dev: false
@@ -2936,26 +3393,26 @@ packages:
/@types/mute-stream@0.0.4:
resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==}
dependencies:
- '@types/node': 20.12.11
+ '@types/node': 20.14.1
dev: true
- /@types/node@18.19.28:
- resolution: {integrity: sha512-J5cOGD9n4x3YGgVuaND6khm5x07MMdAKkRyXnjVR6KFhLMNh2yONGiP7Z+4+tBOt5mK+GvDTiacTOVGGpqiecw==}
+ /@types/node@18.19.34:
+ resolution: {integrity: sha512-eXF4pfBNV5DAMKGbI02NnDtWrQ40hAN558/2vvS4gMpMIxaf6JmD7YjnZbq0Q9TDSSkKBamime8ewRoomHdt4g==}
dependencies:
undici-types: 5.26.5
dev: false
- /@types/node@20.12.11:
- resolution: {integrity: sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==}
- dependencies:
- undici-types: 5.26.5
-
/@types/node@20.12.2:
resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==}
dependencies:
undici-types: 5.26.5
dev: true
+ /@types/node@20.14.1:
+ resolution: {integrity: sha512-T2MzSGEu+ysB/FkWfqmhV3PLyQlowdptmmgD20C6QxsS8Fmv5SjpZ1ayXaEC0S21/h5UJ9iA6W/5vSNU5l00OA==}
+ dependencies:
+ undici-types: 5.26.5
+
/@types/prop-types@15.7.12:
resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
@@ -2966,7 +3423,7 @@ packages:
/@types/react-dom@18.3.0:
resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==}
dependencies:
- '@types/react': 18.3.1
+ '@types/react': 18.3.3
dev: true
/@types/react@18.3.1:
@@ -2975,6 +3432,12 @@ packages:
'@types/prop-types': 15.7.12
csstype: 3.1.3
+ /@types/react@18.3.3:
+ resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==}
+ dependencies:
+ '@types/prop-types': 15.7.12
+ csstype: 3.1.3
+
/@types/semver@7.5.8:
resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
dev: true
@@ -2995,6 +3458,33 @@ packages:
resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==}
dev: true
+ /@typescript-eslint/eslint-plugin@7.12.0(@typescript-eslint/parser@7.12.0)(eslint@8.57.0)(typescript@5.4.5):
+ resolution: {integrity: sha512-7F91fcbuDf/d3S8o21+r3ZncGIke/+eWk0EpO21LXhDfLahriZF9CGj4fbAetEjlaBdjdSm9a6VeXbpbT6Z40Q==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^7.0.0
+ eslint: ^8.56.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@eslint-community/regexpp': 4.10.1
+ '@typescript-eslint/parser': 7.12.0(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/scope-manager': 7.12.0
+ '@typescript-eslint/type-utils': 7.12.0(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/utils': 7.12.0(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/visitor-keys': 7.12.0
+ eslint: 8.57.0
+ graphemer: 1.4.0
+ ignore: 5.3.1
+ natural-compare: 1.4.0
+ ts-api-utils: 1.3.0(typescript@5.4.5)
+ typescript: 5.4.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0)(typescript@5.4.5):
resolution: {integrity: sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==}
engines: {node: ^18.18.0 || >=20.0.0}
@@ -3024,6 +3514,27 @@ packages:
- supports-color
dev: true
+ /@typescript-eslint/parser@7.12.0(eslint@8.57.0)(typescript@5.4.5):
+ resolution: {integrity: sha512-dm/J2UDY3oV3TKius2OUZIFHsomQmpHtsV0FTh1WO8EKgHLQ1QCADUqscPgTpU+ih1e21FQSRjXckHn3txn6kQ==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+ peerDependencies:
+ eslint: ^8.56.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/scope-manager': 7.12.0
+ '@typescript-eslint/types': 7.12.0
+ '@typescript-eslint/typescript-estree': 7.12.0(typescript@5.4.5)
+ '@typescript-eslint/visitor-keys': 7.12.0
+ debug: 4.3.5
+ eslint: 8.57.0
+ typescript: 5.4.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5):
resolution: {integrity: sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw==}
engines: {node: ^18.18.0 || >=20.0.0}
@@ -3045,6 +3556,14 @@ packages:
- supports-color
dev: true
+ /@typescript-eslint/scope-manager@7.12.0:
+ resolution: {integrity: sha512-itF1pTnN6F3unPak+kutH9raIkL3lhH1YRPGgt7QQOh43DQKVJXmWkpb+vpc/TiDHs6RSd9CTbDsc/Y+Ygq7kg==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+ dependencies:
+ '@typescript-eslint/types': 7.12.0
+ '@typescript-eslint/visitor-keys': 7.12.0
+ dev: true
+
/@typescript-eslint/scope-manager@7.7.1:
resolution: {integrity: sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==}
engines: {node: ^18.18.0 || >=20.0.0}
@@ -3053,6 +3572,26 @@ packages:
'@typescript-eslint/visitor-keys': 7.7.1
dev: true
+ /@typescript-eslint/type-utils@7.12.0(eslint@8.57.0)(typescript@5.4.5):
+ resolution: {integrity: sha512-lib96tyRtMhLxwauDWUp/uW3FMhLA6D0rJ8T7HmH7x23Gk1Gwwu8UZ94NMXBvOELn6flSPiBrCKlehkiXyaqwA==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+ peerDependencies:
+ eslint: ^8.56.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/typescript-estree': 7.12.0(typescript@5.4.5)
+ '@typescript-eslint/utils': 7.12.0(eslint@8.57.0)(typescript@5.4.5)
+ debug: 4.3.5
+ eslint: 8.57.0
+ ts-api-utils: 1.3.0(typescript@5.4.5)
+ typescript: 5.4.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@typescript-eslint/type-utils@7.7.1(eslint@8.57.0)(typescript@5.4.5):
resolution: {integrity: sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==}
engines: {node: ^18.18.0 || >=20.0.0}
@@ -3073,11 +3612,38 @@ packages:
- supports-color
dev: true
+ /@typescript-eslint/types@7.12.0:
+ resolution: {integrity: sha512-o+0Te6eWp2ppKY3mLCU+YA9pVJxhUJE15FV7kxuD9jgwIAa+w/ycGJBMrYDTpVGUM/tgpa9SeMOugSabWFq7bg==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+ dev: true
+
/@typescript-eslint/types@7.7.1:
resolution: {integrity: sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==}
engines: {node: ^18.18.0 || >=20.0.0}
dev: true
+ /@typescript-eslint/typescript-estree@7.12.0(typescript@5.4.5):
+ resolution: {integrity: sha512-5bwqLsWBULv1h6pn7cMW5dXX/Y2amRqLaKqsASVwbBHMZSnHqE/HN4vT4fE0aFsiwxYvr98kqOWh1a8ZKXalCQ==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/types': 7.12.0
+ '@typescript-eslint/visitor-keys': 7.12.0
+ debug: 4.3.5
+ globby: 11.1.0
+ is-glob: 4.0.3
+ minimatch: 9.0.4
+ semver: 7.6.2
+ ts-api-utils: 1.3.0(typescript@5.4.5)
+ typescript: 5.4.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@typescript-eslint/typescript-estree@7.7.1(typescript@5.4.5):
resolution: {integrity: sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==}
engines: {node: ^18.18.0 || >=20.0.0}
@@ -3100,6 +3666,22 @@ packages:
- supports-color
dev: true
+ /@typescript-eslint/utils@7.12.0(eslint@8.57.0)(typescript@5.4.5):
+ resolution: {integrity: sha512-Y6hhwxwDx41HNpjuYswYp6gDbkiZ8Hin9Bf5aJQn1bpTs3afYY4GX+MPYxma8jtoIV2GRwTM/UJm/2uGCVv+DQ==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+ peerDependencies:
+ eslint: ^8.56.0
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
+ '@typescript-eslint/scope-manager': 7.12.0
+ '@typescript-eslint/types': 7.12.0
+ '@typescript-eslint/typescript-estree': 7.12.0(typescript@5.4.5)
+ eslint: 8.57.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
/@typescript-eslint/utils@7.7.1(eslint@8.57.0)(typescript@5.4.5):
resolution: {integrity: sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==}
engines: {node: ^18.18.0 || >=20.0.0}
@@ -3119,6 +3701,14 @@ packages:
- typescript
dev: true
+ /@typescript-eslint/visitor-keys@7.12.0:
+ resolution: {integrity: sha512-uZk7DevrQLL3vSnfFl5bj4sL75qC9D6EdjemIdbtkuUmIheWpuiiylSY01JxJE7+zGrOWDZrp1WxOuDntvKrHQ==}
+ engines: {node: ^18.18.0 || >=20.0.0}
+ dependencies:
+ '@typescript-eslint/types': 7.12.0
+ eslint-visitor-keys: 3.4.3
+ dev: true
+
/@typescript-eslint/visitor-keys@7.7.1:
resolution: {integrity: sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==}
engines: {node: ^18.18.0 || >=20.0.0}
@@ -3130,8 +3720,8 @@ packages:
/@ungap/structured-clone@1.2.0:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
- /@vercel/analytics@1.2.2(next@14.2.3)(react@18.3.1):
- resolution: {integrity: sha512-X0rctVWkQV1e5Y300ehVNqpOfSOufo7ieA5PIdna8yX/U7Vjz0GFsGf4qvAhxV02uQ2CVt7GYcrFfddXXK2Y4A==}
+ /@vercel/analytics@1.3.1(next@14.2.3)(react@18.3.1):
+ resolution: {integrity: sha512-xhSlYgAuJ6Q4WQGkzYTLmXwhYl39sWjoMA3nHxfkvG+WdBT25c563a7QhwwKivEOZtPJXifYHR1m2ihoisbWyA==}
peerDependencies:
next: '>= 13'
react: ^18 || ^19
@@ -3152,7 +3742,18 @@ packages:
vite: ^4 || ^5
dependencies:
'@swc/core': 1.4.17
- vite: 5.2.10
+ vite: 5.2.10(@types/node@20.14.1)
+ transitivePeerDependencies:
+ - '@swc/helpers'
+ dev: true
+
+ /@vitejs/plugin-react-swc@3.7.0(vite@5.2.12):
+ resolution: {integrity: sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==}
+ peerDependencies:
+ vite: ^4 || ^5
+ dependencies:
+ '@swc/core': 1.5.24
+ vite: 5.2.12
transitivePeerDependencies:
- '@swc/helpers'
dev: true
@@ -3317,6 +3918,10 @@ packages:
/async@3.2.5:
resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
+ /asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+ dev: true
+
/available-typed-arrays@1.0.7:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
@@ -3324,6 +3929,33 @@ packages:
possible-typed-array-names: 1.0.0
dev: true
+ /axios@0.25.0:
+ resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==}
+ dependencies:
+ follow-redirects: 1.15.6
+ transitivePeerDependencies:
+ - debug
+ dev: true
+
+ /axios@0.27.2:
+ resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==}
+ dependencies:
+ follow-redirects: 1.15.6
+ form-data: 4.0.0
+ transitivePeerDependencies:
+ - debug
+ dev: true
+
+ /axios@1.7.2:
+ resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==}
+ dependencies:
+ follow-redirects: 1.15.6
+ form-data: 4.0.0
+ proxy-from-env: 1.1.0
+ transitivePeerDependencies:
+ - debug
+ dev: true
+
/bail@2.0.2:
resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
dev: false
@@ -3339,6 +3971,14 @@ packages:
engines: {node: '>=8'}
dev: true
+ /bl@4.1.0:
+ resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
+ dependencies:
+ buffer: 5.7.1
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+ dev: true
+
/bl@5.1.0:
resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==}
dependencies:
@@ -3358,10 +3998,18 @@ packages:
it-take: 1.0.2
multiformats: 9.9.0
+ /bn.js@4.11.6:
+ resolution: {integrity: sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==}
+ dev: true
+
/bn.js@4.12.0:
resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==}
dev: true
+ /bn.js@5.2.0:
+ resolution: {integrity: sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==}
+ dev: true
+
/bn.js@5.2.1:
resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==}
dev: true
@@ -3387,6 +4035,13 @@ packages:
dependencies:
fill-range: 7.0.1
+ /braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+ engines: {node: '>=8'}
+ dependencies:
+ fill-range: 7.1.1
+ dev: true
+
/brorand@1.1.0:
resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==}
dev: true
@@ -3481,13 +4136,13 @@ packages:
semver: 7.6.0
dev: true
- /bundle-require@4.0.3(esbuild@0.19.12):
- resolution: {integrity: sha512-2iscZ3fcthP2vka4Y7j277YJevwmsby/FpFDwjgw34Nl7dtCpt7zz/4TexmHMzY6KZEih7En9ImlbbgUNNQGtA==}
+ /bundle-require@4.2.1(esbuild@0.21.4):
+ resolution: {integrity: sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
peerDependencies:
esbuild: '>=0.17'
dependencies:
- esbuild: 0.19.12
+ esbuild: 0.21.4
load-tsconfig: 0.2.5
dev: true
@@ -3542,8 +4197,8 @@ packages:
pascal-case: 3.1.2
tslib: 2.6.2
- /caniuse-lite@1.0.30001616:
- resolution: {integrity: sha512-RHVYKov7IcdNjVHJFNY/78RdG4oGVjbayxv8u5IO74Wv7Hlq4PnJE6mo/OjFijjVFNy5ijnCt6H3IIo4t+wfEw==}
+ /caniuse-lite@1.0.30001627:
+ resolution: {integrity: sha512-4zgNiB8nTyV/tHhwZrFs88ryjls/lHiqFhrxCW4qSTeuRByBVnPYpDInchOIySWknznucaf31Z4KYqjfbrecVw==}
dev: false
/capital-case@1.0.4:
@@ -3616,12 +4271,16 @@ packages:
resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
dev: false
+ /chardet@0.7.0:
+ resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
+ dev: true
+
/chokidar@3.6.0:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
dependencies:
anymatch: 3.1.3
- braces: 3.0.2
+ braces: 3.0.3
glob-parent: 5.1.2
is-binary-path: 2.1.0
is-glob: 4.0.3
@@ -3648,6 +4307,13 @@ packages:
dependencies:
escape-string-regexp: 4.0.0
+ /cli-cursor@3.1.0:
+ resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
+ engines: {node: '>=8'}
+ dependencies:
+ restore-cursor: 3.1.0
+ dev: true
+
/cli-progress@3.12.0:
resolution: {integrity: sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==}
engines: {node: '>=4'}
@@ -3659,6 +4325,11 @@ packages:
engines: {node: '>=6'}
dev: true
+ /cli-width@3.0.0:
+ resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
+ engines: {node: '>= 10'}
+ dev: true
+
/cli-width@4.1.0:
resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==}
engines: {node: '>= 12'}
@@ -3676,6 +4347,11 @@ packages:
execa: 0.8.0
dev: false
+ /clone@1.0.4:
+ resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
+ engines: {node: '>=0.8'}
+ dev: true
+
/clsx@2.1.1:
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
engines: {node: '>=6'}
@@ -3717,6 +4393,13 @@ packages:
resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==}
dev: false
+ /combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ delayed-stream: 1.0.0
+ dev: true
+
/comma-separated-tokens@2.0.3:
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
dev: false
@@ -4137,6 +4820,10 @@ packages:
engines: {node: '>= 12'}
dev: false
+ /dataloader@2.2.2:
+ resolution: {integrity: sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==}
+ dev: true
+
/dayjs@1.11.11:
resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==}
dev: false
@@ -4153,6 +4840,17 @@ packages:
ms: 2.1.2
supports-color: 8.1.1
+ /debug@4.3.5:
+ resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+
/decode-named-character-reference@1.0.2:
resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
dependencies:
@@ -4175,6 +4873,12 @@ packages:
engines: {node: '>=0.10.0'}
dev: false
+ /defaults@1.0.4:
+ resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
+ dependencies:
+ clone: 1.0.4
+ dev: true
+
/defer-to-connect@2.0.1:
resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
engines: {node: '>=10'}
@@ -4203,6 +4907,11 @@ packages:
robust-predicates: 3.0.2
dev: false
+ /delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+ dev: true
+
/dequal@2.0.3:
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
engines: {node: '>=6'}
@@ -4267,8 +4976,8 @@ packages:
engines: {node: '>=10'}
dev: true
- /dompurify@3.1.2:
- resolution: {integrity: sha512-hLGGBI1tw5N8qTELr3blKjAML/LY4ANxksbS612UiJyDfyf/2D092Pvm+S7pmeTGJRqvlJkFzBoHBQKgQlOQVg==}
+ /dompurify@3.1.5:
+ resolution: {integrity: sha512-lwG+n5h8QNpxtyrJW/gJWckL+1/DQiYMX8f7t8Z2AZTPw1esVrqjI63i7Zc2Gz0aKzLVMYC1V1PL/ky+aY/NgA==}
dev: false
/dot-case@3.0.4:
@@ -4277,6 +4986,11 @@ packages:
no-case: 3.0.4
tslib: 2.6.2
+ /dotenv@16.4.5:
+ resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
+ engines: {node: '>=12'}
+ dev: true
+
/duplexer@0.1.2:
resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
dev: false
@@ -4339,37 +5053,6 @@ packages:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: '>= 0.4'}
- /esbuild@0.19.12:
- resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==}
- engines: {node: '>=12'}
- hasBin: true
- requiresBuild: true
- optionalDependencies:
- '@esbuild/aix-ppc64': 0.19.12
- '@esbuild/android-arm': 0.19.12
- '@esbuild/android-arm64': 0.19.12
- '@esbuild/android-x64': 0.19.12
- '@esbuild/darwin-arm64': 0.19.12
- '@esbuild/darwin-x64': 0.19.12
- '@esbuild/freebsd-arm64': 0.19.12
- '@esbuild/freebsd-x64': 0.19.12
- '@esbuild/linux-arm': 0.19.12
- '@esbuild/linux-arm64': 0.19.12
- '@esbuild/linux-ia32': 0.19.12
- '@esbuild/linux-loong64': 0.19.12
- '@esbuild/linux-mips64el': 0.19.12
- '@esbuild/linux-ppc64': 0.19.12
- '@esbuild/linux-riscv64': 0.19.12
- '@esbuild/linux-s390x': 0.19.12
- '@esbuild/linux-x64': 0.19.12
- '@esbuild/netbsd-x64': 0.19.12
- '@esbuild/openbsd-x64': 0.19.12
- '@esbuild/sunos-x64': 0.19.12
- '@esbuild/win32-arm64': 0.19.12
- '@esbuild/win32-ia32': 0.19.12
- '@esbuild/win32-x64': 0.19.12
- dev: true
-
/esbuild@0.20.2:
resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
engines: {node: '>=12'}
@@ -4401,6 +5084,37 @@ packages:
'@esbuild/win32-x64': 0.20.2
dev: true
+ /esbuild@0.21.4:
+ resolution: {integrity: sha512-sFMcNNrj+Q0ZDolrp5pDhH0nRPN9hLIM3fRPwgbLYJeSHHgnXSnbV3xYgSVuOeLWH9c73VwmEverVzupIv5xuA==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.21.4
+ '@esbuild/android-arm': 0.21.4
+ '@esbuild/android-arm64': 0.21.4
+ '@esbuild/android-x64': 0.21.4
+ '@esbuild/darwin-arm64': 0.21.4
+ '@esbuild/darwin-x64': 0.21.4
+ '@esbuild/freebsd-arm64': 0.21.4
+ '@esbuild/freebsd-x64': 0.21.4
+ '@esbuild/linux-arm': 0.21.4
+ '@esbuild/linux-arm64': 0.21.4
+ '@esbuild/linux-ia32': 0.21.4
+ '@esbuild/linux-loong64': 0.21.4
+ '@esbuild/linux-mips64el': 0.21.4
+ '@esbuild/linux-ppc64': 0.21.4
+ '@esbuild/linux-riscv64': 0.21.4
+ '@esbuild/linux-s390x': 0.21.4
+ '@esbuild/linux-x64': 0.21.4
+ '@esbuild/netbsd-x64': 0.21.4
+ '@esbuild/openbsd-x64': 0.21.4
+ '@esbuild/sunos-x64': 0.21.4
+ '@esbuild/win32-arm64': 0.21.4
+ '@esbuild/win32-ia32': 0.21.4
+ '@esbuild/win32-x64': 0.21.4
+ dev: true
+
/escape-string-regexp@1.0.5:
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
engines: {node: '>=0.8.0'}
@@ -4431,6 +5145,14 @@ packages:
eslint: 8.57.0
dev: true
+ /eslint-plugin-react-refresh@0.4.7(eslint@8.57.0):
+ resolution: {integrity: sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==}
+ peerDependencies:
+ eslint: '>=7'
+ dependencies:
+ eslint: 8.57.0
+ dev: true
+
/eslint-scope@7.2.2:
resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -4450,7 +5172,7 @@ packages:
hasBin: true
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
- '@eslint-community/regexpp': 4.10.0
+ '@eslint-community/regexpp': 4.10.1
'@eslint/eslintrc': 2.1.4
'@eslint/js': 8.57.0
'@humanwhocodes/config-array': 0.11.14
@@ -4460,7 +5182,7 @@ packages:
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.3
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.2
@@ -4579,6 +5301,14 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
+ /ethjs-unit@0.1.6:
+ resolution: {integrity: sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==}
+ engines: {node: '>=6.5.0', npm: '>=3'}
+ dependencies:
+ bn.js: 4.11.6
+ number-to-bn: 1.7.0
+ dev: true
+
/event-stream@3.3.4:
resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==}
dependencies:
@@ -4599,7 +5329,6 @@ packages:
/eventsource@2.0.2:
resolution: {integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==}
engines: {node: '>=12.0.0'}
- dev: false
/evp_bytestokey@1.0.3:
resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==}
@@ -4647,6 +5376,15 @@ packages:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
dev: false
+ /external-editor@3.1.0:
+ resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
+ engines: {node: '>=4'}
+ dependencies:
+ chardet: 0.7.0
+ iconv-lite: 0.4.24
+ tmp: 0.0.33
+ dev: true
+
/fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -4724,6 +5462,13 @@ packages:
dependencies:
to-regex-range: 5.0.1
+ /fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+ dependencies:
+ to-regex-range: 5.0.1
+ dev: true
+
/find-up@5.0.0:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
@@ -4759,6 +5504,16 @@ packages:
resolution: {integrity: sha512-Rwix9pBtC1Nuy5wysTmKy+UjbDJpIfg8eHjw0rjZ1mX4GNLz1Bmd16uDpI3Gk1i70Fgcs8Csg2lPm8HULFg9DQ==}
dev: false
+ /follow-redirects@1.15.6:
+ resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+ dev: true
+
/for-each@0.3.3:
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
dependencies:
@@ -4778,6 +5533,15 @@ packages:
engines: {node: '>= 14.17'}
dev: true
+ /form-data@4.0.0:
+ resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
+ engines: {node: '>= 6'}
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+ dev: true
+
/formdata-polyfill@4.0.10:
resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
engines: {node: '>=12.20.0'}
@@ -4785,6 +5549,10 @@ packages:
fetch-blob: 3.2.0
dev: false
+ /fp-ts@2.16.6:
+ resolution: {integrity: sha512-v7w209VPj4L6pPn/ftFRJu31Oa8QagwcVw7BZmLCUWU4AQoc954rX9ogSIahDf67Pg+GjPbkW/Kn9XWnlWJG0g==}
+ dev: true
+
/from@0.1.7:
resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==}
dev: false
@@ -4894,16 +5662,16 @@ packages:
is-glob: 4.0.3
dev: true
- /glob@10.3.12:
- resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==}
- engines: {node: '>=16 || 14 >=14.17'}
+ /glob@10.4.1:
+ resolution: {integrity: sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==}
+ engines: {node: '>=16 || 14 >=14.18'}
hasBin: true
dependencies:
foreground-child: 3.1.1
- jackspeak: 2.3.6
+ jackspeak: 3.2.3
minimatch: 9.0.4
- minipass: 7.0.4
- path-scurry: 1.10.2
+ minipass: 7.1.2
+ path-scurry: 1.11.1
dev: true
/glob@7.2.3:
@@ -5251,6 +6019,13 @@ packages:
resolution: {integrity: sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==}
engines: {node: '>=4'}
+ /iconv-lite@0.4.24:
+ resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ safer-buffer: 2.1.2
+ dev: true
+
/iconv-lite@0.6.3:
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
engines: {node: '>=0.10.0'}
@@ -5296,6 +6071,27 @@ packages:
resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
dev: false
+ /inquirer@8.2.6:
+ resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==}
+ engines: {node: '>=12.0.0'}
+ dependencies:
+ ansi-escapes: 4.3.2
+ chalk: 4.1.2
+ cli-cursor: 3.1.0
+ cli-width: 3.0.0
+ external-editor: 3.1.0
+ figures: 3.2.0
+ lodash: 4.17.21
+ mute-stream: 0.0.8
+ ora: 5.4.1
+ run-async: 2.4.1
+ rxjs: 7.8.1
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ through: 2.3.8
+ wrap-ansi: 6.2.0
+ dev: true
+
/interface-blockstore@2.0.3:
resolution: {integrity: sha512-OwVUnlNcx7H5HloK0Myv6c/C1q9cNG11HX6afdeU6q6kbuNj8jKCwVnmJHhC94LZaJ+9hvVOk4IUstb3Esg81w==}
dependencies:
@@ -5323,6 +6119,25 @@ packages:
resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==}
dev: false
+ /io-ts-reporters@2.0.1(fp-ts@2.16.6)(io-ts@2.2.21):
+ resolution: {integrity: sha512-RVpLstYBsmTGgCW9wJ5KVyN/eRnRUDp87Flt4D1O3aJ7oAnd8csq8aXuu7ZeNK8qEDKmjUl9oUuzfwikaNAMKQ==}
+ peerDependencies:
+ fp-ts: ^2.10.5
+ io-ts: ^2.2.16
+ dependencies:
+ '@scarf/scarf': 1.3.0
+ fp-ts: 2.16.6
+ io-ts: 2.2.21(fp-ts@2.16.6)
+ dev: true
+
+ /io-ts@2.2.21(fp-ts@2.16.6):
+ resolution: {integrity: sha512-zz2Z69v9ZIC3mMLYWIeoUcwWD6f+O7yP92FMVVaXEOSZH1jnVBmET/urd/uoarD1WGBY4rCj8TAyMPzsGNzMFQ==}
+ peerDependencies:
+ fp-ts: ^2.5.0
+ dependencies:
+ fp-ts: 2.16.6
+ dev: true
+
/ipfs-unixfs-importer@9.0.10:
resolution: {integrity: sha512-W+tQTVcSmXtFh7FWYWwPBGXJ1xDgREbIyI1E5JzDcimZLIyT5gGMfxR3oKPxxWj+GKMpP5ilvMQrbsPzWcm3Fw==}
engines: {node: '>=16.0.0', npm: '>=7.0.0'}
@@ -5437,10 +6252,20 @@ packages:
dependencies:
is-extglob: 2.1.1
+ /is-hex-prefixed@1.0.0:
+ resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==}
+ engines: {node: '>=6.5.0', npm: '>=3'}
+ dev: true
+
/is-hexadecimal@2.0.1:
resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
dev: false
+ /is-interactive@1.0.0:
+ resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
+ engines: {node: '>=8'}
+ dev: true
+
/is-nan@1.3.2:
resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==}
engines: {node: '>= 0.4'}
@@ -5510,6 +6335,11 @@ packages:
which-typed-array: 1.1.15
dev: true
+ /is-unicode-supported@0.1.0:
+ resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
+ engines: {node: '>=10'}
+ dev: true
+
/is-wsl@2.2.0:
resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
engines: {node: '>=8'}
@@ -5523,13 +6353,22 @@ packages:
/isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+ /isomorphic-fetch@3.0.0:
+ resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==}
+ dependencies:
+ node-fetch: 2.7.0
+ whatwg-fetch: 3.6.20
+ transitivePeerDependencies:
+ - encoding
+ dev: true
+
/isomorphic-timers-promises@1.0.1:
resolution: {integrity: sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==}
engines: {node: '>=10'}
dev: true
- /isows@1.0.3(ws@8.13.0):
- resolution: {integrity: sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==}
+ /isows@1.0.4(ws@8.13.0):
+ resolution: {integrity: sha512-hEzjY+x9u9hPmBom9IIAqdJCwNLax+xrPb51vEPpERoFlIxgmZcHzsT5jKG06nvInKOBGvReAVz80Umed5CczQ==}
peerDependencies:
ws: '*'
dependencies:
@@ -5559,8 +6398,8 @@ packages:
/it-take@1.0.2:
resolution: {integrity: sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==}
- /jackspeak@2.3.6:
- resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
+ /jackspeak@3.2.3:
+ resolution: {integrity: sha512-htOzIMPbpLid/Gq9/zaz9SfExABxqRe1sSCdxntlO/aMD6u0issZQiY25n2GKQUtJ02j7z5sfptlAOMpWWOmvw==}
engines: {node: '>=14'}
dependencies:
'@isaacs/cliui': 8.0.2
@@ -5743,6 +6582,18 @@ packages:
lodash._reinterpolate: 3.0.0
dev: true
+ /lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ dev: true
+
+ /log-symbols@4.1.0:
+ resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
+ engines: {node: '>=10'}
+ dependencies:
+ chalk: 4.1.2
+ is-unicode-supported: 0.1.0
+ dev: true
+
/long@4.0.0:
resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==}
@@ -5767,8 +6618,8 @@ packages:
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dev: true
- /lru-cache@10.2.0:
- resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
+ /lru-cache@10.2.2:
+ resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==}
engines: {node: 14 || >=16.14}
dev: true
@@ -5812,7 +6663,7 @@ packages:
/match-sorter@6.3.4:
resolution: {integrity: sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==}
dependencies:
- '@babel/runtime': 7.24.5
+ '@babel/runtime': 7.24.6
remove-accents: 0.5.0
dev: false
@@ -6003,7 +6854,7 @@ packages:
resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==}
dependencies:
'@types/hast': 3.0.4
- '@types/mdast': 4.0.3
+ '@types/mdast': 4.0.4
'@ungap/structured-clone': 1.2.0
devlop: 1.1.0
micromark-util-sanitize-uri: 2.0.0
@@ -6032,6 +6883,11 @@ packages:
'@types/mdast': 3.0.15
dev: false
+ /meow@13.2.0:
+ resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==}
+ engines: {node: '>=18'}
+ dev: true
+
/merge-options@3.0.4:
resolution: {integrity: sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==}
engines: {node: '>=10'}
@@ -6046,8 +6902,8 @@ packages:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
- /mermaid@10.9.0:
- resolution: {integrity: sha512-swZju0hFox/B/qoLKK0rOxxgh8Cf7rJSfAUc1u8fezVihYMvrJAS45GzAxTVf4Q+xn9uMgitBcmWk7nWGXOs/g==}
+ /mermaid@10.9.1:
+ resolution: {integrity: sha512-Mx45Obds5W1UkW1nv/7dHRsbfMM1aOKA2+Pxs/IGHNonygDHwmng8xTHyS9z4KWVi0rbko8gjiBmuwwXQ7tiNA==}
dependencies:
'@braintree/sanitize-url': 6.0.4
'@types/d3-scale': 4.0.8
@@ -6058,7 +6914,7 @@ packages:
d3-sankey: 0.12.3
dagre-d3-es: 7.0.10
dayjs: 1.11.11
- dompurify: 3.1.2
+ dompurify: 3.1.5
elkjs: 0.9.3
katex: 0.16.10
khroma: 2.1.0
@@ -6426,7 +7282,7 @@ packages:
resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==}
dependencies:
'@types/debug': 4.1.12
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5
decode-named-character-reference: 1.0.2
micromark-core-commonmark: 1.1.0
micromark-factory-space: 1.1.0
@@ -6461,6 +7317,18 @@ packages:
brorand: 1.1.0
dev: true
+ /mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+ dev: true
+
+ /mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+ dependencies:
+ mime-db: 1.52.0
+ dev: true
+
/mimic-fn@2.1.0:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
engines: {node: '>=6'}
@@ -6504,8 +7372,8 @@ packages:
/minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
- /minipass@7.0.4:
- resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
+ /minipass@7.1.2:
+ resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
engines: {node: '>=16 || 14 >=14.17'}
dev: true
@@ -6522,6 +7390,10 @@ packages:
/ms@2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+ /multiformats@13.1.1:
+ resolution: {integrity: sha512-JiptvwMmlxlzIlLLwhCi/srf/nk409UL0eUBr0kioRJq15hqqKyg68iftrBvhCRjR6Rw4fkNnSc4ZJXJDuta/Q==}
+ dev: true
+
/multiformats@9.9.0:
resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==}
@@ -6529,6 +7401,10 @@ packages:
resolution: {integrity: sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==}
engines: {node: '>=8.0.0'}
+ /mute-stream@0.0.8:
+ resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
+ dev: true
+
/mute-stream@1.0.0:
resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -6616,7 +7492,7 @@ packages:
'@next/env': 14.2.3
'@swc/helpers': 0.5.5
busboy: 1.6.0
- caniuse-lite: 1.0.30001616
+ caniuse-lite: 1.0.30001627
graceful-fs: 4.2.11
postcss: 8.4.31
react: 18.3.1
@@ -6661,7 +7537,7 @@ packages:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
scroll-into-view-if-needed: 3.1.0
- zod: 3.23.4
+ zod: 3.23.8
dev: false
/nextra@2.13.4(next@14.2.3)(react-dom@18.3.1)(react@18.3.1):
@@ -6700,7 +7576,7 @@ packages:
title: 3.5.3
unist-util-remove: 4.0.0
unist-util-visit: 5.0.0
- zod: 3.23.4
+ zod: 3.23.8
transitivePeerDependencies:
- supports-color
dev: false
@@ -6812,6 +7688,14 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: false
+ /number-to-bn@1.7.0:
+ resolution: {integrity: sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==}
+ engines: {node: '>=6.5.0', npm: '>=3'}
+ dependencies:
+ bn.js: 4.11.6
+ strip-hex-prefix: 1.0.0
+ dev: true
+
/object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
@@ -6883,6 +7767,12 @@ packages:
/ohm-js@16.5.0:
resolution: {integrity: sha512-OXuB3g1cdP6vCyaGziLmihLkBrtfH9H9jmYp5nRqad093KVzkUSi062IVv5l+3SB/HIbMyDvBqhgR3Q3S+EEnw==}
engines: {node: '>=0.12.1'}
+ dev: false
+
+ /ohm-js@17.1.0:
+ resolution: {integrity: sha512-xc3B5dgAjTBQGHaH7B58M2Pmv6WvzrJ/3/7LeUzXNg0/sY3jQPdSd/S2SstppaleO77rifR1tyhdfFGNIwxf2Q==}
+ engines: {node: '>=0.12.1'}
+ dev: true
/once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
@@ -6897,14 +7787,14 @@ packages:
mimic-fn: 2.1.0
dev: true
- /openapi-fetch@0.9.3:
- resolution: {integrity: sha512-tC1NDn71vJHeCzu+lYdrnIpgRt4GxR0B4eSwXNb15ypWpZcpaEOwHFkoz8FcfG5Fvqkz2P0Fl9zQF1JJwBjuvA==}
+ /openapi-fetch@0.9.7:
+ resolution: {integrity: sha512-NMp/GEmWSGO0b2d731IdGXcMP2PF85Rk1q+oy2Mx/DYMdP3pgTZTRamKxgZpkHhM4iOVsyD1iP5HKL9Fr6CH2Q==}
dependencies:
- openapi-typescript-helpers: 0.0.7
+ openapi-typescript-helpers: 0.0.8
dev: false
- /openapi-typescript-helpers@0.0.7:
- resolution: {integrity: sha512-7nwlAtdA1fULipibFRBWE/rnF114q6ejRYzNvhdA/x+qTWAZhXGLc/368dlwMlyJDvCQMCnADjpzb5BS5ZmNSA==}
+ /openapi-typescript-helpers@0.0.8:
+ resolution: {integrity: sha512-1eNjQtbfNi5Z/kFhagDIaIRj6qqDzhjNJKz8cmMW0CVdGwT6e1GLbAfgI0d28VTJa1A8jz82jm/4dG8qNoNS8g==}
dev: false
/openapi-typescript@7.0.0-next.8(typescript@5.4.5):
@@ -6913,7 +7803,7 @@ packages:
peerDependencies:
typescript: ^5.x
dependencies:
- '@redocly/openapi-core': 1.11.0
+ '@redocly/openapi-core': 1.14.0
ansi-colors: 4.1.3
supports-color: 9.4.0
typescript: 5.4.5
@@ -6934,10 +7824,30 @@ packages:
word-wrap: 1.2.5
dev: true
+ /ora@5.4.1:
+ resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ bl: 4.1.0
+ chalk: 4.1.2
+ cli-cursor: 3.1.0
+ cli-spinners: 2.9.2
+ is-interactive: 1.0.0
+ is-unicode-supported: 0.1.0
+ log-symbols: 4.1.0
+ strip-ansi: 6.0.1
+ wcwidth: 1.0.1
+ dev: true
+
/os-browserify@0.3.0:
resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==}
dev: true
+ /os-tmpdir@1.0.2:
+ resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
/p-cancelable@3.0.0:
resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
engines: {node: '>=12.20'}
@@ -7082,12 +7992,12 @@ packages:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
dev: true
- /path-scurry@1.10.2:
- resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==}
- engines: {node: '>=16 || 14 >=14.17'}
+ /path-scurry@1.11.1:
+ resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
+ engines: {node: '>=16 || 14 >=14.18'}
dependencies:
- lru-cache: 10.2.0
- minipass: 7.0.4
+ lru-cache: 10.2.2
+ minipass: 7.1.2
dev: true
/path-type@4.0.0:
@@ -7121,6 +8031,11 @@ packages:
/picocolors@1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+ dev: true
+
+ /picocolors@1.0.1:
+ resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
+ dev: false
/picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
@@ -7169,7 +8084,7 @@ packages:
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.7
- picocolors: 1.0.0
+ picocolors: 1.0.1
source-map-js: 1.2.0
dev: false
@@ -7219,13 +8134,17 @@ packages:
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
'@types/long': 4.0.2
- '@types/node': 20.12.11
+ '@types/node': 20.14.1
long: 4.0.0
/protocols@2.0.1:
resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==}
dev: false
+ /proxy-from-env@1.1.0:
+ resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+ dev: true
+
/ps-tree@1.2.0:
resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==}
engines: {node: '>= 0.10'}
@@ -7257,6 +8176,11 @@ packages:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
+ /qrcode-terminal@0.12.0:
+ resolution: {integrity: sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==}
+ hasBin: true
+ dev: true
+
/qs@6.12.1:
resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==}
engines: {node: '>=0.6'}
@@ -7495,6 +8419,14 @@ packages:
lowercase-keys: 3.0.0
dev: true
+ /restore-cursor@3.1.0:
+ resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
+ engines: {node: '>=8'}
+ dependencies:
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ dev: true
+
/retry@0.13.1:
resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
engines: {node: '>= 4'}
@@ -7548,6 +8480,37 @@ packages:
fsevents: 2.3.3
dev: true
+ /rollup@4.18.0:
+ resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+ dependencies:
+ '@types/estree': 1.0.5
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.18.0
+ '@rollup/rollup-android-arm64': 4.18.0
+ '@rollup/rollup-darwin-arm64': 4.18.0
+ '@rollup/rollup-darwin-x64': 4.18.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.18.0
+ '@rollup/rollup-linux-arm-musleabihf': 4.18.0
+ '@rollup/rollup-linux-arm64-gnu': 4.18.0
+ '@rollup/rollup-linux-arm64-musl': 4.18.0
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.18.0
+ '@rollup/rollup-linux-s390x-gnu': 4.18.0
+ '@rollup/rollup-linux-x64-gnu': 4.18.0
+ '@rollup/rollup-linux-x64-musl': 4.18.0
+ '@rollup/rollup-win32-arm64-msvc': 4.18.0
+ '@rollup/rollup-win32-ia32-msvc': 4.18.0
+ '@rollup/rollup-win32-x64-msvc': 4.18.0
+ fsevents: 2.3.3
+ dev: true
+
+ /run-async@2.4.1:
+ resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
+ engines: {node: '>=0.12.0'}
+ dev: true
+
/run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
dependencies:
@@ -7557,6 +8520,12 @@ packages:
resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==}
dev: false
+ /rxjs@7.8.1:
+ resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
+ dependencies:
+ tslib: 2.6.2
+ dev: true
+
/sade@1.8.1:
resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
engines: {node: '>=6'}
@@ -7573,7 +8542,6 @@ packages:
/safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
- dev: false
/scheduler@0.23.2:
resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
@@ -7603,6 +8571,12 @@ packages:
lru-cache: 6.0.0
dev: true
+ /semver@7.6.2:
+ resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dev: true
+
/sentence-case@3.0.4:
resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==}
dependencies:
@@ -7900,6 +8874,13 @@ packages:
engines: {node: '>=6'}
dev: true
+ /strip-hex-prefix@1.0.0:
+ resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==}
+ engines: {node: '>=6.5.0', npm: '>=3'}
+ dependencies:
+ is-hex-prefixed: 1.0.0
+ dev: true
+
/strip-json-comments@3.1.1:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
@@ -7943,7 +8924,7 @@ packages:
dependencies:
'@jridgewell/gen-mapping': 0.3.5
commander: 4.1.1
- glob: 10.3.12
+ glob: 10.4.1
lines-and-columns: 1.2.4
mz: 2.7.0
pirates: 4.0.6
@@ -7989,6 +8970,10 @@ packages:
/symbol.inspect@1.0.1:
resolution: {integrity: sha512-YQSL4duoHmLhsTD1Pw8RW6TZ5MaTX5rXJnqacJottr2P2LZBF/Yvrc3ku4NUpMOm8aM0KOCqM+UAkMA5HWQCzQ==}
+ /teslabot@1.5.0:
+ resolution: {integrity: sha512-e2MmELhCgrgZEGo7PQu/6bmYG36IDH+YrBI1iGm6jovXkeDIGa3pZ2WSqRjzkuw2vt1EqfkZoV5GpXgqL8QJVg==}
+ dev: true
+
/text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
dev: true
@@ -8008,7 +8993,6 @@ packages:
/through@2.3.8:
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
- dev: false
/timers-browserify@2.0.12:
resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==}
@@ -8032,12 +9016,74 @@ packages:
engines: {node: '>=0.10.0'}
dev: false
+ /tmp@0.0.33:
+ resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
+ engines: {node: '>=0.6.0'}
+ dependencies:
+ os-tmpdir: 1.0.2
+ dev: true
+
/to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
dependencies:
is-number: 7.0.0
+ /ton-crypto-primitives@2.0.0:
+ resolution: {integrity: sha512-K+qKjpS0h9sPW6oExcpxnzuQ7nEgHEiDKwIqE/jWD25o8iFGe3FWj1gKxFNbKE9wwYKc5IV8FwrU+raF0KO5nQ==}
+ dependencies:
+ jssha: 3.2.0
+ dev: true
+
+ /ton-crypto@2.1.0:
+ resolution: {integrity: sha512-PZnmCOShfgq9tCRM8E7hG8nCkpkOyZvDLPXmZN92ZEBrfTT0NKKf0imndkxG5DkgWMjc6IKfgpnEaJDH9qN6ZQ==}
+ dependencies:
+ jssha: 3.2.0
+ ton-crypto-primitives: 2.0.0
+ tweetnacl: 1.0.3
+ dev: true
+
+ /ton-crypto@3.2.0:
+ resolution: {integrity: sha512-fltdBNQ45gARMuGMEOjPZWPJ5eSql8p3CA0Dj7tPv5lhU5ziT8SxXLAzDraR9HJ8YpjBHLVvYyhMLRiEwxgtMQ==}
+ dependencies:
+ jssha: 3.2.0
+ ton-crypto-primitives: 2.0.0
+ tweetnacl: 1.0.3
+ dev: true
+
+ /ton-x@2.1.0:
+ resolution: {integrity: sha512-AJx4kRaRqPdTCQO8ik8E0aICg4NutUgTxnepbjoc7Emi3bMKoANiketmOFK07+vFX9QQO2NoJnqM8kgSsposhw==}
+ dependencies:
+ '@types/bn.js': 5.1.5
+ axios: 0.27.2
+ bn.js: 5.2.1
+ fp-ts: 2.16.6
+ io-ts: 2.2.21(fp-ts@2.16.6)
+ teslabot: 1.5.0
+ ton: 9.8.0
+ ton-crypto: 3.2.0
+ transitivePeerDependencies:
+ - debug
+ dev: true
+
+ /ton@9.8.0:
+ resolution: {integrity: sha512-aH/7ODiEulPRZracSfQ4KeaV6iDmzjn14+YMsZ9x0sNlzhtP4blMIFXPJFp4BOc4INb5vTrfA0u+JtOoXlBO0A==}
+ dependencies:
+ axios: 0.25.0
+ bn.js: 5.2.0
+ dataloader: 2.2.2
+ ethjs-unit: 0.1.6
+ fp-ts: 2.16.6
+ io-ts: 2.2.21(fp-ts@2.16.6)
+ io-ts-reporters: 2.0.1(fp-ts@2.16.6)(io-ts@2.2.21)
+ symbol.inspect: 1.0.1
+ teslabot: 1.5.0
+ ton-crypto: 2.1.0
+ tweetnacl: 1.0.3
+ transitivePeerDependencies:
+ - debug
+ dev: true
+
/tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
@@ -8109,6 +9155,37 @@ packages:
yn: 3.1.1
dev: true
+ /ts-node@10.9.2(@types/node@20.14.1)(typescript@5.4.5):
+ resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
+ hasBin: true
+ 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
+ dependencies:
+ '@cspotcode/source-map-support': 0.8.1
+ '@tsconfig/node10': 1.0.11
+ '@tsconfig/node12': 1.0.11
+ '@tsconfig/node14': 1.0.3
+ '@tsconfig/node16': 1.0.4
+ '@types/node': 20.14.1
+ acorn: 8.11.3
+ acorn-walk: 8.3.2
+ arg: 4.1.3
+ create-require: 1.1.1
+ diff: 4.0.2
+ make-error: 1.3.6
+ typescript: 5.4.5
+ v8-compile-cache-lib: 3.0.1
+ yn: 3.1.1
+ dev: true
+
/tslib@1.14.1:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
dev: true
@@ -8116,8 +9193,8 @@ packages:
/tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
- /tsup@8.0.2(typescript@5.4.5):
- resolution: {integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ==}
+ /tsup@8.1.0(typescript@5.4.5):
+ resolution: {integrity: sha512-UFdfCAXukax+U6KzeTNO2kAARHcWxmKsnvSPXUcfA1D+kU05XDccCrkffCQpFaWDsZfV0jMyTsxU39VfCp6EOg==}
engines: {node: '>=18'}
hasBin: true
peerDependencies:
@@ -8135,17 +9212,17 @@ packages:
typescript:
optional: true
dependencies:
- bundle-require: 4.0.3(esbuild@0.19.12)
+ bundle-require: 4.2.1(esbuild@0.21.4)
cac: 6.7.14
chokidar: 3.6.0
- debug: 4.3.4(supports-color@8.1.1)
- esbuild: 0.19.12
+ debug: 4.3.5
+ esbuild: 0.21.4
execa: 5.1.1
globby: 11.1.0
joycon: 3.1.1
postcss-load-config: 4.0.2
resolve-from: 5.0.0
- rollup: 4.17.0
+ rollup: 4.18.0
source-map: 0.8.0-beta.0
sucrase: 3.35.0
tree-kill: 1.2.2
@@ -8167,7 +9244,6 @@ packages:
/tweetnacl-util@0.15.1:
resolution: {integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==}
- dev: false
/tweetnacl@1.0.3:
resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==}
@@ -8204,8 +9280,8 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
- /ua-parser-js@1.0.37:
- resolution: {integrity: sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==}
+ /ua-parser-js@1.0.38:
+ resolution: {integrity: sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==}
dev: false
/uint8arrays@3.1.1:
@@ -8380,6 +9456,14 @@ packages:
qs: 6.12.1
dev: true
+ /use-sync-external-store@1.2.0(react@18.3.1):
+ resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ dependencies:
+ react: 18.3.1
+ dev: false
+
/util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
@@ -8472,8 +9556,8 @@ packages:
vfile-message: 4.0.2
dev: false
- /viem@2.9.28(typescript@5.4.5):
- resolution: {integrity: sha512-/1iTg8yQlCNJ+7wSmdsBNB/vhjWqFJtTH6XZXHjGXrZnlBxAtHR5ZAr5TvTJc/2nhVIVE4BkCe5JCrIiSuZodg==}
+ /viem@2.13.5(typescript@5.4.5):
+ resolution: {integrity: sha512-jXkFh52GwBLJJE/OWkPZdXwiO3zpgTL7ebhpMcQkaa7F7xEhYeGBjqs26zn6rjlUYP43JjoAf/VnpmbYTQvR6Q==}
peerDependencies:
typescript: '>=5.0.4'
peerDependenciesMeta:
@@ -8486,7 +9570,7 @@ packages:
'@scure/bip32': 1.3.2
'@scure/bip39': 1.2.1
abitype: 1.0.0(typescript@5.4.5)
- isows: 1.0.3(ws@8.13.0)
+ isows: 1.0.4(ws@8.13.0)
typescript: 5.4.5
ws: 8.13.0
transitivePeerDependencies:
@@ -8502,12 +9586,24 @@ packages:
dependencies:
'@rollup/plugin-inject': 5.0.5
node-stdlib-browser: 1.2.0
- vite: 5.2.10
+ vite: 5.2.10(@types/node@20.14.1)
+ transitivePeerDependencies:
+ - rollup
+ dev: true
+
+ /vite-plugin-node-polyfills@0.21.0(vite@5.2.12):
+ resolution: {integrity: sha512-Sk4DiKnmxN8E0vhgEhzLudfJQfaT8k4/gJ25xvUPG54KjLJ6HAmDKbr4rzDD/QWEY+Lwg80KE85fGYBQihEPQA==}
+ peerDependencies:
+ vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0
+ dependencies:
+ '@rollup/plugin-inject': 5.0.5
+ node-stdlib-browser: 1.2.0
+ vite: 5.2.12
transitivePeerDependencies:
- rollup
dev: true
- /vite@5.2.10:
+ /vite@5.2.10(@types/node@20.14.1):
resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
@@ -8535,6 +9631,7 @@ packages:
terser:
optional: true
dependencies:
+ '@types/node': 20.14.1
esbuild: 0.20.2
postcss: 8.4.38
rollup: 4.17.0
@@ -8542,6 +9639,41 @@ packages:
fsevents: 2.3.3
dev: true
+ /vite@5.2.12:
+ resolution: {integrity: sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^18.0.0 || >=20.0.0
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ dependencies:
+ esbuild: 0.20.2
+ postcss: 8.4.38
+ rollup: 4.18.0
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: true
+
/vm-browserify@1.1.2:
resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==}
dev: true
@@ -8554,6 +9686,12 @@ packages:
resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==}
dev: false
+ /wcwidth@1.0.1:
+ resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
+ dependencies:
+ defaults: 1.0.4
+ dev: true
+
/web-namespaces@2.0.1:
resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
dev: false
@@ -8579,6 +9717,10 @@ packages:
hasBin: true
dev: false
+ /whatwg-fetch@3.6.20:
+ resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==}
+ dev: true
+
/whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
dependencies:
@@ -8728,6 +9870,30 @@ packages:
/zod@3.23.4:
resolution: {integrity: sha512-/AtWOKbBgjzEYYQRNfoGKHObgfAZag6qUJX1VbHo2PRBgS+wfWagEY2mizjfyAPcGesrJOcx/wcl0L9WnVrHFw==}
+ dev: false
+
+ /zod@3.23.8:
+ resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
+
+ /zustand@4.5.2(@types/react@18.3.1)(react@18.3.1):
+ resolution: {integrity: sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g==}
+ engines: {node: '>=12.7.0'}
+ peerDependencies:
+ '@types/react': '>=16.8'
+ immer: '>=9.0.6'
+ react: '>=16.8'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ immer:
+ optional: true
+ react:
+ optional: true
+ dependencies:
+ '@types/react': 18.3.1
+ react: 18.3.1
+ use-sync-external-store: 1.2.0(react@18.3.1)
+ dev: false
/zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
@@ -8740,7 +9906,7 @@ packages:
dependencies:
'@types/fs-extra': 11.0.4
'@types/minimist': 1.2.5
- '@types/node': 18.19.28
+ '@types/node': 18.19.34
'@types/ps-tree': 1.1.6
'@types/which': 3.0.3
chalk: 5.3.0