diff --git a/client/package-lock.json b/client/package-lock.json index 6476420..399d435 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -12,14 +12,18 @@ "@emotion/styled": "^11.8.1", "@mui/icons-material": "^5.5.1", "@mui/material": "^5.5.3", + "crypto-js": "^4.1.1", "file-saver": "^2.0.5", "ipfs-http-client": "^56.0.1", + "jsencrypt": "^3.2.1", "quick-encrypt": "^1.0.8", + "randomstring": "^1.2.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router": "^6.3.0", "react-router-dom": "^6.3.0", "react-scripts": "3.2.0", + "simplebar-react": "^2.3.6", "web3": "^1.6.1" } }, @@ -2066,6 +2070,11 @@ "node": ">= 6" } }, + "node_modules/@juggle/resize-observer": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.3.1.tgz", + "integrity": "sha512-zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw==" + }, "node_modules/@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -4538,6 +4547,11 @@ "node": ">=6" } }, + "node_modules/can-use-dom": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz", + "integrity": "sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo=" + }, "node_modules/caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -5978,6 +5992,11 @@ "node": "*" } }, + "node_modules/crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, "node_modules/css": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", @@ -12168,6 +12187,11 @@ "node": ">=0.4.0" } }, + "node_modules/jsencrypt": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsencrypt/-/jsencrypt-3.2.1.tgz", + "integrity": "sha512-k1sD5QV0KPn+D8uG9AdGzTQuamt82QZ3A3l6f7TRwMU6Oi2Vg0BsL+wZIQBONcraO1pc78ExMdvmBBJ8WhNYUA==" + }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -12524,6 +12548,11 @@ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -12551,6 +12580,11 @@ "lodash._reinterpolate": "^3.0.0" } }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + }, "node_modules/lodash.unescape": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", @@ -13319,11 +13353,7 @@ "name": "@achingbrain/node-fetch", "version": "2.6.7", "resolved": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==", - "license": "MIT", - "engines": { - "node": "4.x || >=6.0.0" - } + "integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==" }, "node_modules/node-forge": { "version": "0.10.0", @@ -15693,6 +15723,34 @@ "safe-buffer": "^5.1.0" } }, + "node_modules/randomstring": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/randomstring/-/randomstring-1.2.2.tgz", + "integrity": "sha512-9FByiB8guWZLbE+akdQiWE3I1I6w7Vn5El4o4y7o5bWQ6DWPcEOp+aLG7Jezc8BVRKKpgJd2ppRX0jnKu1YCfg==", + "dependencies": { + "array-uniq": "1.0.2", + "randombytes": "2.0.3" + }, + "bin": { + "randomstring": "bin/randomstring" + }, + "engines": { + "node": "*" + } + }, + "node_modules/randomstring/node_modules/array-uniq": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz", + "integrity": "sha1-X8w3OSB3VyPP1k1lxkvvU7+eum0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/randomstring/node_modules/randombytes": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz", + "integrity": "sha1-Z0yZdgkBw8QRJ3GjHlIdw0nMCew=" + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -17241,6 +17299,32 @@ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" }, + "node_modules/simplebar": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/simplebar/-/simplebar-5.3.6.tgz", + "integrity": "sha512-FJUMbV+hNDd/m+1/fvD41TXKd5mSdlI5zgBygkaQIV3SffNbcLhSbJT6ufTs8ZNRLJ6i+qc/KCFMqWmvlGWMhA==", + "dependencies": { + "@juggle/resize-observer": "^3.3.1", + "can-use-dom": "^0.1.0", + "core-js": "^3.0.1", + "lodash.debounce": "^4.0.8", + "lodash.memoize": "^4.1.2", + "lodash.throttle": "^4.1.1" + } + }, + "node_modules/simplebar-react": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/simplebar-react/-/simplebar-react-2.3.6.tgz", + "integrity": "sha512-Igm/MRdt+LQ8edTTzjRoaATfXPPMByuUsVvHQHrkX7SH4jmvL85VshtOVcXFrOBspv9vqQtnIrOq/j9VmRSNDQ==", + "dependencies": { + "prop-types": "^15.6.1", + "simplebar": "^5.3.6" + }, + "peerDependencies": { + "react": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0", + "react-dom": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0" + } + }, "node_modules/sisteransi": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.4.tgz", @@ -22121,6 +22205,11 @@ "@types/yargs": "^13.0.0" } }, + "@juggle/resize-observer": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.3.1.tgz", + "integrity": "sha512-zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw==" + }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -24116,6 +24205,11 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, + "can-use-dom": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz", + "integrity": "sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo=" + }, "caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -25338,6 +25432,11 @@ "randomfill": "^1.0.3" } }, + "crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, "css": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", @@ -30346,6 +30445,11 @@ } } }, + "jsencrypt": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsencrypt/-/jsencrypt-3.2.1.tgz", + "integrity": "sha512-k1sD5QV0KPn+D8uG9AdGzTQuamt82QZ3A3l6f7TRwMU6Oi2Vg0BsL+wZIQBONcraO1pc78ExMdvmBBJ8WhNYUA==" + }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -30631,6 +30735,11 @@ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -30658,6 +30767,11 @@ "lodash._reinterpolate": "^3.0.0" } }, + "lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + }, "lodash.unescape": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", @@ -33179,6 +33293,27 @@ "safe-buffer": "^5.1.0" } }, + "randomstring": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/randomstring/-/randomstring-1.2.2.tgz", + "integrity": "sha512-9FByiB8guWZLbE+akdQiWE3I1I6w7Vn5El4o4y7o5bWQ6DWPcEOp+aLG7Jezc8BVRKKpgJd2ppRX0jnKu1YCfg==", + "requires": { + "array-uniq": "1.0.2", + "randombytes": "2.0.3" + }, + "dependencies": { + "array-uniq": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz", + "integrity": "sha1-X8w3OSB3VyPP1k1lxkvvU7+eum0=" + }, + "randombytes": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz", + "integrity": "sha1-Z0yZdgkBw8QRJ3GjHlIdw0nMCew=" + } + } + }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -34450,6 +34585,28 @@ } } }, + "simplebar": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/simplebar/-/simplebar-5.3.6.tgz", + "integrity": "sha512-FJUMbV+hNDd/m+1/fvD41TXKd5mSdlI5zgBygkaQIV3SffNbcLhSbJT6ufTs8ZNRLJ6i+qc/KCFMqWmvlGWMhA==", + "requires": { + "@juggle/resize-observer": "^3.3.1", + "can-use-dom": "^0.1.0", + "core-js": "^3.0.1", + "lodash.debounce": "^4.0.8", + "lodash.memoize": "^4.1.2", + "lodash.throttle": "^4.1.1" + } + }, + "simplebar-react": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/simplebar-react/-/simplebar-react-2.3.6.tgz", + "integrity": "sha512-Igm/MRdt+LQ8edTTzjRoaATfXPPMByuUsVvHQHrkX7SH4jmvL85VshtOVcXFrOBspv9vqQtnIrOq/j9VmRSNDQ==", + "requires": { + "prop-types": "^15.6.1", + "simplebar": "^5.3.6" + } + }, "sisteransi": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.4.tgz", diff --git a/client/package.json b/client/package.json index 6b32ef8..7af138b 100644 --- a/client/package.json +++ b/client/package.json @@ -7,14 +7,18 @@ "@emotion/styled": "^11.8.1", "@mui/icons-material": "^5.5.1", "@mui/material": "^5.5.3", + "crypto-js": "^4.1.1", "file-saver": "^2.0.5", "ipfs-http-client": "^56.0.1", + "jsencrypt": "^3.2.1", "quick-encrypt": "^1.0.8", + "randomstring": "^1.2.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router": "^6.3.0", "react-router-dom": "^6.3.0", "react-scripts": "3.2.0", + "simplebar-react": "^2.3.6", "web3": "^1.6.1" }, "scripts": { diff --git a/client/src/components/Dashboard.js b/client/src/components/Dashboard.js index 9e58f7e..99892a6 100644 --- a/client/src/components/Dashboard.js +++ b/client/src/components/Dashboard.js @@ -17,7 +17,34 @@ import getWeb3 from "../utils/getWeb3"; import ipfs from "../utils/ipfs"; // mui imports -import { Avatar, Button, CardContent } from "@mui/material"; +import { Avatar, Button } from "@mui/material"; +import List from "@mui/material/List"; +import ListItem from "@mui/material/ListItem"; +import Divider from "@mui/material/Divider"; +import ListItemText from "@mui/material/ListItemText"; +import ListItemAvatar from "@mui/material/ListItemAvatar"; +import Typography from "@mui/material/Typography"; +import FileCopyOutlinedIcon from "@mui/icons-material/FileCopyOutlined"; +import { useState } from 'react'; +import { Link as RouterLink } from 'react-router-dom'; +// material +import { + Card, + Table, + Stack, + Checkbox, + TableRow, + TableBody, + TableCell, + Container, + TableContainer, + TablePagination, +} from '@mui/material'; +// components +import Scrollbar from './tools/Scrollbar'; +import ListHead from "./tools/ListHead"; + + var FileSaver = require('file-saver'); @@ -39,7 +66,11 @@ const Dashboard = () => { const [globalContract, setGlobalContract] = React.useState(null); const [globalFiles, setGlobalFiles] = React.useState(null); const [fileAll, setFileAll] = React.useState([]); - const [show, setShow] = React.useState(false); + const [refresh, setRefresh] = React.useState([]); + const [page, setPage] = useState(0); + const [emptyRows, setEmptyrows] = useState(0); + const [rowsPerPage, setRowsPerPage] = useState(7); + const [filterName, setFilterName] = useState(''); React.useEffect(async() => { await getWeb3() @@ -89,45 +120,67 @@ const Dashboard = () => { } }, [userContract]) - const getFiles = async(e) => { - e.preventDefault(); - const files = await globalContract.methods.getAllFiles().call({from: accounts[0]}); - setGlobalFiles(files); - const allfiles = []; - for(var i = 0; i < files[0].length; i++) { - let file = { - fileName: files[0][i], - ipfsHash: files[1][i], - sender: files[2][i] + + React.useEffect(async() => { + if(globalContract) { + const files = await globalContract.methods.getAllFiles().call({from: accounts[0]}); + setGlobalFiles(files); + const allfiles = []; + for(var i = 0; i < files[0].length; i++) { + let file = { + fileName: files[0][i], + ipfsHash: files[1][i], + sender: files[2][i] + } + allfiles.push(file) } - allfiles.push(file) + setFileAll(allfiles); } - setFileAll(allfiles); - console.log(fileAll); - setShow(true); - } + }, [globalContract, refresh]) + const download = async(index) => { const chunks = []; for await (const chunk of ipfs.cat(fileAll[index].ipfsHash)) { chunks.push(...chunk); } - let buf = new Buffer.from(chunks) + let buf = new Buffer.from(chunks); var blob=new Blob([buf],{type:"application/octet-stream;"}); FileSaver.saveAs(blob,fileAll[index].fileName); } - - console.log(name) + const TABLE_HEAD = [ + { id: 'name', label: 'Name', alignRight: false }, + { id: '' }, +]; + const handleChangePage = (event, newPage) => { + setPage(newPage); + }; + const handleChangeRowsPerPage = (event) => { + setRowsPerPage(parseInt(event.target.value, 10)); + setPage(0); + }; return ( - <> +
{name ? - + : - + }

{name} @@ -136,32 +189,65 @@ const Dashboard = () => { {accounts[0]}

- -
-
- - {show && fileAll.length > 0 ? - fileAll.map((file, index) => { - return ( - <> -
  • -
    - {file.fileName} -
    -
    - {file.ipfsHash} -
    -
    - {file.sender} -
    - -
  • - - ) - }) - : null} +
    - + +

    + Files shared +

    + + {/* */} + + + + + {fileAll.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage).map((file,index) => { + + return ( + + + + + + {file.fileName} + + + + + + + + + + + + + ); + })} + +
    +
    + {/*
    */} + + +
    + +
    ); }; diff --git a/client/src/components/Interface.js b/client/src/components/Interface.js index c027218..70072bd 100644 --- a/client/src/components/Interface.js +++ b/client/src/components/Interface.js @@ -17,6 +17,18 @@ import ReceivedFiles from "./ReceivedFiles"; // mui imports import Button from "@mui/material/Button"; import Avatar from "@mui/material/Avatar"; +import '../css/interface.css'; + +// encryption packages +import { JSEncrypt } from "jsencrypt"; +import { padding } from "@mui/system"; +import CompareArrowsIcon from '@mui/icons-material/CompareArrows'; +import { Typography, ListItem, ListItemAvatar, ListItemText, } from "@mui/material"; + +var CryptoJS = require("crypto-js"); +var RandomString = require("randomstring"); +var FileSaver = require('file-saver'); +const quickEncrypt = require("quick-encrypt"); function Interface() { @@ -28,15 +40,18 @@ function Interface() { const [publicKey1, setPublicKey1] = React.useState(""); const [publicKey2, setPublicKey2] = React.useState(""); const [privateKey1, setPrivateKey1] = React.useState(""); - const [privateKey2, setPrivateKey2] = React.useState(""); - const [sender, setSender] = React.useState(""); - const [receiver, setReceiver] = React.useState(""); + const [sender, setSender] = React.useState(null); + const [receiver, setReceiver] = React.useState(null); const [fileName, setFileName] = React.useState(""); const [buffer, setBuffer] = React.useState(""); const [shareChannel, setShareChannel] = React.useState(null); const [acc, setAcc] = React.useState([]); - const [sentFiles, setSentFiles] = React.useState([]); - const [receivedFiles, setReceivedFiles] = React.useState([]); + const [sentFiles1, setSentFiles1] = React.useState({}); + const [sentFiles2, setSentFiles2] = React.useState({}); + const [receivedFiles1, setReceivedFiles1] = React.useState({}); + const [receivedFiles2, setReceivedFiles2] = React.useState({}); + const [wordArray, setWordArray] = React.useState([]); + // const [encrypted, setEncrypted] = React.useState(""); let navigate = useNavigate(); let { id } = useParams(); @@ -48,14 +63,14 @@ function Interface() { } }, []); - React.useEffect(async() => { + React.useEffect(async () => { await getWeb3() - .then(res => setWeb3(res)); + .then(res => setWeb3(res)); // Use web3 to get the user's accounts. }, []) - - React.useEffect(async() => { - if(web3){ + + React.useEffect(async () => { + if (web3) { const accounts = await web3.eth.getAccounts(); setAcc(accounts); const networkId = await web3.eth.net.getId(); @@ -69,133 +84,124 @@ function Interface() { id ); setShareChannel(shareChannelContract); - const users = await shareChannelContract.methods.getChannelUsers().call({from: accounts[0]}) - if(accounts[0] == users['0']) { + const users = await shareChannelContract.methods.getChannelUsers().call({ from: accounts[0] }) + if (accounts[0] == users['0']) { setSender(users['0']); setReceiver(users['1']); - const sent_files = await shareChannelContract.methods.getSentFiles(users['0']).call({from: users['0']}); - setSentFiles(sent_files); - const received_files = await shareChannelContract.methods.getReceivedFiles(users['1']).call({from: users['0']}); - setReceivedFiles(received_files); + const sent1 = await shareChannelContract.methods.getSentFiles1(users['0'], users['1']).call({ from: users['0'] }); + const sent2 = await shareChannelContract.methods.getSentFiles2(users['0'], users['1']).call({ from: users['0'] }); + const received1 = await shareChannelContract.methods.getSentFiles1(users['1'], users['0']).call({ from: users['0'] }); + const received2 = await shareChannelContract.methods.getSentFiles2(users['1'], users['0']).call({ from: users['0'] }); + setSentFiles1(sent1); + setSentFiles2(sent2); + setReceivedFiles1(received1); + setReceivedFiles2(received2); await userStorageContract.methods - .getUser() - .call({ from: users['0'] }) - .then(async (res)=> { - setUserContract1(new web3.eth.Contract( - UserAccount.abi, - res - )); - const uc1 = new web3.eth.Contract( - UserAccount.abi, - res - ) - await uc1.methods.name().call({from:users['0']}) - .then(res => { - setName1(res) - }); - await uc1.methods.publicKey().call({from:users['0']}) - .then(res => { - setPublicKey1(res) - }); - await uc1.methods.getPrivateKey().call({from:users['0']}) - .then(res => { - setPrivateKey1(res) - }); - }) + .getUser() + .call({ from: users['0'] }) + .then(async (res) => { + setUserContract1(new web3.eth.Contract( + UserAccount.abi, + res + )); + const uc1 = new web3.eth.Contract( + UserAccount.abi, + res + ) + await uc1.methods.name().call({ from: users['0'] }) + .then(res => { + setName1(res) + }); + await uc1.methods.publicKey().call({ from: users['0'] }) + .then(res => { + setPublicKey1(res) + }); + await uc1.methods.getPrivateKey().call({ from: users['0'] }) + .then(res => { + setPrivateKey1(res) + }); + }) await userStorageContract.methods - .getUser() - .call({ from: users['1'] }) - .then(async (res)=> { - setUserContract2(new web3.eth.Contract( - UserAccount.abi, - res - )); - const uc2 = new web3.eth.Contract( - UserAccount.abi, - res - ) - await uc2.methods.name().call({from:users['1']}) - .then(res => { - setName2(res) - }); - await uc2.methods.publicKey().call({from:users['1']}) - .then(res => { - setPublicKey2(res) - }); - await uc2.methods.getPrivateKey().call({from:users['1']}) - .then(res => { - setPrivateKey2(res) - }); - }) - }else{ + .getUser() + .call({ from: users['1'] }) + .then(async (res) => { + setUserContract2(new web3.eth.Contract( + UserAccount.abi, + res + )); + const uc2 = new web3.eth.Contract( + UserAccount.abi, + res + ) + await uc2.methods.name().call({ from: users['1'] }) + .then(res => { + setName2(res) + }); + await uc2.methods.publicKey().call({ from: users['1'] }) + .then(res => { + setPublicKey2(res) + }); + }) + } else { setSender(users['1']); setReceiver(users['0']); - const sent_files = await shareChannelContract.methods.getSentFiles(users['1']).call({from: users['1']}); - setSentFiles(sent_files); - const received_files = await shareChannelContract.methods.getReceivedFiles(users['0']).call({from: users['1']}); - setReceivedFiles(received_files); + const sent1 = await shareChannelContract.methods.getSentFiles1(users['1'], users['0']).call({ from: users['1'] }); + const sent2 = await shareChannelContract.methods.getSentFiles2(users['1'], users['0']).call({ from: users['1'] }); + const received1 = await shareChannelContract.methods.getSentFiles1(users['0'], users['1']).call({ from: users['1'] }); + const received2 = await shareChannelContract.methods.getSentFiles2(users['0'], users['1']).call({ from: users['1'] }); + setSentFiles1(sent1); + setSentFiles2(sent2); + setReceivedFiles1(received1); + setReceivedFiles2(received2); await userStorageContract.methods - .getUser() - .call({ from: users['1'] }) - .then(async (res)=> { - setUserContract1(new web3.eth.Contract( - UserAccount.abi, - res - )); - const uc1 = new web3.eth.Contract( - UserAccount.abi, - res - ) - await uc1.methods.name().call({from:users['1']}) - .then(res => { - setName1(res) - }); - await uc1.methods.publicKey().call({from:users['1']}) - .then(res => { - setPublicKey1(res) - }); - await uc1.methods.getPrivateKey().call({from:users['1']}) - .then(res => { - setPrivateKey1(res) - }); - }) + .getUser() + .call({ from: users['1'] }) + .then(async (res) => { + setUserContract1(new web3.eth.Contract( + UserAccount.abi, + res + )); + const uc1 = new web3.eth.Contract( + UserAccount.abi, + res + ) + await uc1.methods.name().call({ from: users['1'] }) + .then(res => { + setName1(res) + }); + await uc1.methods.publicKey().call({ from: users['1'] }) + .then(res => { + setPublicKey1(res) + }); + await uc1.methods.getPrivateKey().call({ from: users['1'] }) + .then(res => { + setPrivateKey1(res) + }); + }) await userStorageContract.methods - .getUser() - .call({ from: users['0'] }) - .then(async (res)=> { - setUserContract2(new web3.eth.Contract( - UserAccount.abi, - res - )); - const uc2 = new web3.eth.Contract( - UserAccount.abi, - res - ) - await uc2.methods.name().call({from:users['0']}) - .then(res => { - setName2(res) - }); - await uc2.methods.publicKey().call({from:users['0']}) - .then(res => { - setPublicKey2(res) - }); - await uc2.methods.getPrivateKey().call({from:users['0']}) - .then(res => { - setPrivateKey2(res) - }); - }) + .getUser() + .call({ from: users['0'] }) + .then(async (res) => { + setUserContract2(new web3.eth.Contract( + UserAccount.abi, + res + )); + const uc2 = new web3.eth.Contract( + UserAccount.abi, + res + ) + await uc2.methods.name().call({ from: users['0'] }) + .then(res => { + setName2(res) + }); + await uc2.methods.publicKey().call({ from: users['0'] }) + .then(res => { + setPublicKey2(res) + }); + }) } - // console.log(userB) - }}, [web3]); - - // const genPassPhrase = keyLength => { - // var randomstring = ""; - // for (var i = 0; i < keyLength; i++) { - // var rnum = Math.floor(Math.random() * chars.length); - // randomstring += chars.substring(rnum, rnum + 1); - // } - // return randomstring; - // }; + } + }, [web3]); const captureFile = event => { event.stopPropagation(); @@ -204,94 +210,126 @@ function Interface() { setFileName(window.file.name) let reader = new window.FileReader(); reader.readAsArrayBuffer(window.file); - reader.onloadend = () => convertToBuffer(reader); - }; - - const convertToBuffer = async reader => { - const buffer = await Buffer.from(reader.result); - this.setState({ buffer: buffer }); + reader.onloadend = () => { + setWordArray(CryptoJS.lib.WordArray.create(reader.result)); + } }; - const shareFile = async(e) => { + const shareFile = async (e) => { e.preventDefault(); - try { - const ipfsData = await ipfs.add(buffer); - const ipfsHash = ipfsData.path; - await shareChannel.methods + const AESkey = RandomString.generate(8); + const encrypted = CryptoJS.AES.encrypt(wordArray, AESkey).toString(); + var quickEncryptSender = quickEncrypt.encrypt(AESkey, publicKey1); + var quickEncryptReceiver = quickEncrypt.encrypt(AESkey, publicKey2); + const ipfsData = await ipfs.add(encrypted); + const ipfsHash = ipfsData.path; + setFileName(""); + await shareChannel.methods .sendFile( fileName, - ipfsHash - ) - .send({ - from: acc[0], + ipfsHash, + quickEncryptSender, + quickEncryptReceiver, + receiver + ).send({ + from: sender, _fileName: fileName, - _ipfsHash: ipfsHash - }) - .then((res) => { - console.log(res) + _ipfsHash: ipfsHash, + _quickEncryptSender: quickEncryptSender, + _quickEncryptReceiver: quickEncryptReceiver, + _receiver: receiver + }).then(async (res) => { + const sent1 = await shareChannel.methods.getSentFiles1(sender, receiver).call({ from: sender }); + const sent2 = await shareChannel.methods.getSentFiles2(sender, receiver).call({ from: sender }); + setSentFiles1(sent1); + setSentFiles2(sent2); }) - .catch((e) => { - console.log(e) - }) - } catch (e) { - console.log(e); - } }; + return ( <> -
    -
    -
    -

    Sent files

    -
    -
    -
    - -

    {name1}

    -
    {sender}
    +
    +
    + +
    +
    + + + + + + + {name1} + + {sender} + + } + sx={{ ml: 1, }} + /> + +
    + +
    + + + + + + + {name2} + + {receiver} + + } + sx={{ ml: 1, }} + /> + +
    - -
    - -

    {name2}

    -
    {receiver}
    + +
    +
    -
    -
    - - -
    -
    -

    Received files

    -
    -
    - {" "} - +
    -
    ); } -export default Interface; +export default Interface; \ No newline at end of file diff --git a/client/src/components/ReceivedFiles.js b/client/src/components/ReceivedFiles.js index 93bf752..444f631 100644 --- a/client/src/components/ReceivedFiles.js +++ b/client/src/components/ReceivedFiles.js @@ -9,120 +9,96 @@ import ListItemText from "@mui/material/ListItemText"; import ListItemAvatar from "@mui/material/ListItemAvatar"; import Typography from "@mui/material/Typography"; import FileCopyOutlinedIcon from "@mui/icons-material/FileCopyOutlined"; +import { Button } from "@mui/material"; +import "../css/scrollbar.css" -export default function ReceivedFiles() { +// file imports +import ipfs from "../utils/ipfs"; +import { convertWordArrayToUint8Array, Utf8ArrayToStr } from '../utils/stringConversion'; +var CryptoJS = require("crypto-js"); +const quickEncrypt = require("quick-encrypt"); +var FileSaver = require('file-saver'); + +export default function ReceivedFiles({ receivedFiles1, receivedFiles2, privateKey }) { + const [fileAll, setFileAll] = React.useState([]); + React.useEffect(() => { + if (Object.keys(receivedFiles1).length > 0 && Object.keys(receivedFiles2).length > 0) { + const allfiles = []; + for (var i = 0; i < receivedFiles1[0].length; i++) { + let file = { + fileName: receivedFiles1[0][i], + ipfsHash: receivedFiles1[1][i], + senderEncryptedAESKey: receivedFiles1[2][i], + receiverEncryptedAESKey: receivedFiles2[0][i], + sender: receivedFiles2[1][i], + receiver: receivedFiles2[2][i], + } + allfiles.push(file) + } + setFileAll(allfiles); + } + }, [receivedFiles1, receivedFiles2]) + + const download = async (index) => { + var AESkey = quickEncrypt.decrypt(fileAll[index].receiverEncryptedAESKey, privateKey); + let resolvedString = ''; + for await (const chunk of ipfs.cat(fileAll[index].ipfsHash)) { + resolvedString += Utf8ArrayToStr(chunk); + } + var decrypted = CryptoJS.AES.decrypt(resolvedString, AESkey); + var uint8array = convertWordArrayToUint8Array(decrypted); + var blob = new Blob([uint8array], { type: "application/octet-stream;" }); + FileSaver.saveAs(blob, fileAll[index].fileName); + } + + return (
    + + + Received files + - - - - - - - File size - - {" 35 MB"} - - } - /> - - - - - - - - - {/* */} - - - - - File size - - {" 25 MB"} - - } - /> - - - - - {/* */} - - - - - File size - - {" 75 MB"} - - } - /> - - - - - {/* */} - - - - - File size - - {" 100 MB"} - - } - /> - + {fileAll.length > 0 ? + fileAll.map((file, index) => { + return ( + <> + + + + + + + + + + ) + }) + :
    No files received
    }
    ); diff --git a/client/src/components/SentFiles.js b/client/src/components/SentFiles.js index 220ea5f..ac71efe 100644 --- a/client/src/components/SentFiles.js +++ b/client/src/components/SentFiles.js @@ -2,6 +2,7 @@ import React from "react"; // mui imports + import List from "@mui/material/List"; import ListItem from "@mui/material/ListItem"; import Divider from "@mui/material/Divider"; @@ -9,120 +10,97 @@ import ListItemText from "@mui/material/ListItemText"; import ListItemAvatar from "@mui/material/ListItemAvatar"; import Typography from "@mui/material/Typography"; import FileCopyOutlinedIcon from "@mui/icons-material/FileCopyOutlined"; +import { Button, Card } from "@mui/material"; +import "../css/scrollbar.css" + +// file imports +import ipfs from "../utils/ipfs"; +import {convertWordArrayToUint8Array, Utf8ArrayToStr} from '../utils/stringConversion'; +var CryptoJS = require("crypto-js"); +const quickEncrypt = require("quick-encrypt"); +var FileSaver = require('file-saver'); + +export default function SentFiles({sentFiles1, sentFiles2, privateKey}) { + const [fileAll, setFileAll] = React.useState([]); + React.useEffect(() => { + if(Object.keys(sentFiles1).length > 0 && Object.keys(sentFiles2).length > 0){ + const allfiles = []; + for(var i = 0; i < sentFiles1[0].length; i++) { + let file = { + fileName: sentFiles1[0][i], + ipfsHash: sentFiles1[1][i], + senderEncryptedAESKey: sentFiles1[2][i], + receiverEncryptedAESKey: sentFiles2[0][i], + sender: sentFiles2[1][i], + receiver: sentFiles2[2][i], + } + allfiles.push(file) + } + setFileAll(allfiles); + } + }, [sentFiles1, sentFiles2]) + + + const download = async(index) => { + var AESkey = quickEncrypt.decrypt(fileAll[index].senderEncryptedAESKey, privateKey); + let resolvedString = ''; + for await (const chunk of ipfs.cat(fileAll[index].ipfsHash)) { + resolvedString += Utf8ArrayToStr(chunk); + } + var decrypted = CryptoJS.AES.decrypt(resolvedString, AESkey); + var uint8array = convertWordArrayToUint8Array(decrypted); + var blob=new Blob([uint8array],{type:"application/octet-stream;"}); + FileSaver.saveAs(blob, fileAll[index].fileName); + } + -export default function SentFiles() { return (
    + + + Sent files + - - - - - - - File size - - {" 35 MB"} - - } - /> - - - - - - - - - {/* */} - - - - - File size - - {" 25 MB"} - - } - /> - - - - - {/* */} - - - - - File size - - {" 75 MB"} - - } - /> - - - - - {/* */} - - - - - File size - - {" 100 MB"} - - } - /> - + {fileAll.length > 0 ? + fileAll.map((file, index) => { + return ( + <> + + + + + + + + + + ) + }) + :
    No files sent
    }
    ); diff --git a/client/src/components/ShareGlobally.js b/client/src/components/ShareGlobally.js index dbb2646..0a8cb55 100644 --- a/client/src/components/ShareGlobally.js +++ b/client/src/components/ShareGlobally.js @@ -20,11 +20,10 @@ import UserAccount from "../contracts/UserAccount.json"; import GlobalShare from "../contracts/GlobalShare.json"; import ipfs from "../utils/ipfs"; -const ShareGlobally = () => { +const ShareGlobally = ({refresh, setRefresh}) => { const [open, setOpen] = React.useState(false); const handleClickOpen = () => { - console.log("hello") setOpen(true); }; @@ -124,7 +123,8 @@ const ShareGlobally = () => { _ipfsHash: ipfsHash }) .then((res) => { - console.log(res) + setRefresh(!refresh); + handleClose(); }) .catch((e) => { console.log(e) @@ -146,7 +146,7 @@ const ShareGlobally = () => { - + Send Globally diff --git a/client/src/components/SharePersonally.js b/client/src/components/SharePersonally.js index fb031d5..77b872d 100644 --- a/client/src/components/SharePersonally.js +++ b/client/src/components/SharePersonally.js @@ -57,17 +57,14 @@ const SharePersonally = () => { FileShare.abi, dn2 && dn2.address ) - // console.log(fileShareContract); const userAddress = await userStorageContract.methods .getUserFromAddress(metaaddress) .call({ from: accounts[0] }); if (userAddress == 0) { - console.log("user doesn't exist") setError(true) - setErrorText("Sorry! The user doesn't exist on our website") + setErrorText("The user doesn't exist on our website") } else { - console.log("user exists") setError(false) setErrorText("") @@ -78,14 +75,11 @@ const SharePersonally = () => { const channel2 = await fileShareContract.methods .getChannel(metaaddress, accounts[0]) .call({ from: accounts[0] }); - - console.log('channels--', channel1, channel2) if (channel1 == 0 && channel2 == 0) { await fileShareContract.methods .createChannel(accounts[0], metaaddress) .send({ from: accounts[0] }); - console.log("created channel") //Get the new channel now. const channel1 = await fileShareContract.methods .getChannel(accounts[0], metaaddress) @@ -100,24 +94,19 @@ const SharePersonally = () => { ShareChannel.abi, channelAddress ); - console.log(shareChannelContract); navigate(`/channel/${channelAddress}`, { replace: true }); } else { - console.log('Channel already exists!', channel1, channel2) let channelAddress = channel1 == 0 ? channel2 : channel1; const shareChannelContract = new web3.eth.Contract( ShareChannel.abi, channelAddress ); - console.log(shareChannelContract); navigate(`/channel/${channelAddress}`, { replace: true }); } } } - const showError = () => { - console.log("error") - } + const checkValidity = () => { try { const address = web3.utils.toChecksumAddress(metaaddress) @@ -137,7 +126,7 @@ const SharePersonally = () => { - + Send File Personally @@ -153,7 +142,6 @@ const SharePersonally = () => { variant="standard" onChange={e => { setMetaaddress(e.target.value) - console.log(metaaddress) }} /> {error && diff --git a/client/src/components/SignUp.js b/client/src/components/SignUp.js index f6dcf4e..07c7be9 100644 --- a/client/src/components/SignUp.js +++ b/client/src/components/SignUp.js @@ -20,6 +20,8 @@ import LockOutlinedIcon from "@mui/icons-material/LockOutlined"; import Typography from "@mui/material/Typography"; import Container from "@mui/material/Container"; import { createTheme, ThemeProvider } from "@mui/material/styles"; +import Paper from '@mui/material/Paper'; +import Grid from '@mui/material/Grid'; const quickEncrypt = require("quick-encrypt"); @@ -56,11 +58,8 @@ const SignUp = () => { useEffect(async () => { try { const userAddress = await check_login(); - console.log(userAddress); if (userAddress != 0) { navigate("/dashboard", { replace: true }); - } else { - console.log("account doesn't exist"); } // Set web3, accounts, and contract to the state, and then proceed with an // example of interacting with the contract's methods. @@ -98,9 +97,6 @@ const SignUp = () => { if (userAddress == 0) { // account doesn't exist on blockchain let keys = quickEncrypt.generate(2048); - console.log(keys); - console.log(keys.public); - console.log(keys.private); await userStorageContract.methods .createUser(name, keys.public, keys.private) .send({ @@ -115,7 +111,6 @@ const SignUp = () => { setMessage( "You have registered successfully, redirecting to dashboard ..." ); - console.log(message); }) .catch((err) => { console.log(err); @@ -133,17 +128,39 @@ const SignUp = () => { return (
    - - + {/* + */} + + + + t.palette.mode === 'light' ? t.palette.grey[50] : t.palette.grey[900], + backgroundSize: 'cover', + backgroundPosition: 'center', + }} + /> + - + @@ -174,13 +191,15 @@ const SignUp = () => { fullWidth variant="contained" sx={{ mt: 3, mb: 2 }} + color="grey" > Sign Up - + +
    ); diff --git a/client/src/components/tools/ListHead.js b/client/src/components/tools/ListHead.js new file mode 100644 index 0000000..16111ff --- /dev/null +++ b/client/src/components/tools/ListHead.js @@ -0,0 +1,57 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +// material +import { Box, Checkbox, TableRow, TableCell, TableHead, TableSortLabel } from '@mui/material'; + +// ---------------------------------------------------------------------- + +const visuallyHidden = { + border: 0, + margin: -1, + padding: 0, + width: '1px', + height: '1px', + overflow: 'hidden', + position: 'absolute', + whiteSpace: 'nowrap', + clip: 'rect(0 0 0 0)', +}; + +ListHead.propTypes = { + rowCount: PropTypes.number, + headLabel: PropTypes.array, +}; + +export default function ListHead({ + order, + orderBy, + rowCount, + headLabel, + numSelected, + onRequestSort, + onSelectAllClick, +}) { + + + return ( + + + + {headLabel.map((headCell) => ( + + + {headCell.label} + + + ))} + + + ); +} \ No newline at end of file diff --git a/client/src/components/tools/Scrollbar.js b/client/src/components/tools/Scrollbar.js new file mode 100644 index 0000000..deb2b5e --- /dev/null +++ b/client/src/components/tools/Scrollbar.js @@ -0,0 +1,64 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import SimpleBarReact from 'simplebar-react'; +// @mui +import { alpha, styled } from '@mui/material/styles'; +import { Box } from '@mui/material'; + +// ---------------------------------------------------------------------- + +const RootStyle = styled('div')(() => ({ + flexGrow: 1, + height: '100%', + overflow: 'hidden', +})); + +const SimpleBarStyle = styled(SimpleBarReact)(({ theme }) => ({ + maxHeight: '100%', + '& .simplebar-scrollbar': { + '&:before': { + backgroundColor: alpha(theme.palette.grey[600], 0.48), + }, + '&.simplebar-visible:before': { + opacity: 1, + }, + }, + '& .simplebar-track.simplebar-vertical': { + width: 10, + }, + '& .simplebar-track.simplebar-horizontal .simplebar-scrollbar': { + height: 6, + }, + '& .simplebar-mask': { + zIndex: 'inherit', + }, +})); + +// ---------------------------------------------------------------------- + +Scrollbar.propTypes = { + children: PropTypes.node.isRequired, + sx: PropTypes.object, +}; + +export default function Scrollbar({ children, sx, ...other }) { + const userAgent = typeof navigator === 'undefined' ? 'SSR' : navigator.userAgent; + + const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent); + + if (isMobile) { + return ( + + {children} + + ); + } + + return ( + + + {children} + + + ); +} \ No newline at end of file diff --git a/client/src/contracts/FileShare.json b/client/src/contracts/FileShare.json index 60d81a8..a9591d6 100644 --- a/client/src/contracts/FileShare.json +++ b/client/src/contracts/FileShare.json @@ -45,31 +45,31 @@ "constant": true } ], - "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_userB\",\"type\":\"address\"}],\"name\":\"createChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_userB\",\"type\":\"address\"}],\"name\":\"getChannel\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/FileShare.sol\":\"FileShare\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/FileShare.sol\":{\"keccak256\":\"0x5683faad83f67cac5e83a0cf4a850bc07a28fde0e23dec405bc7f4962ba10481\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://57f1ff9e754b0c55586703e601a8116f23d1c6968b3b2f28a6f75536ecfa5da7\",\"dweb:/ipfs/QmPErjq6ysZfNwpBb9beFvMToKWJECjaNh6ceJi7Nm611r\"]},\"project:/contracts/ShareChannel.sol\":{\"keccak256\":\"0x71dfedae5428c837886b2b9fcebed8606662fdefaee125dc2622fbbd63b62501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://386a104835ee4348e8f7af51c77a2e336a14909c0e4b9f73d581b82e3dfa444c\",\"dweb:/ipfs/QmbeAsUeTPR4guCgb33CbvQmdoNoZ9ZKxqY5QDU8QGUHeG\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50612239806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806335a1ba6f1461003b578063aee26d3f14610057575b600080fd5b610055600480360381019061005091906103e6565b610087565b005b610071600480360381019061006c91906103e6565b610182565b60405161007e9190610435565b60405180910390f35b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806100ec57508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b801561016b5750600073ffffffffffffffffffffffffffffffffffffffff1660016101178484610242565b60405161012491906104ca565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61017457600080fd5b61017e828261026e565b5050565b60008273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806101e957508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6101f257600080fd5b60016101fe8484610242565b60405161020b91906104ca565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60608282604051602001610257929190610580565b604051602081830303815290604052905092915050565b6000828260405161027e90610376565b6102899291906105b7565b604051809103906000f0801580156102a5573d6000803e3d6000fd5b5090506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016103188585610242565b60405161032591906104ca565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b611c23806105e183390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103b382610388565b9050919050565b6103c3816103a8565b81146103ce57600080fd5b50565b6000813590506103e0816103ba565b92915050565b600080604083850312156103fd576103fc610383565b5b600061040b858286016103d1565b925050602061041c858286016103d1565b9150509250929050565b61042f816103a8565b82525050565b600060208201905061044a6000830184610426565b92915050565b600081519050919050565b600081905092915050565b60005b83811015610484578082015181840152602081019050610469565b83811115610493576000848401525b50505050565b60006104a482610450565b6104ae818561045b565b93506104be818560208601610466565b80840191505092915050565b60006104d68284610499565b915081905092915050565b60008160601b9050919050565b60006104f9826104e1565b9050919050565b600061050b826104ee565b9050919050565b61052361051e826103a8565b610500565b82525050565b600081905092915050565b7f5f00000000000000000000000000000000000000000000000000000000000000600082015250565b600061056a600183610529565b915061057582610534565b600182019050919050565b600061058c8285610512565b60148201915061059b8261055d565b91506105a78284610512565b6014820191508190509392505050565b60006040820190506105cc6000830185610426565b6105d96020830184610426565b939250505056fe60806040523480156200001157600080fd5b5060405162001c2338038062001c2383398181016040528101906200003791906200012a565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000171565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000f282620000c5565b9050919050565b6200010481620000e5565b81146200011057600080fd5b50565b6000815190506200012481620000f9565b92915050565b60008060408385031215620001445762000143620000c0565b5b6000620001548582860162000113565b9250506020620001678582860162000113565b9150509250929050565b611aa280620001816000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a73e75711161005b578063a73e7571146100d6578063cb1a295f146100f2578063deb22e9a14610110578063e9ad32391461012e5761007d565b80634266f8c51461008257806393b0394c1461009e578063a6aeff57146100ba575b600080fd5b61009c600480360381019061009791906116a9565b61014d565b005b6100b860048036038101906100b391906116a9565b610211565b005b6100d460048036038101906100cf919061181c565b6102d5565b005b6100f060048036038101906100eb919061181c565b61039a565b005b6100fa61045f565b6040516101079190611916565b60405180910390f35b610118610485565b6040516101259190611916565b60405180910390f35b6101366104a9565b604051610144929190611931565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806101f45750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6101fd57600080fd5b6102088160016104f8565b50505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102b85750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6102c157600080fd5b6102cc8160006104f8565b50505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061037c5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61038557600080fd5b61039385858585338661054d565b5050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104415750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61044a57600080fd5b61045885858585853361054d565b5050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915091509091565b60608060608060608060008060006105108b8b6106e3565b92509250925060008060006105258e8e610e0a565b9250925092508585858585859b509b509b509b509b509b505050505050509295509295509295565b60006040518060c001604052808881526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152509050600281908060018154018082558091505060019003906000526020600020906006020160009091909190915060008201518160000190805190602001906105f2929190611594565b50602082015181600101908051906020019061060f929190611594565b50604082015181600201908051906020019061062c929190611594565b506060820151816003019080519060200190610649929190611594565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050565b606080606060006106f48686611443565b905060008167ffffffffffffffff811115610712576107116116f1565b5b60405190808252806020026020018201604052801561074557816020015b60608152602001906001900390816107305790505b50905060008267ffffffffffffffff811115610764576107636116f1565b5b60405190808252806020026020018201604052801561079757816020015b60608152602001906001900390816107825790505b50905060008367ffffffffffffffff8111156107b6576107b56116f1565b5b6040519080825280602002602001820160405280156107e957816020015b60608152602001906001900390816107d45790505b5090506000805b600280549050811015610df4578915610af4578a73ffffffffffffffffffffffffffffffffffffffff166002828154811061082e5761082d61195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610aef57600281815481106108905761088f61195a565b5b906000526020600020906006020160000180546108ac906119b8565b80601f01602080910402602001604051908101604052809291908181526020018280546108d8906119b8565b80156109255780601f106108fa57610100808354040283529160200191610925565b820191906000526020600020905b81548152906001019060200180831161090857829003601f168201915b505050505085838151811061093d5761093c61195a565b5b60200260200101819052506002818154811061095c5761095b61195a565b5b90600052602060002090600602016001018054610978906119b8565b80601f01602080910402602001604051908101604052809291908181526020018280546109a4906119b8565b80156109f15780601f106109c6576101008083540402835291602001916109f1565b820191906000526020600020905b8154815290600101906020018083116109d457829003601f168201915b5050505050848381518110610a0957610a0861195a565b5b602002602001018190525060028181548110610a2857610a2761195a565b5b90600052602060002090600602016002018054610a44906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a70906119b8565b8015610abd5780601f10610a9257610100808354040283529160200191610abd565b820191906000526020600020905b815481529060010190602001808311610aa057829003601f168201915b5050505050838381518110610ad557610ad461195a565b5b60200260200101819052508180610aeb90611a23565b9250505b610de1565b8a73ffffffffffffffffffffffffffffffffffffffff1660028281548110610b1f57610b1e61195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610de05760028181548110610b8157610b8061195a565b5b90600052602060002090600602016000018054610b9d906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc9906119b8565b8015610c165780601f10610beb57610100808354040283529160200191610c16565b820191906000526020600020905b815481529060010190602001808311610bf957829003601f168201915b5050505050858381518110610c2e57610c2d61195a565b5b602002602001018190525060028181548110610c4d57610c4c61195a565b5b90600052602060002090600602016001018054610c69906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610c95906119b8565b8015610ce25780601f10610cb757610100808354040283529160200191610ce2565b820191906000526020600020905b815481529060010190602001808311610cc557829003601f168201915b5050505050848381518110610cfa57610cf961195a565b5b602002602001018190525060028181548110610d1957610d1861195a565b5b90600052602060002090600602016002018054610d35906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610d61906119b8565b8015610dae5780601f10610d8357610100808354040283529160200191610dae565b820191906000526020600020905b815481529060010190602001808311610d9157829003601f168201915b5050505050838381518110610dc657610dc561195a565b5b60200260200101819052508180610ddc90611a23565b9250505b5b8080610dec90611a23565b9150506107f0565b5083838397509750975050505050509250925092565b60608060606000610e1b8686611443565b905060008167ffffffffffffffff811115610e3957610e386116f1565b5b604051908082528060200260200182016040528015610e6c57816020015b6060815260200190600190039081610e575790505b50905060008267ffffffffffffffff811115610e8b57610e8a6116f1565b5b604051908082528060200260200182016040528015610eb95781602001602082028036833780820191505090505b50905060008367ffffffffffffffff811115610ed857610ed76116f1565b5b604051908082528060200260200182016040528015610f065781602001602082028036833780820191505090505b5090506000805b60028054905081101561142d57891561119f578a73ffffffffffffffffffffffffffffffffffffffff1660028281548110610f4b57610f4a61195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561119a5760028181548110610fad57610fac61195a565b5b90600052602060002090600602016003018054610fc9906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff5906119b8565b80156110425780601f1061101757610100808354040283529160200191611042565b820191906000526020600020905b81548152906001019060200180831161102557829003601f168201915b505050505085838151811061105a5761105961195a565b5b6020026020010181905250600281815481106110795761107861195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168483815181106110be576110bd61195a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506002818154811061110c5761110b61195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383815181106111515761115061195a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818061119690611a23565b9250505b61141a565b8a73ffffffffffffffffffffffffffffffffffffffff16600282815481106111ca576111c961195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611419576002818154811061122c5761122b61195a565b5b90600052602060002090600602016003018054611248906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611274906119b8565b80156112c15780601f10611296576101008083540402835291602001916112c1565b820191906000526020600020905b8154815290600101906020018083116112a457829003601f168201915b50505050508583815181106112d9576112d861195a565b5b6020026020010181905250600281815481106112f8576112f761195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684838151811061133d5761133c61195a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506002818154811061138b5761138a61195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383815181106113d0576113cf61195a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818061141590611a23565b9250505b5b808061142590611a23565b915050610f0d565b5083838397509750975050505050509250925092565b6000806000905060005b6002805490508110156115895783156114ed578473ffffffffffffffffffffffffffffffffffffffff166002828154811061148b5761148a61195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156114e85781806114e490611a23565b9250505b611576565b8473ffffffffffffffffffffffffffffffffffffffff16600282815481106115185761151761195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561157557818061157190611a23565b9250505b5b808061158190611a23565b91505061144d565b508091505092915050565b8280546115a0906119b8565b90600052602060002090601f0160209004810192826115c25760008555611609565b82601f106115db57805160ff1916838001178555611609565b82800160010185558215611609579182015b828111156116085782518255916020019190600101906115ed565b5b509050611616919061161a565b5090565b5b8082111561163357600081600090555060010161161b565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116768261164b565b9050919050565b6116868161166b565b811461169157600080fd5b50565b6000813590506116a38161167d565b92915050565b6000602082840312156116bf576116be611641565b5b60006116cd84828501611694565b91505092915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611729826116e0565b810181811067ffffffffffffffff82111715611748576117476116f1565b5b80604052505050565b600061175b611637565b90506117678282611720565b919050565b600067ffffffffffffffff821115611787576117866116f1565b5b611790826116e0565b9050602081019050919050565b82818337600083830152505050565b60006117bf6117ba8461176c565b611751565b9050828152602081018484840111156117db576117da6116db565b5b6117e684828561179d565b509392505050565b600082601f830112611803576118026116d6565b5b81356118138482602086016117ac565b91505092915050565b600080600080600060a0868803121561183857611837611641565b5b600086013567ffffffffffffffff81111561185657611855611646565b5b611862888289016117ee565b955050602086013567ffffffffffffffff81111561188357611882611646565b5b61188f888289016117ee565b945050604086013567ffffffffffffffff8111156118b0576118af611646565b5b6118bc888289016117ee565b935050606086013567ffffffffffffffff8111156118dd576118dc611646565b5b6118e9888289016117ee565b92505060806118fa88828901611694565b9150509295509295909350565b6119108161166b565b82525050565b600060208201905061192b6000830184611907565b92915050565b60006040820190506119466000830185611907565b6119536020830184611907565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806119d057607f821691505b602082108114156119e4576119e3611989565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000611a2e82611a19565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611a6157611a606119ea565b5b60018201905091905056fea264697066735822122027020938ebf48efbff73a708a517686db280ebe191e8b5532187334b2755997a64736f6c634300080a0033a26469706673582212201564bf62338d74e318e928453322c1ee992ed1935d34b7b9247b791893b9958d64736f6c634300080a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806335a1ba6f1461003b578063aee26d3f14610057575b600080fd5b610055600480360381019061005091906103e6565b610087565b005b610071600480360381019061006c91906103e6565b610182565b60405161007e9190610435565b60405180910390f35b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806100ec57508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b801561016b5750600073ffffffffffffffffffffffffffffffffffffffff1660016101178484610242565b60405161012491906104ca565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61017457600080fd5b61017e828261026e565b5050565b60008273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806101e957508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6101f257600080fd5b60016101fe8484610242565b60405161020b91906104ca565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60608282604051602001610257929190610580565b604051602081830303815290604052905092915050565b6000828260405161027e90610376565b6102899291906105b7565b604051809103906000f0801580156102a5573d6000803e3d6000fd5b5090506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016103188585610242565b60405161032591906104ca565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b611c23806105e183390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103b382610388565b9050919050565b6103c3816103a8565b81146103ce57600080fd5b50565b6000813590506103e0816103ba565b92915050565b600080604083850312156103fd576103fc610383565b5b600061040b858286016103d1565b925050602061041c858286016103d1565b9150509250929050565b61042f816103a8565b82525050565b600060208201905061044a6000830184610426565b92915050565b600081519050919050565b600081905092915050565b60005b83811015610484578082015181840152602081019050610469565b83811115610493576000848401525b50505050565b60006104a482610450565b6104ae818561045b565b93506104be818560208601610466565b80840191505092915050565b60006104d68284610499565b915081905092915050565b60008160601b9050919050565b60006104f9826104e1565b9050919050565b600061050b826104ee565b9050919050565b61052361051e826103a8565b610500565b82525050565b600081905092915050565b7f5f00000000000000000000000000000000000000000000000000000000000000600082015250565b600061056a600183610529565b915061057582610534565b600182019050919050565b600061058c8285610512565b60148201915061059b8261055d565b91506105a78284610512565b6014820191508190509392505050565b60006040820190506105cc6000830185610426565b6105d96020830184610426565b939250505056fe60806040523480156200001157600080fd5b5060405162001c2338038062001c2383398181016040528101906200003791906200012a565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000171565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000f282620000c5565b9050919050565b6200010481620000e5565b81146200011057600080fd5b50565b6000815190506200012481620000f9565b92915050565b60008060408385031215620001445762000143620000c0565b5b6000620001548582860162000113565b9250506020620001678582860162000113565b9150509250929050565b611aa280620001816000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a73e75711161005b578063a73e7571146100d6578063cb1a295f146100f2578063deb22e9a14610110578063e9ad32391461012e5761007d565b80634266f8c51461008257806393b0394c1461009e578063a6aeff57146100ba575b600080fd5b61009c600480360381019061009791906116a9565b61014d565b005b6100b860048036038101906100b391906116a9565b610211565b005b6100d460048036038101906100cf919061181c565b6102d5565b005b6100f060048036038101906100eb919061181c565b61039a565b005b6100fa61045f565b6040516101079190611916565b60405180910390f35b610118610485565b6040516101259190611916565b60405180910390f35b6101366104a9565b604051610144929190611931565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806101f45750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6101fd57600080fd5b6102088160016104f8565b50505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102b85750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6102c157600080fd5b6102cc8160006104f8565b50505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061037c5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61038557600080fd5b61039385858585338661054d565b5050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104415750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61044a57600080fd5b61045885858585853361054d565b5050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915091509091565b60608060608060608060008060006105108b8b6106e3565b92509250925060008060006105258e8e610e0a565b9250925092508585858585859b509b509b509b509b509b505050505050509295509295509295565b60006040518060c001604052808881526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152509050600281908060018154018082558091505060019003906000526020600020906006020160009091909190915060008201518160000190805190602001906105f2929190611594565b50602082015181600101908051906020019061060f929190611594565b50604082015181600201908051906020019061062c929190611594565b506060820151816003019080519060200190610649929190611594565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050565b606080606060006106f48686611443565b905060008167ffffffffffffffff811115610712576107116116f1565b5b60405190808252806020026020018201604052801561074557816020015b60608152602001906001900390816107305790505b50905060008267ffffffffffffffff811115610764576107636116f1565b5b60405190808252806020026020018201604052801561079757816020015b60608152602001906001900390816107825790505b50905060008367ffffffffffffffff8111156107b6576107b56116f1565b5b6040519080825280602002602001820160405280156107e957816020015b60608152602001906001900390816107d45790505b5090506000805b600280549050811015610df4578915610af4578a73ffffffffffffffffffffffffffffffffffffffff166002828154811061082e5761082d61195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610aef57600281815481106108905761088f61195a565b5b906000526020600020906006020160000180546108ac906119b8565b80601f01602080910402602001604051908101604052809291908181526020018280546108d8906119b8565b80156109255780601f106108fa57610100808354040283529160200191610925565b820191906000526020600020905b81548152906001019060200180831161090857829003601f168201915b505050505085838151811061093d5761093c61195a565b5b60200260200101819052506002818154811061095c5761095b61195a565b5b90600052602060002090600602016001018054610978906119b8565b80601f01602080910402602001604051908101604052809291908181526020018280546109a4906119b8565b80156109f15780601f106109c6576101008083540402835291602001916109f1565b820191906000526020600020905b8154815290600101906020018083116109d457829003601f168201915b5050505050848381518110610a0957610a0861195a565b5b602002602001018190525060028181548110610a2857610a2761195a565b5b90600052602060002090600602016002018054610a44906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a70906119b8565b8015610abd5780601f10610a9257610100808354040283529160200191610abd565b820191906000526020600020905b815481529060010190602001808311610aa057829003601f168201915b5050505050838381518110610ad557610ad461195a565b5b60200260200101819052508180610aeb90611a23565b9250505b610de1565b8a73ffffffffffffffffffffffffffffffffffffffff1660028281548110610b1f57610b1e61195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610de05760028181548110610b8157610b8061195a565b5b90600052602060002090600602016000018054610b9d906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc9906119b8565b8015610c165780601f10610beb57610100808354040283529160200191610c16565b820191906000526020600020905b815481529060010190602001808311610bf957829003601f168201915b5050505050858381518110610c2e57610c2d61195a565b5b602002602001018190525060028181548110610c4d57610c4c61195a565b5b90600052602060002090600602016001018054610c69906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610c95906119b8565b8015610ce25780601f10610cb757610100808354040283529160200191610ce2565b820191906000526020600020905b815481529060010190602001808311610cc557829003601f168201915b5050505050848381518110610cfa57610cf961195a565b5b602002602001018190525060028181548110610d1957610d1861195a565b5b90600052602060002090600602016002018054610d35906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610d61906119b8565b8015610dae5780601f10610d8357610100808354040283529160200191610dae565b820191906000526020600020905b815481529060010190602001808311610d9157829003601f168201915b5050505050838381518110610dc657610dc561195a565b5b60200260200101819052508180610ddc90611a23565b9250505b5b8080610dec90611a23565b9150506107f0565b5083838397509750975050505050509250925092565b60608060606000610e1b8686611443565b905060008167ffffffffffffffff811115610e3957610e386116f1565b5b604051908082528060200260200182016040528015610e6c57816020015b6060815260200190600190039081610e575790505b50905060008267ffffffffffffffff811115610e8b57610e8a6116f1565b5b604051908082528060200260200182016040528015610eb95781602001602082028036833780820191505090505b50905060008367ffffffffffffffff811115610ed857610ed76116f1565b5b604051908082528060200260200182016040528015610f065781602001602082028036833780820191505090505b5090506000805b60028054905081101561142d57891561119f578a73ffffffffffffffffffffffffffffffffffffffff1660028281548110610f4b57610f4a61195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561119a5760028181548110610fad57610fac61195a565b5b90600052602060002090600602016003018054610fc9906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff5906119b8565b80156110425780601f1061101757610100808354040283529160200191611042565b820191906000526020600020905b81548152906001019060200180831161102557829003601f168201915b505050505085838151811061105a5761105961195a565b5b6020026020010181905250600281815481106110795761107861195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168483815181106110be576110bd61195a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506002818154811061110c5761110b61195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383815181106111515761115061195a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818061119690611a23565b9250505b61141a565b8a73ffffffffffffffffffffffffffffffffffffffff16600282815481106111ca576111c961195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611419576002818154811061122c5761122b61195a565b5b90600052602060002090600602016003018054611248906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611274906119b8565b80156112c15780601f10611296576101008083540402835291602001916112c1565b820191906000526020600020905b8154815290600101906020018083116112a457829003601f168201915b50505050508583815181106112d9576112d861195a565b5b6020026020010181905250600281815481106112f8576112f761195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684838151811061133d5761133c61195a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506002818154811061138b5761138a61195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383815181106113d0576113cf61195a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818061141590611a23565b9250505b5b808061142590611a23565b915050610f0d565b5083838397509750975050505050509250925092565b6000806000905060005b6002805490508110156115895783156114ed578473ffffffffffffffffffffffffffffffffffffffff166002828154811061148b5761148a61195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156114e85781806114e490611a23565b9250505b611576565b8473ffffffffffffffffffffffffffffffffffffffff16600282815481106115185761151761195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561157557818061157190611a23565b9250505b5b808061158190611a23565b91505061144d565b508091505092915050565b8280546115a0906119b8565b90600052602060002090601f0160209004810192826115c25760008555611609565b82601f106115db57805160ff1916838001178555611609565b82800160010185558215611609579182015b828111156116085782518255916020019190600101906115ed565b5b509050611616919061161a565b5090565b5b8082111561163357600081600090555060010161161b565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116768261164b565b9050919050565b6116868161166b565b811461169157600080fd5b50565b6000813590506116a38161167d565b92915050565b6000602082840312156116bf576116be611641565b5b60006116cd84828501611694565b91505092915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611729826116e0565b810181811067ffffffffffffffff82111715611748576117476116f1565b5b80604052505050565b600061175b611637565b90506117678282611720565b919050565b600067ffffffffffffffff821115611787576117866116f1565b5b611790826116e0565b9050602081019050919050565b82818337600083830152505050565b60006117bf6117ba8461176c565b611751565b9050828152602081018484840111156117db576117da6116db565b5b6117e684828561179d565b509392505050565b600082601f830112611803576118026116d6565b5b81356118138482602086016117ac565b91505092915050565b600080600080600060a0868803121561183857611837611641565b5b600086013567ffffffffffffffff81111561185657611855611646565b5b611862888289016117ee565b955050602086013567ffffffffffffffff81111561188357611882611646565b5b61188f888289016117ee565b945050604086013567ffffffffffffffff8111156118b0576118af611646565b5b6118bc888289016117ee565b935050606086013567ffffffffffffffff8111156118dd576118dc611646565b5b6118e9888289016117ee565b92505060806118fa88828901611694565b9150509295509295909350565b6119108161166b565b82525050565b600060208201905061192b6000830184611907565b92915050565b60006040820190506119466000830185611907565b6119536020830184611907565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806119d057607f821691505b602082108114156119e4576119e3611989565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000611a2e82611a19565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611a6157611a606119ea565b5b60018201905091905056fea264697066735822122027020938ebf48efbff73a708a517686db280ebe191e8b5532187334b2755997a64736f6c634300080a0033a26469706673582212201564bf62338d74e318e928453322c1ee992ed1935d34b7b9247b791893b9958d64736f6c634300080a0033", + "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_userB\",\"type\":\"address\"}],\"name\":\"createChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_userB\",\"type\":\"address\"}],\"name\":\"getChannel\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/FileShare.sol\":\"FileShare\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/FileShare.sol\":{\"keccak256\":\"0x5683faad83f67cac5e83a0cf4a850bc07a28fde0e23dec405bc7f4962ba10481\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://57f1ff9e754b0c55586703e601a8116f23d1c6968b3b2f28a6f75536ecfa5da7\",\"dweb:/ipfs/QmPErjq6ysZfNwpBb9beFvMToKWJECjaNh6ceJi7Nm611r\"]},\"project:/contracts/ShareChannel.sol\":{\"keccak256\":\"0x26486edbc11a43c0841404c0e5b63be6678e5fc7952cc8b89556298b81848193\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a2d0bcff53df904e6a5aefb1e48705da45a62d491be0abe74f64013c14d78d6\",\"dweb:/ipfs/QmR2szTWdGqJqJxQmfWRtPE6SRg9sDKArrejKoZetScWVE\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50612662806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806335a1ba6f1461003b578063aee26d3f14610057575b600080fd5b610055600480360381019061005091906103e6565b610087565b005b610071600480360381019061006c91906103e6565b610182565b60405161007e9190610435565b60405180910390f35b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806100ec57508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b801561016b5750600073ffffffffffffffffffffffffffffffffffffffff1660016101178484610242565b60405161012491906104ca565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61017457600080fd5b61017e828261026e565b5050565b60008273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806101e957508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6101f257600080fd5b60016101fe8484610242565b60405161020b91906104ca565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60608282604051602001610257929190610580565b604051602081830303815290604052905092915050565b6000828260405161027e90610376565b6102899291906105b7565b604051809103906000f0801580156102a5573d6000803e3d6000fd5b5090506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016103188585610242565b60405161032591906104ca565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b61204c806105e183390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103b382610388565b9050919050565b6103c3816103a8565b81146103ce57600080fd5b50565b6000813590506103e0816103ba565b92915050565b600080604083850312156103fd576103fc610383565b5b600061040b858286016103d1565b925050602061041c858286016103d1565b9150509250929050565b61042f816103a8565b82525050565b600060208201905061044a6000830184610426565b92915050565b600081519050919050565b600081905092915050565b60005b83811015610484578082015181840152602081019050610469565b83811115610493576000848401525b50505050565b60006104a482610450565b6104ae818561045b565b93506104be818560208601610466565b80840191505092915050565b60006104d68284610499565b915081905092915050565b60008160601b9050919050565b60006104f9826104e1565b9050919050565b600061050b826104ee565b9050919050565b61052361051e826103a8565b610500565b82525050565b600081905092915050565b7f5f00000000000000000000000000000000000000000000000000000000000000600082015250565b600061056a600183610529565b915061057582610534565b600182019050919050565b600061058c8285610512565b60148201915061059b8261055d565b91506105a78284610512565b6014820191508190509392505050565b60006040820190506105cc6000830185610426565b6105d96020830184610426565b939250505056fe60806040523480156200001157600080fd5b506040516200204c3803806200204c83398181016040528101906200003791906200012a565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000171565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000f282620000c5565b9050919050565b6200010481620000e5565b81146200011057600080fd5b50565b6000815190506200012481620000f9565b92915050565b60008060408385031215620001445762000143620000c0565b5b6000620001548582860162000113565b9250506020620001678582860162000113565b9150509250929050565b611ecb80620001816000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a6aeff571161005b578063a6aeff5714610109578063cb1a295f14610125578063deb22e9a14610143578063e9ad3239146101615761007d565b80631a936e9e1461008257806377e371e6146100b4578063914e3144146100e6575b600080fd5b61009c6004803603810190610097919061173e565b610180565b6040516100ab939291906118d9565b60405180910390f35b6100ce60048036038101906100c9919061173e565b610747565b6040516100dd939291906119e3565b60405180910390f35b6100ee610c92565b60405161010096959493929190611a2f565b60405180910390f35b610123600480360381019061011e9190611bef565b611335565b005b61012d6113fa565b60405161013a9190611ce9565b60405180910390f35b61014b611420565b6040516101589190611ce9565b60405180910390f35b610169611444565b604051610177929190611d04565b60405180910390f35b60608060606000805b6002805490508110156102ad578673ffffffffffffffffffffffffffffffffffffffff16600282815481106101c1576101c0611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561028657508573ffffffffffffffffffffffffffffffffffffffff166002828154811061023c5761023b611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561029a57818061029690611d95565b9250505b80806102a590611d95565b915050610189565b5060008167ffffffffffffffff8111156102ca576102c9611ac4565b5b6040519080825280602002602001820160405280156102fd57816020015b60608152602001906001900390816102e85790505b50905060008267ffffffffffffffff81111561031c5761031b611ac4565b5b60405190808252806020026020018201604052801561034f57816020015b606081526020019060019003908161033a5790505b50905060008367ffffffffffffffff81111561036e5761036d611ac4565b5b6040519080825280602002602001820160405280156103a157816020015b606081526020019060019003908161038c5790505b5090506000805b600280549050811015610731578a73ffffffffffffffffffffffffffffffffffffffff16600282815481106103e0576103df611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156104a557508973ffffffffffffffffffffffffffffffffffffffff166002828154811061045b5761045a611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561071e57600281815481106104be576104bd611d2d565b5b906000526020600020906006020160000180546104da90611e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461050690611e0d565b80156105535780601f1061052857610100808354040283529160200191610553565b820191906000526020600020905b81548152906001019060200180831161053657829003601f168201915b505050505085838151811061056b5761056a611d2d565b5b60200260200101819052506002818154811061058a57610589611d2d565b5b906000526020600020906006020160010180546105a690611e0d565b80601f01602080910402602001604051908101604052809291908181526020018280546105d290611e0d565b801561061f5780601f106105f45761010080835404028352916020019161061f565b820191906000526020600020905b81548152906001019060200180831161060257829003601f168201915b505050505084838151811061063757610636611d2d565b5b60200260200101819052506002818154811061065657610655611d2d565b5b9060005260206000209060060201600201805461067290611e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90611e0d565b80156106eb5780601f106106c0576101008083540402835291602001916106eb565b820191906000526020600020905b8154815290600101906020018083116106ce57829003601f168201915b505050505083838151811061070357610702611d2d565b5b602002602001018190525060018261071b9190611e3f565b91505b808061072990611d95565b9150506103a8565b5083838397509750975050505050509250925092565b60608060606000805b600280549050811015610874578673ffffffffffffffffffffffffffffffffffffffff166002828154811061078857610787611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561084d57508573ffffffffffffffffffffffffffffffffffffffff166002828154811061080357610802611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561086157818061085d90611d95565b9250505b808061086c90611d95565b915050610750565b5060008167ffffffffffffffff81111561089157610890611ac4565b5b6040519080825280602002602001820160405280156108c457816020015b60608152602001906001900390816108af5790505b50905060008267ffffffffffffffff8111156108e3576108e2611ac4565b5b6040519080825280602002602001820160405280156109115781602001602082028036833780820191505090505b50905060008367ffffffffffffffff8111156109305761092f611ac4565b5b60405190808252806020026020018201604052801561095e5781602001602082028036833780820191505090505b5090506000805b600280549050811015610c7c578a73ffffffffffffffffffffffffffffffffffffffff166002828154811061099d5761099c611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015610a6257508973ffffffffffffffffffffffffffffffffffffffff1660028281548110610a1857610a17611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15610c695760028181548110610a7b57610a7a611d2d565b5b90600052602060002090600602016003018054610a9790611e0d565b80601f0160208091040260200160405190810160405280929190818152602001828054610ac390611e0d565b8015610b105780601f10610ae557610100808354040283529160200191610b10565b820191906000526020600020905b815481529060010190602001808311610af357829003601f168201915b5050505050858381518110610b2857610b27611d2d565b5b602002602001018190525060028181548110610b4757610b46611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848381518110610b8c57610b8b611d2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060028181548110610bda57610bd9611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838381518110610c1f57610c1e611d2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600182610c669190611e3f565b91505b8080610c7490611d95565b915050610965565b5083838397509750975050505050509250925092565b606080606080606080600060028054905067ffffffffffffffff811115610cbc57610cbb611ac4565b5b604051908082528060200260200182016040528015610cef57816020015b6060815260200190600190039081610cda5790505b509050600060028054905067ffffffffffffffff811115610d1357610d12611ac4565b5b604051908082528060200260200182016040528015610d4657816020015b6060815260200190600190039081610d315790505b509050600060028054905067ffffffffffffffff811115610d6a57610d69611ac4565b5b604051908082528060200260200182016040528015610d9d57816020015b6060815260200190600190039081610d885790505b509050600060028054905067ffffffffffffffff811115610dc157610dc0611ac4565b5b604051908082528060200260200182016040528015610df457816020015b6060815260200190600190039081610ddf5790505b509050600060028054905067ffffffffffffffff811115610e1857610e17611ac4565b5b604051908082528060200260200182016040528015610e465781602001602082028036833780820191505090505b509050600060028054905067ffffffffffffffff811115610e6a57610e69611ac4565b5b604051908082528060200260200182016040528015610e985781602001602082028036833780820191505090505b50905060005b6002805490508110156113145760028181548110610ebf57610ebe611d2d565b5b90600052602060002090600602016000018054610edb90611e0d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0790611e0d565b8015610f545780601f10610f2957610100808354040283529160200191610f54565b820191906000526020600020905b815481529060010190602001808311610f3757829003601f168201915b5050505050878281518110610f6c57610f6b611d2d565b5b602002602001018190525060028181548110610f8b57610f8a611d2d565b5b90600052602060002090600602016001018054610fa790611e0d565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd390611e0d565b80156110205780601f10610ff557610100808354040283529160200191611020565b820191906000526020600020905b81548152906001019060200180831161100357829003601f168201915b505050505086828151811061103857611037611d2d565b5b60200260200101819052506002818154811061105757611056611d2d565b5b9060005260206000209060060201600201805461107390611e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461109f90611e0d565b80156110ec5780601f106110c1576101008083540402835291602001916110ec565b820191906000526020600020905b8154815290600101906020018083116110cf57829003601f168201915b505050505085828151811061110457611103611d2d565b5b60200260200101819052506002818154811061112357611122611d2d565b5b9060005260206000209060060201600301805461113f90611e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461116b90611e0d565b80156111b85780601f1061118d576101008083540402835291602001916111b8565b820191906000526020600020905b81548152906001019060200180831161119b57829003601f168201915b50505050508482815181106111d0576111cf611d2d565b5b6020026020010181905250600281815481106111ef576111ee611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683828151811061123457611233611d2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506002818154811061128257611281611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168282815181106112c7576112c6611d2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808061130c90611d95565b915050610e9e565b508585858585859b509b509b509b509b509b50505050505050909192939495565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113dc5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113e557600080fd5b6113f3858585853386611493565b5050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915091509091565b60006040518060c001604052808881526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815250905060028190806001815401808255809150506001900390600052602060002090600602016000909190919091506000820151816000019080519060200190611538929190611629565b506020820151816001019080519060200190611555929190611629565b506040820151816002019080519060200190611572929190611629565b50606082015181600301908051906020019061158f929190611629565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050565b82805461163590611e0d565b90600052602060002090601f016020900481019282611657576000855561169e565b82601f1061167057805160ff191683800117855561169e565b8280016001018555821561169e579182015b8281111561169d578251825591602001919060010190611682565b5b5090506116ab91906116af565b5090565b5b808211156116c85760008160009055506001016116b0565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061170b826116e0565b9050919050565b61171b81611700565b811461172657600080fd5b50565b60008135905061173881611712565b92915050565b60008060408385031215611755576117546116d6565b5b600061176385828601611729565b925050602061177485828601611729565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156117e45780820151818401526020810190506117c9565b838111156117f3576000848401525b50505050565b6000601f19601f8301169050919050565b6000611815826117aa565b61181f81856117b5565b935061182f8185602086016117c6565b611838816117f9565b840191505092915050565b600061184f838361180a565b905092915050565b6000602082019050919050565b600061186f8261177e565b6118798185611789565b93508360208202850161188b8561179a565b8060005b858110156118c757848403895281516118a88582611843565b94506118b383611857565b925060208a0199505060018101905061188f565b50829750879550505050505092915050565b600060608201905081810360008301526118f38186611864565b905081810360208301526119078185611864565b9050818103604083015261191b8184611864565b9050949350505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61195a81611700565b82525050565b600061196c8383611951565b60208301905092915050565b6000602082019050919050565b600061199082611925565b61199a8185611930565b93506119a583611941565b8060005b838110156119d65781516119bd8882611960565b97506119c883611978565b9250506001810190506119a9565b5085935050505092915050565b600060608201905081810360008301526119fd8186611864565b90508181036020830152611a118185611985565b90508181036040830152611a258184611985565b9050949350505050565b600060c0820190508181036000830152611a498189611864565b90508181036020830152611a5d8188611864565b90508181036040830152611a718187611864565b90508181036060830152611a858186611864565b90508181036080830152611a998185611985565b905081810360a0830152611aad8184611985565b9050979650505050505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611afc826117f9565b810181811067ffffffffffffffff82111715611b1b57611b1a611ac4565b5b80604052505050565b6000611b2e6116cc565b9050611b3a8282611af3565b919050565b600067ffffffffffffffff821115611b5a57611b59611ac4565b5b611b63826117f9565b9050602081019050919050565b82818337600083830152505050565b6000611b92611b8d84611b3f565b611b24565b905082815260208101848484011115611bae57611bad611abf565b5b611bb9848285611b70565b509392505050565b600082601f830112611bd657611bd5611aba565b5b8135611be6848260208601611b7f565b91505092915050565b600080600080600060a08688031215611c0b57611c0a6116d6565b5b600086013567ffffffffffffffff811115611c2957611c286116db565b5b611c3588828901611bc1565b955050602086013567ffffffffffffffff811115611c5657611c556116db565b5b611c6288828901611bc1565b945050604086013567ffffffffffffffff811115611c8357611c826116db565b5b611c8f88828901611bc1565b935050606086013567ffffffffffffffff811115611cb057611caf6116db565b5b611cbc88828901611bc1565b9250506080611ccd88828901611729565b9150509295509295909350565b611ce381611700565b82525050565b6000602082019050611cfe6000830184611cda565b92915050565b6000604082019050611d196000830185611cda565b611d266020830184611cda565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000611da082611d8b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611dd357611dd2611d5c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e2557607f821691505b60208210811415611e3957611e38611dde565b5b50919050565b6000611e4a82611d8b565b9150611e5583611d8b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611e8a57611e89611d5c565b5b82820190509291505056fea2646970667358221220d187f4deed7c0f58580ee05df173d3ed7044b9a6ba54186f0a0502107683019264736f6c634300080a0033a26469706673582212204ac807be0770db67415f48f9bd2de036fc208c05a202bacc7f5e6ad6ace3a45964736f6c634300080a0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806335a1ba6f1461003b578063aee26d3f14610057575b600080fd5b610055600480360381019061005091906103e6565b610087565b005b610071600480360381019061006c91906103e6565b610182565b60405161007e9190610435565b60405180910390f35b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806100ec57508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b801561016b5750600073ffffffffffffffffffffffffffffffffffffffff1660016101178484610242565b60405161012491906104ca565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61017457600080fd5b61017e828261026e565b5050565b60008273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806101e957508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6101f257600080fd5b60016101fe8484610242565b60405161020b91906104ca565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60608282604051602001610257929190610580565b604051602081830303815290604052905092915050565b6000828260405161027e90610376565b6102899291906105b7565b604051809103906000f0801580156102a5573d6000803e3d6000fd5b5090506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016103188585610242565b60405161032591906104ca565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b61204c806105e183390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103b382610388565b9050919050565b6103c3816103a8565b81146103ce57600080fd5b50565b6000813590506103e0816103ba565b92915050565b600080604083850312156103fd576103fc610383565b5b600061040b858286016103d1565b925050602061041c858286016103d1565b9150509250929050565b61042f816103a8565b82525050565b600060208201905061044a6000830184610426565b92915050565b600081519050919050565b600081905092915050565b60005b83811015610484578082015181840152602081019050610469565b83811115610493576000848401525b50505050565b60006104a482610450565b6104ae818561045b565b93506104be818560208601610466565b80840191505092915050565b60006104d68284610499565b915081905092915050565b60008160601b9050919050565b60006104f9826104e1565b9050919050565b600061050b826104ee565b9050919050565b61052361051e826103a8565b610500565b82525050565b600081905092915050565b7f5f00000000000000000000000000000000000000000000000000000000000000600082015250565b600061056a600183610529565b915061057582610534565b600182019050919050565b600061058c8285610512565b60148201915061059b8261055d565b91506105a78284610512565b6014820191508190509392505050565b60006040820190506105cc6000830185610426565b6105d96020830184610426565b939250505056fe60806040523480156200001157600080fd5b506040516200204c3803806200204c83398181016040528101906200003791906200012a565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000171565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000f282620000c5565b9050919050565b6200010481620000e5565b81146200011057600080fd5b50565b6000815190506200012481620000f9565b92915050565b60008060408385031215620001445762000143620000c0565b5b6000620001548582860162000113565b9250506020620001678582860162000113565b9150509250929050565b611ecb80620001816000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a6aeff571161005b578063a6aeff5714610109578063cb1a295f14610125578063deb22e9a14610143578063e9ad3239146101615761007d565b80631a936e9e1461008257806377e371e6146100b4578063914e3144146100e6575b600080fd5b61009c6004803603810190610097919061173e565b610180565b6040516100ab939291906118d9565b60405180910390f35b6100ce60048036038101906100c9919061173e565b610747565b6040516100dd939291906119e3565b60405180910390f35b6100ee610c92565b60405161010096959493929190611a2f565b60405180910390f35b610123600480360381019061011e9190611bef565b611335565b005b61012d6113fa565b60405161013a9190611ce9565b60405180910390f35b61014b611420565b6040516101589190611ce9565b60405180910390f35b610169611444565b604051610177929190611d04565b60405180910390f35b60608060606000805b6002805490508110156102ad578673ffffffffffffffffffffffffffffffffffffffff16600282815481106101c1576101c0611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561028657508573ffffffffffffffffffffffffffffffffffffffff166002828154811061023c5761023b611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561029a57818061029690611d95565b9250505b80806102a590611d95565b915050610189565b5060008167ffffffffffffffff8111156102ca576102c9611ac4565b5b6040519080825280602002602001820160405280156102fd57816020015b60608152602001906001900390816102e85790505b50905060008267ffffffffffffffff81111561031c5761031b611ac4565b5b60405190808252806020026020018201604052801561034f57816020015b606081526020019060019003908161033a5790505b50905060008367ffffffffffffffff81111561036e5761036d611ac4565b5b6040519080825280602002602001820160405280156103a157816020015b606081526020019060019003908161038c5790505b5090506000805b600280549050811015610731578a73ffffffffffffffffffffffffffffffffffffffff16600282815481106103e0576103df611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156104a557508973ffffffffffffffffffffffffffffffffffffffff166002828154811061045b5761045a611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561071e57600281815481106104be576104bd611d2d565b5b906000526020600020906006020160000180546104da90611e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461050690611e0d565b80156105535780601f1061052857610100808354040283529160200191610553565b820191906000526020600020905b81548152906001019060200180831161053657829003601f168201915b505050505085838151811061056b5761056a611d2d565b5b60200260200101819052506002818154811061058a57610589611d2d565b5b906000526020600020906006020160010180546105a690611e0d565b80601f01602080910402602001604051908101604052809291908181526020018280546105d290611e0d565b801561061f5780601f106105f45761010080835404028352916020019161061f565b820191906000526020600020905b81548152906001019060200180831161060257829003601f168201915b505050505084838151811061063757610636611d2d565b5b60200260200101819052506002818154811061065657610655611d2d565b5b9060005260206000209060060201600201805461067290611e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90611e0d565b80156106eb5780601f106106c0576101008083540402835291602001916106eb565b820191906000526020600020905b8154815290600101906020018083116106ce57829003601f168201915b505050505083838151811061070357610702611d2d565b5b602002602001018190525060018261071b9190611e3f565b91505b808061072990611d95565b9150506103a8565b5083838397509750975050505050509250925092565b60608060606000805b600280549050811015610874578673ffffffffffffffffffffffffffffffffffffffff166002828154811061078857610787611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561084d57508573ffffffffffffffffffffffffffffffffffffffff166002828154811061080357610802611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561086157818061085d90611d95565b9250505b808061086c90611d95565b915050610750565b5060008167ffffffffffffffff81111561089157610890611ac4565b5b6040519080825280602002602001820160405280156108c457816020015b60608152602001906001900390816108af5790505b50905060008267ffffffffffffffff8111156108e3576108e2611ac4565b5b6040519080825280602002602001820160405280156109115781602001602082028036833780820191505090505b50905060008367ffffffffffffffff8111156109305761092f611ac4565b5b60405190808252806020026020018201604052801561095e5781602001602082028036833780820191505090505b5090506000805b600280549050811015610c7c578a73ffffffffffffffffffffffffffffffffffffffff166002828154811061099d5761099c611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015610a6257508973ffffffffffffffffffffffffffffffffffffffff1660028281548110610a1857610a17611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15610c695760028181548110610a7b57610a7a611d2d565b5b90600052602060002090600602016003018054610a9790611e0d565b80601f0160208091040260200160405190810160405280929190818152602001828054610ac390611e0d565b8015610b105780601f10610ae557610100808354040283529160200191610b10565b820191906000526020600020905b815481529060010190602001808311610af357829003601f168201915b5050505050858381518110610b2857610b27611d2d565b5b602002602001018190525060028181548110610b4757610b46611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848381518110610b8c57610b8b611d2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060028181548110610bda57610bd9611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838381518110610c1f57610c1e611d2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600182610c669190611e3f565b91505b8080610c7490611d95565b915050610965565b5083838397509750975050505050509250925092565b606080606080606080600060028054905067ffffffffffffffff811115610cbc57610cbb611ac4565b5b604051908082528060200260200182016040528015610cef57816020015b6060815260200190600190039081610cda5790505b509050600060028054905067ffffffffffffffff811115610d1357610d12611ac4565b5b604051908082528060200260200182016040528015610d4657816020015b6060815260200190600190039081610d315790505b509050600060028054905067ffffffffffffffff811115610d6a57610d69611ac4565b5b604051908082528060200260200182016040528015610d9d57816020015b6060815260200190600190039081610d885790505b509050600060028054905067ffffffffffffffff811115610dc157610dc0611ac4565b5b604051908082528060200260200182016040528015610df457816020015b6060815260200190600190039081610ddf5790505b509050600060028054905067ffffffffffffffff811115610e1857610e17611ac4565b5b604051908082528060200260200182016040528015610e465781602001602082028036833780820191505090505b509050600060028054905067ffffffffffffffff811115610e6a57610e69611ac4565b5b604051908082528060200260200182016040528015610e985781602001602082028036833780820191505090505b50905060005b6002805490508110156113145760028181548110610ebf57610ebe611d2d565b5b90600052602060002090600602016000018054610edb90611e0d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0790611e0d565b8015610f545780601f10610f2957610100808354040283529160200191610f54565b820191906000526020600020905b815481529060010190602001808311610f3757829003601f168201915b5050505050878281518110610f6c57610f6b611d2d565b5b602002602001018190525060028181548110610f8b57610f8a611d2d565b5b90600052602060002090600602016001018054610fa790611e0d565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd390611e0d565b80156110205780601f10610ff557610100808354040283529160200191611020565b820191906000526020600020905b81548152906001019060200180831161100357829003601f168201915b505050505086828151811061103857611037611d2d565b5b60200260200101819052506002818154811061105757611056611d2d565b5b9060005260206000209060060201600201805461107390611e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461109f90611e0d565b80156110ec5780601f106110c1576101008083540402835291602001916110ec565b820191906000526020600020905b8154815290600101906020018083116110cf57829003601f168201915b505050505085828151811061110457611103611d2d565b5b60200260200101819052506002818154811061112357611122611d2d565b5b9060005260206000209060060201600301805461113f90611e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461116b90611e0d565b80156111b85780601f1061118d576101008083540402835291602001916111b8565b820191906000526020600020905b81548152906001019060200180831161119b57829003601f168201915b50505050508482815181106111d0576111cf611d2d565b5b6020026020010181905250600281815481106111ef576111ee611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683828151811061123457611233611d2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506002818154811061128257611281611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168282815181106112c7576112c6611d2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808061130c90611d95565b915050610e9e565b508585858585859b509b509b509b509b509b50505050505050909192939495565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113dc5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113e557600080fd5b6113f3858585853386611493565b5050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915091509091565b60006040518060c001604052808881526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815250905060028190806001815401808255809150506001900390600052602060002090600602016000909190919091506000820151816000019080519060200190611538929190611629565b506020820151816001019080519060200190611555929190611629565b506040820151816002019080519060200190611572929190611629565b50606082015181600301908051906020019061158f929190611629565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050565b82805461163590611e0d565b90600052602060002090601f016020900481019282611657576000855561169e565b82601f1061167057805160ff191683800117855561169e565b8280016001018555821561169e579182015b8281111561169d578251825591602001919060010190611682565b5b5090506116ab91906116af565b5090565b5b808211156116c85760008160009055506001016116b0565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061170b826116e0565b9050919050565b61171b81611700565b811461172657600080fd5b50565b60008135905061173881611712565b92915050565b60008060408385031215611755576117546116d6565b5b600061176385828601611729565b925050602061177485828601611729565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156117e45780820151818401526020810190506117c9565b838111156117f3576000848401525b50505050565b6000601f19601f8301169050919050565b6000611815826117aa565b61181f81856117b5565b935061182f8185602086016117c6565b611838816117f9565b840191505092915050565b600061184f838361180a565b905092915050565b6000602082019050919050565b600061186f8261177e565b6118798185611789565b93508360208202850161188b8561179a565b8060005b858110156118c757848403895281516118a88582611843565b94506118b383611857565b925060208a0199505060018101905061188f565b50829750879550505050505092915050565b600060608201905081810360008301526118f38186611864565b905081810360208301526119078185611864565b9050818103604083015261191b8184611864565b9050949350505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61195a81611700565b82525050565b600061196c8383611951565b60208301905092915050565b6000602082019050919050565b600061199082611925565b61199a8185611930565b93506119a583611941565b8060005b838110156119d65781516119bd8882611960565b97506119c883611978565b9250506001810190506119a9565b5085935050505092915050565b600060608201905081810360008301526119fd8186611864565b90508181036020830152611a118185611985565b90508181036040830152611a258184611985565b9050949350505050565b600060c0820190508181036000830152611a498189611864565b90508181036020830152611a5d8188611864565b90508181036040830152611a718187611864565b90508181036060830152611a858186611864565b90508181036080830152611a998185611985565b905081810360a0830152611aad8184611985565b9050979650505050505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611afc826117f9565b810181811067ffffffffffffffff82111715611b1b57611b1a611ac4565b5b80604052505050565b6000611b2e6116cc565b9050611b3a8282611af3565b919050565b600067ffffffffffffffff821115611b5a57611b59611ac4565b5b611b63826117f9565b9050602081019050919050565b82818337600083830152505050565b6000611b92611b8d84611b3f565b611b24565b905082815260208101848484011115611bae57611bad611abf565b5b611bb9848285611b70565b509392505050565b600082601f830112611bd657611bd5611aba565b5b8135611be6848260208601611b7f565b91505092915050565b600080600080600060a08688031215611c0b57611c0a6116d6565b5b600086013567ffffffffffffffff811115611c2957611c286116db565b5b611c3588828901611bc1565b955050602086013567ffffffffffffffff811115611c5657611c556116db565b5b611c6288828901611bc1565b945050604086013567ffffffffffffffff811115611c8357611c826116db565b5b611c8f88828901611bc1565b935050606086013567ffffffffffffffff811115611cb057611caf6116db565b5b611cbc88828901611bc1565b9250506080611ccd88828901611729565b9150509295509295909350565b611ce381611700565b82525050565b6000602082019050611cfe6000830184611cda565b92915050565b6000604082019050611d196000830185611cda565b611d266020830184611cda565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000611da082611d8b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611dd357611dd2611d5c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e2557607f821691505b60208210811415611e3957611e38611dde565b5b50919050565b6000611e4a82611d8b565b9150611e5583611d8b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611e8a57611e89611d5c565b5b82820190509291505056fea2646970667358221220d187f4deed7c0f58580ee05df173d3ed7044b9a6ba54186f0a0502107683019264736f6c634300080a0033a26469706673582212204ac807be0770db67415f48f9bd2de036fc208c05a202bacc7f5e6ad6ace3a45964736f6c634300080a0033", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [ { "ast": { "nodeType": "YulBlock", - "src": "0:5089:2", + "src": "0:5089:6", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "47:35:2", + "src": "47:35:6", "statements": [ { "nodeType": "YulAssignment", - "src": "57:19:2", + "src": "57:19:6", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "73:2:2", + "src": "73:2:6", "type": "", "value": "64" } @@ -77,16 +77,16 @@ "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "67:5:2" + "src": "67:5:6" }, "nodeType": "YulFunctionCall", - "src": "67:9:2" + "src": "67:9:6" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "57:6:2" + "src": "57:6:6" } ] } @@ -98,16 +98,16 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "40:6:2", + "src": "40:6:6", "type": "" } ], - "src": "7:75:2" + "src": "7:75:6" }, { "body": { "nodeType": "YulBlock", - "src": "177:28:2", + "src": "177:28:6", "statements": [ { "expression": { @@ -115,14 +115,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "194:1:2", + "src": "194:1:6", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "197:1:2", + "src": "197:1:6", "type": "", "value": "0" } @@ -130,24 +130,24 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "187:6:2" + "src": "187:6:6" }, "nodeType": "YulFunctionCall", - "src": "187:12:2" + "src": "187:12:6" }, "nodeType": "YulExpressionStatement", - "src": "187:12:2" + "src": "187:12:6" } ] }, "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulFunctionDefinition", - "src": "88:117:2" + "src": "88:117:6" }, { "body": { "nodeType": "YulBlock", - "src": "300:28:2", + "src": "300:28:6", "statements": [ { "expression": { @@ -155,14 +155,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "317:1:2", + "src": "317:1:6", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "320:1:2", + "src": "320:1:6", "type": "", "value": "0" } @@ -170,39 +170,39 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "310:6:2" + "src": "310:6:6" }, "nodeType": "YulFunctionCall", - "src": "310:12:2" + "src": "310:12:6" }, "nodeType": "YulExpressionStatement", - "src": "310:12:2" + "src": "310:12:6" } ] }, "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulFunctionDefinition", - "src": "211:117:2" + "src": "211:117:6" }, { "body": { "nodeType": "YulBlock", - "src": "379:81:2", + "src": "379:81:6", "statements": [ { "nodeType": "YulAssignment", - "src": "389:65:2", + "src": "389:65:6", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "404:5:2" + "src": "404:5:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "411:42:2", + "src": "411:42:6", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } @@ -210,16 +210,16 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "400:3:2" + "src": "400:3:6" }, "nodeType": "YulFunctionCall", - "src": "400:54:2" + "src": "400:54:6" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", - "src": "389:7:2" + "src": "389:7:6" } ] } @@ -231,7 +231,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "361:5:2", + "src": "361:5:6", "type": "" } ], @@ -239,41 +239,41 @@ { "name": "cleaned", "nodeType": "YulTypedName", - "src": "371:7:2", + "src": "371:7:6", "type": "" } ], - "src": "334:126:2" + "src": "334:126:6" }, { "body": { "nodeType": "YulBlock", - "src": "511:51:2", + "src": "511:51:6", "statements": [ { "nodeType": "YulAssignment", - "src": "521:35:2", + "src": "521:35:6", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "550:5:2" + "src": "550:5:6" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", - "src": "532:17:2" + "src": "532:17:6" }, "nodeType": "YulFunctionCall", - "src": "532:24:2" + "src": "532:24:6" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", - "src": "521:7:2" + "src": "521:7:6" } ] } @@ -285,7 +285,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "493:5:2", + "src": "493:5:6", "type": "" } ], @@ -293,21 +293,21 @@ { "name": "cleaned", "nodeType": "YulTypedName", - "src": "503:7:2", + "src": "503:7:6", "type": "" } ], - "src": "466:96:2" + "src": "466:96:6" }, { "body": { "nodeType": "YulBlock", - "src": "611:79:2", + "src": "611:79:6", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "668:16:2", + "src": "668:16:6", "statements": [ { "expression": { @@ -315,14 +315,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "677:1:2", + "src": "677:1:6", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "680:1:2", + "src": "680:1:6", "type": "", "value": "0" } @@ -330,13 +330,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "670:6:2" + "src": "670:6:6" }, "nodeType": "YulFunctionCall", - "src": "670:12:2" + "src": "670:12:6" }, "nodeType": "YulExpressionStatement", - "src": "670:12:2" + "src": "670:12:6" } ] }, @@ -347,44 +347,44 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "634:5:2" + "src": "634:5:6" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "659:5:2" + "src": "659:5:6" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", - "src": "641:17:2" + "src": "641:17:6" }, "nodeType": "YulFunctionCall", - "src": "641:24:2" + "src": "641:24:6" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "631:2:2" + "src": "631:2:6" }, "nodeType": "YulFunctionCall", - "src": "631:35:2" + "src": "631:35:6" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "624:6:2" + "src": "624:6:6" }, "nodeType": "YulFunctionCall", - "src": "624:43:2" + "src": "624:43:6" }, "nodeType": "YulIf", - "src": "621:63:2" + "src": "621:63:6" } ] }, @@ -394,41 +394,41 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "604:5:2", + "src": "604:5:6", "type": "" } ], - "src": "568:122:2" + "src": "568:122:6" }, { "body": { "nodeType": "YulBlock", - "src": "748:87:2", + "src": "748:87:6", "statements": [ { "nodeType": "YulAssignment", - "src": "758:29:2", + "src": "758:29:6", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "780:6:2" + "src": "780:6:6" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "767:12:2" + "src": "767:12:6" }, "nodeType": "YulFunctionCall", - "src": "767:20:2" + "src": "767:20:6" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "758:5:2" + "src": "758:5:6" } ] }, @@ -438,19 +438,19 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "823:5:2" + "src": "823:5:6" } ], "functionName": { "name": "validator_revert_t_address", "nodeType": "YulIdentifier", - "src": "796:26:2" + "src": "796:26:6" }, "nodeType": "YulFunctionCall", - "src": "796:33:2" + "src": "796:33:6" }, "nodeType": "YulExpressionStatement", - "src": "796:33:2" + "src": "796:33:6" } ] }, @@ -460,13 +460,13 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "726:6:2", + "src": "726:6:6", "type": "" }, { "name": "end", "nodeType": "YulTypedName", - "src": "734:3:2", + "src": "734:3:6", "type": "" } ], @@ -474,21 +474,21 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "742:5:2", + "src": "742:5:6", "type": "" } ], - "src": "696:139:2" + "src": "696:139:6" }, { "body": { "nodeType": "YulBlock", - "src": "924:391:2", + "src": "924:391:6", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "970:83:2", + "src": "970:83:6", "statements": [ { "expression": { @@ -496,13 +496,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "972:77:2" + "src": "972:77:6" }, "nodeType": "YulFunctionCall", - "src": "972:79:2" + "src": "972:79:6" }, "nodeType": "YulExpressionStatement", - "src": "972:79:2" + "src": "972:79:6" } ] }, @@ -513,26 +513,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "945:7:2" + "src": "945:7:6" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "954:9:2" + "src": "954:9:6" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "941:3:2" + "src": "941:3:6" }, "nodeType": "YulFunctionCall", - "src": "941:23:2" + "src": "941:23:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "966:2:2", + "src": "966:2:6", "type": "", "value": "64" } @@ -540,25 +540,25 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "937:3:2" + "src": "937:3:6" }, "nodeType": "YulFunctionCall", - "src": "937:32:2" + "src": "937:32:6" }, "nodeType": "YulIf", - "src": "934:119:2" + "src": "934:119:6" }, { "nodeType": "YulBlock", - "src": "1063:117:2", + "src": "1063:117:6", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "1078:15:2", + "src": "1078:15:6", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "1092:1:2", + "src": "1092:1:6", "type": "", "value": "0" }, @@ -566,14 +566,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "1082:6:2", + "src": "1082:6:6", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "1107:63:2", + "src": "1107:63:6", "value": { "arguments": [ { @@ -581,41 +581,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1142:9:2" + "src": "1142:9:6" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "1153:6:2" + "src": "1153:6:6" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1138:3:2" + "src": "1138:3:6" }, "nodeType": "YulFunctionCall", - "src": "1138:22:2" + "src": "1138:22:6" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "1162:7:2" + "src": "1162:7:6" } ], "functionName": { "name": "abi_decode_t_address", "nodeType": "YulIdentifier", - "src": "1117:20:2" + "src": "1117:20:6" }, "nodeType": "YulFunctionCall", - "src": "1117:53:2" + "src": "1117:53:6" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "1107:6:2" + "src": "1107:6:6" } ] } @@ -623,15 +623,15 @@ }, { "nodeType": "YulBlock", - "src": "1190:118:2", + "src": "1190:118:6", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "1205:16:2", + "src": "1205:16:6", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "1219:2:2", + "src": "1219:2:6", "type": "", "value": "32" }, @@ -639,14 +639,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "1209:6:2", + "src": "1209:6:6", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "1235:63:2", + "src": "1235:63:6", "value": { "arguments": [ { @@ -654,41 +654,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1270:9:2" + "src": "1270:9:6" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "1281:6:2" + "src": "1281:6:6" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1266:3:2" + "src": "1266:3:6" }, "nodeType": "YulFunctionCall", - "src": "1266:22:2" + "src": "1266:22:6" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "1290:7:2" + "src": "1290:7:6" } ], "functionName": { "name": "abi_decode_t_address", "nodeType": "YulIdentifier", - "src": "1245:20:2" + "src": "1245:20:6" }, "nodeType": "YulFunctionCall", - "src": "1245:53:2" + "src": "1245:53:6" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "1235:6:2" + "src": "1235:6:6" } ] } @@ -702,13 +702,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "886:9:2", + "src": "886:9:6", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "897:7:2", + "src": "897:7:6", "type": "" } ], @@ -716,22 +716,22 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "909:6:2", + "src": "909:6:6", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "917:6:2", + "src": "917:6:6", "type": "" } ], - "src": "841:474:2" + "src": "841:474:6" }, { "body": { "nodeType": "YulBlock", - "src": "1386:53:2", + "src": "1386:53:6", "statements": [ { "expression": { @@ -739,35 +739,35 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "1403:3:2" + "src": "1403:3:6" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "1426:5:2" + "src": "1426:5:6" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", - "src": "1408:17:2" + "src": "1408:17:6" }, "nodeType": "YulFunctionCall", - "src": "1408:24:2" + "src": "1408:24:6" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1396:6:2" + "src": "1396:6:6" }, "nodeType": "YulFunctionCall", - "src": "1396:37:2" + "src": "1396:37:6" }, "nodeType": "YulExpressionStatement", - "src": "1396:37:2" + "src": "1396:37:6" } ] }, @@ -777,37 +777,37 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "1374:5:2", + "src": "1374:5:6", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "1381:3:2", + "src": "1381:3:6", "type": "" } ], - "src": "1321:118:2" + "src": "1321:118:6" }, { "body": { "nodeType": "YulBlock", - "src": "1543:124:2", + "src": "1543:124:6", "statements": [ { "nodeType": "YulAssignment", - "src": "1553:26:2", + "src": "1553:26:6", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1565:9:2" + "src": "1565:9:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1576:2:2", + "src": "1576:2:6", "type": "", "value": "32" } @@ -815,16 +815,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1561:3:2" + "src": "1561:3:6" }, "nodeType": "YulFunctionCall", - "src": "1561:18:2" + "src": "1561:18:6" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "1553:4:2" + "src": "1553:4:6" } ] }, @@ -834,19 +834,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "1633:6:2" + "src": "1633:6:6" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1646:9:2" + "src": "1646:9:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1657:1:2", + "src": "1657:1:6", "type": "", "value": "0" } @@ -854,22 +854,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1642:3:2" + "src": "1642:3:6" }, "nodeType": "YulFunctionCall", - "src": "1642:17:2" + "src": "1642:17:6" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "1589:43:2" + "src": "1589:43:6" }, "nodeType": "YulFunctionCall", - "src": "1589:71:2" + "src": "1589:71:6" }, "nodeType": "YulExpressionStatement", - "src": "1589:71:2" + "src": "1589:71:6" } ] }, @@ -879,13 +879,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "1515:9:2", + "src": "1515:9:6", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "1527:6:2", + "src": "1527:6:6", "type": "" } ], @@ -893,41 +893,41 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "1538:4:2", + "src": "1538:4:6", "type": "" } ], - "src": "1445:222:2" + "src": "1445:222:6" }, { "body": { "nodeType": "YulBlock", - "src": "1731:40:2", + "src": "1731:40:6", "statements": [ { "nodeType": "YulAssignment", - "src": "1742:22:2", + "src": "1742:22:6", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "1758:5:2" + "src": "1758:5:6" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "1752:5:2" + "src": "1752:5:6" }, "nodeType": "YulFunctionCall", - "src": "1752:12:2" + "src": "1752:12:6" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "1742:6:2" + "src": "1742:6:6" } ] } @@ -939,7 +939,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "1714:5:2", + "src": "1714:5:6", "type": "" } ], @@ -947,30 +947,30 @@ { "name": "length", "nodeType": "YulTypedName", - "src": "1724:6:2", + "src": "1724:6:6", "type": "" } ], - "src": "1673:98:2" + "src": "1673:98:6" }, { "body": { "nodeType": "YulBlock", - "src": "1890:34:2", + "src": "1890:34:6", "statements": [ { "nodeType": "YulAssignment", - "src": "1900:18:2", + "src": "1900:18:6", "value": { "name": "pos", "nodeType": "YulIdentifier", - "src": "1915:3:2" + "src": "1915:3:6" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", - "src": "1900:11:2" + "src": "1900:11:6" } ] } @@ -982,13 +982,13 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "1862:3:2", + "src": "1862:3:6", "type": "" }, { "name": "length", "nodeType": "YulTypedName", - "src": "1867:6:2", + "src": "1867:6:6", "type": "" } ], @@ -996,24 +996,24 @@ { "name": "updated_pos", "nodeType": "YulTypedName", - "src": "1878:11:2", + "src": "1878:11:6", "type": "" } ], - "src": "1777:147:2" + "src": "1777:147:6" }, { "body": { "nodeType": "YulBlock", - "src": "1979:258:2", + "src": "1979:258:6", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "1989:10:2", + "src": "1989:10:6", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "1998:1:2", + "src": "1998:1:6", "type": "", "value": "0" }, @@ -1021,7 +1021,7 @@ { "name": "i", "nodeType": "YulTypedName", - "src": "1993:1:2", + "src": "1993:1:6", "type": "" } ] @@ -1029,7 +1029,7 @@ { "body": { "nodeType": "YulBlock", - "src": "2058:63:2", + "src": "2058:63:6", "statements": [ { "expression": { @@ -1039,21 +1039,21 @@ { "name": "dst", "nodeType": "YulIdentifier", - "src": "2083:3:2" + "src": "2083:3:6" }, { "name": "i", "nodeType": "YulIdentifier", - "src": "2088:1:2" + "src": "2088:1:6" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2079:3:2" + "src": "2079:3:6" }, "nodeType": "YulFunctionCall", - "src": "2079:11:2" + "src": "2079:11:6" }, { "arguments": [ @@ -1062,42 +1062,42 @@ { "name": "src", "nodeType": "YulIdentifier", - "src": "2102:3:2" + "src": "2102:3:6" }, { "name": "i", "nodeType": "YulIdentifier", - "src": "2107:1:2" + "src": "2107:1:6" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2098:3:2" + "src": "2098:3:6" }, "nodeType": "YulFunctionCall", - "src": "2098:11:2" + "src": "2098:11:6" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "2092:5:2" + "src": "2092:5:6" }, "nodeType": "YulFunctionCall", - "src": "2092:18:2" + "src": "2092:18:6" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2072:6:2" + "src": "2072:6:6" }, "nodeType": "YulFunctionCall", - "src": "2072:39:2" + "src": "2072:39:6" }, "nodeType": "YulExpressionStatement", - "src": "2072:39:2" + "src": "2072:39:6" } ] }, @@ -1106,41 +1106,41 @@ { "name": "i", "nodeType": "YulIdentifier", - "src": "2019:1:2" + "src": "2019:1:6" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "2022:6:2" + "src": "2022:6:6" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "2016:2:2" + "src": "2016:2:6" }, "nodeType": "YulFunctionCall", - "src": "2016:13:2" + "src": "2016:13:6" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", - "src": "2030:19:2", + "src": "2030:19:6", "statements": [ { "nodeType": "YulAssignment", - "src": "2032:15:2", + "src": "2032:15:6", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "2041:1:2" + "src": "2041:1:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2044:2:2", + "src": "2044:2:6", "type": "", "value": "32" } @@ -1148,16 +1148,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2037:3:2" + "src": "2037:3:6" }, "nodeType": "YulFunctionCall", - "src": "2037:10:2" + "src": "2037:10:6" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "2032:1:2" + "src": "2032:1:6" } ] } @@ -1165,15 +1165,15 @@ }, "pre": { "nodeType": "YulBlock", - "src": "2012:3:2", + "src": "2012:3:6", "statements": [] }, - "src": "2008:113:2" + "src": "2008:113:6" }, { "body": { "nodeType": "YulBlock", - "src": "2155:76:2", + "src": "2155:76:6", "statements": [ { "expression": { @@ -1183,26 +1183,26 @@ { "name": "dst", "nodeType": "YulIdentifier", - "src": "2205:3:2" + "src": "2205:3:6" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "2210:6:2" + "src": "2210:6:6" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2201:3:2" + "src": "2201:3:6" }, "nodeType": "YulFunctionCall", - "src": "2201:16:2" + "src": "2201:16:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2219:1:2", + "src": "2219:1:6", "type": "", "value": "0" } @@ -1210,13 +1210,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2194:6:2" + "src": "2194:6:6" }, "nodeType": "YulFunctionCall", - "src": "2194:27:2" + "src": "2194:27:6" }, "nodeType": "YulExpressionStatement", - "src": "2194:27:2" + "src": "2194:27:6" } ] }, @@ -1225,24 +1225,24 @@ { "name": "i", "nodeType": "YulIdentifier", - "src": "2136:1:2" + "src": "2136:1:6" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "2139:6:2" + "src": "2139:6:6" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "2133:2:2" + "src": "2133:2:6" }, "nodeType": "YulFunctionCall", - "src": "2133:13:2" + "src": "2133:13:6" }, "nodeType": "YulIf", - "src": "2130:101:2" + "src": "2130:101:6" } ] }, @@ -1252,86 +1252,86 @@ { "name": "src", "nodeType": "YulTypedName", - "src": "1961:3:2", + "src": "1961:3:6", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", - "src": "1966:3:2", + "src": "1966:3:6", "type": "" }, { "name": "length", "nodeType": "YulTypedName", - "src": "1971:6:2", + "src": "1971:6:6", "type": "" } ], - "src": "1930:307:2" + "src": "1930:307:6" }, { "body": { "nodeType": "YulBlock", - "src": "2351:265:2", + "src": "2351:265:6", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "2361:52:2", + "src": "2361:52:6", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "2407:5:2" + "src": "2407:5:6" } ], "functionName": { "name": "array_length_t_bytes_memory_ptr", "nodeType": "YulIdentifier", - "src": "2375:31:2" + "src": "2375:31:6" }, "nodeType": "YulFunctionCall", - "src": "2375:38:2" + "src": "2375:38:6" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", - "src": "2365:6:2", + "src": "2365:6:6", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "2422:95:2", + "src": "2422:95:6", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "2505:3:2" + "src": "2505:3:6" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "2510:6:2" + "src": "2510:6:6" } ], "functionName": { "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", - "src": "2429:75:2" + "src": "2429:75:6" }, "nodeType": "YulFunctionCall", - "src": "2429:88:2" + "src": "2429:88:6" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "2422:3:2" + "src": "2422:3:6" } ] }, @@ -1343,12 +1343,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "2552:5:2" + "src": "2552:5:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2559:4:2", + "src": "2559:4:6", "type": "", "value": "0x20" } @@ -1356,62 +1356,62 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2548:3:2" + "src": "2548:3:6" }, "nodeType": "YulFunctionCall", - "src": "2548:16:2" + "src": "2548:16:6" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "2566:3:2" + "src": "2566:3:6" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "2571:6:2" + "src": "2571:6:6" } ], "functionName": { "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", - "src": "2526:21:2" + "src": "2526:21:6" }, "nodeType": "YulFunctionCall", - "src": "2526:52:2" + "src": "2526:52:6" }, "nodeType": "YulExpressionStatement", - "src": "2526:52:2" + "src": "2526:52:6" }, { "nodeType": "YulAssignment", - "src": "2587:23:2", + "src": "2587:23:6", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "2598:3:2" + "src": "2598:3:6" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "2603:6:2" + "src": "2603:6:6" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2594:3:2" + "src": "2594:3:6" }, "nodeType": "YulFunctionCall", - "src": "2594:16:2" + "src": "2594:16:6" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "2587:3:2" + "src": "2587:3:6" } ] } @@ -1423,13 +1423,13 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "2332:5:2", + "src": "2332:5:6", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "2339:3:2", + "src": "2339:3:6", "type": "" } ], @@ -1437,62 +1437,62 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "2347:3:2", + "src": "2347:3:6", "type": "" } ], - "src": "2243:373:2" + "src": "2243:373:6" }, { "body": { "nodeType": "YulBlock", - "src": "2756:137:2", + "src": "2756:137:6", "statements": [ { "nodeType": "YulAssignment", - "src": "2767:100:2", + "src": "2767:100:6", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "2854:6:2" + "src": "2854:6:6" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "2863:3:2" + "src": "2863:3:6" } ], "functionName": { "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", - "src": "2774:79:2" + "src": "2774:79:6" }, "nodeType": "YulFunctionCall", - "src": "2774:93:2" + "src": "2774:93:6" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "2767:3:2" + "src": "2767:3:6" } ] }, { "nodeType": "YulAssignment", - "src": "2877:10:2", + "src": "2877:10:6", "value": { "name": "pos", "nodeType": "YulIdentifier", - "src": "2884:3:2" + "src": "2884:3:6" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "2877:3:2" + "src": "2877:3:6" } ] } @@ -1504,13 +1504,13 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "2735:3:2", + "src": "2735:3:6", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "2741:6:2", + "src": "2741:6:6", "type": "" } ], @@ -1518,48 +1518,48 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "2752:3:2", + "src": "2752:3:6", "type": "" } ], - "src": "2622:271:2" + "src": "2622:271:6" }, { "body": { "nodeType": "YulBlock", - "src": "2941:52:2", + "src": "2941:52:6", "statements": [ { "nodeType": "YulAssignment", - "src": "2951:35:2", + "src": "2951:35:6", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "2976:2:2", + "src": "2976:2:6", "type": "", "value": "96" }, { "name": "value", "nodeType": "YulIdentifier", - "src": "2980:5:2" + "src": "2980:5:6" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "2972:3:2" + "src": "2972:3:6" }, "nodeType": "YulFunctionCall", - "src": "2972:14:2" + "src": "2972:14:6" }, "variableNames": [ { "name": "newValue", "nodeType": "YulIdentifier", - "src": "2951:8:2" + "src": "2951:8:6" } ] } @@ -1571,7 +1571,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "2922:5:2", + "src": "2922:5:6", "type": "" } ], @@ -1579,41 +1579,41 @@ { "name": "newValue", "nodeType": "YulTypedName", - "src": "2932:8:2", + "src": "2932:8:6", "type": "" } ], - "src": "2899:94:2" + "src": "2899:94:6" }, { "body": { "nodeType": "YulBlock", - "src": "3046:47:2", + "src": "3046:47:6", "statements": [ { "nodeType": "YulAssignment", - "src": "3056:31:2", + "src": "3056:31:6", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "3081:5:2" + "src": "3081:5:6" } ], "functionName": { "name": "shift_left_96", "nodeType": "YulIdentifier", - "src": "3067:13:2" + "src": "3067:13:6" }, "nodeType": "YulFunctionCall", - "src": "3067:20:2" + "src": "3067:20:6" }, "variableNames": [ { "name": "aligned", "nodeType": "YulIdentifier", - "src": "3056:7:2" + "src": "3056:7:6" } ] } @@ -1625,7 +1625,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "3028:5:2", + "src": "3028:5:6", "type": "" } ], @@ -1633,41 +1633,41 @@ { "name": "aligned", "nodeType": "YulTypedName", - "src": "3038:7:2", + "src": "3038:7:6", "type": "" } ], - "src": "2999:94:2" + "src": "2999:94:6" }, { "body": { "nodeType": "YulBlock", - "src": "3146:53:2", + "src": "3146:53:6", "statements": [ { "nodeType": "YulAssignment", - "src": "3156:37:2", + "src": "3156:37:6", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "3187:5:2" + "src": "3187:5:6" } ], "functionName": { "name": "leftAlign_t_uint160", "nodeType": "YulIdentifier", - "src": "3167:19:2" + "src": "3167:19:6" }, "nodeType": "YulFunctionCall", - "src": "3167:26:2" + "src": "3167:26:6" }, "variableNames": [ { "name": "aligned", "nodeType": "YulIdentifier", - "src": "3156:7:2" + "src": "3156:7:6" } ] } @@ -1679,7 +1679,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "3128:5:2", + "src": "3128:5:6", "type": "" } ], @@ -1687,16 +1687,16 @@ { "name": "aligned", "nodeType": "YulTypedName", - "src": "3138:7:2", + "src": "3138:7:6", "type": "" } ], - "src": "3099:100:2" + "src": "3099:100:6" }, { "body": { "nodeType": "YulBlock", - "src": "3288:74:2", + "src": "3288:74:6", "statements": [ { "expression": { @@ -1704,7 +1704,7 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "3305:3:2" + "src": "3305:3:6" }, { "arguments": [ @@ -1713,37 +1713,37 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "3348:5:2" + "src": "3348:5:6" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", - "src": "3330:17:2" + "src": "3330:17:6" }, "nodeType": "YulFunctionCall", - "src": "3330:24:2" + "src": "3330:24:6" } ], "functionName": { "name": "leftAlign_t_address", "nodeType": "YulIdentifier", - "src": "3310:19:2" + "src": "3310:19:6" }, "nodeType": "YulFunctionCall", - "src": "3310:45:2" + "src": "3310:45:6" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "3298:6:2" + "src": "3298:6:6" }, "nodeType": "YulFunctionCall", - "src": "3298:58:2" + "src": "3298:58:6" }, "nodeType": "YulExpressionStatement", - "src": "3298:58:2" + "src": "3298:58:6" } ] }, @@ -1753,36 +1753,36 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "3276:5:2", + "src": "3276:5:6", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "3283:3:2", + "src": "3283:3:6", "type": "" } ], - "src": "3205:157:2" + "src": "3205:157:6" }, { "body": { "nodeType": "YulBlock", - "src": "3482:34:2", + "src": "3482:34:6", "statements": [ { "nodeType": "YulAssignment", - "src": "3492:18:2", + "src": "3492:18:6", "value": { "name": "pos", "nodeType": "YulIdentifier", - "src": "3507:3:2" + "src": "3507:3:6" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", - "src": "3492:11:2" + "src": "3492:11:6" } ] } @@ -1794,13 +1794,13 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "3454:3:2", + "src": "3454:3:6", "type": "" }, { "name": "length", "nodeType": "YulTypedName", - "src": "3459:6:2", + "src": "3459:6:6", "type": "" } ], @@ -1808,16 +1808,16 @@ { "name": "updated_pos", "nodeType": "YulTypedName", - "src": "3470:11:2", + "src": "3470:11:6", "type": "" } ], - "src": "3368:148:2" + "src": "3368:148:6" }, { "body": { "nodeType": "YulBlock", - "src": "3628:45:2", + "src": "3628:45:6", "statements": [ { "expression": { @@ -1827,12 +1827,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "3650:6:2" + "src": "3650:6:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3658:1:2", + "src": "3658:1:6", "type": "", "value": "0" } @@ -1840,16 +1840,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3646:3:2" + "src": "3646:3:6" }, "nodeType": "YulFunctionCall", - "src": "3646:14:2" + "src": "3646:14:6" }, { "hexValue": "5f", "kind": "string", "nodeType": "YulLiteral", - "src": "3662:3:2", + "src": "3662:3:6", "type": "", "value": "_" } @@ -1857,13 +1857,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "3639:6:2" + "src": "3639:6:6" }, "nodeType": "YulFunctionCall", - "src": "3639:27:2" + "src": "3639:27:6" }, "nodeType": "YulExpressionStatement", - "src": "3639:27:2" + "src": "3639:27:6" } ] }, @@ -1873,31 +1873,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "3620:6:2", + "src": "3620:6:6", "type": "" } ], - "src": "3522:151:2" + "src": "3522:151:6" }, { "body": { "nodeType": "YulBlock", - "src": "3843:236:2", + "src": "3843:236:6", "statements": [ { "nodeType": "YulAssignment", - "src": "3853:91:2", + "src": "3853:91:6", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "3937:3:2" + "src": "3937:3:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3942:1:2", + "src": "3942:1:6", "type": "", "value": "1" } @@ -1905,16 +1905,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", - "src": "3860:76:2" + "src": "3860:76:6" }, "nodeType": "YulFunctionCall", - "src": "3860:84:2" + "src": "3860:84:6" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "3853:3:2" + "src": "3853:3:6" } ] }, @@ -1924,34 +1924,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "4042:3:2" + "src": "4042:3:6" } ], "functionName": { "name": "store_literal_in_memory_cd5edcba1904ce1b09e94c8a2d2a85375599856ca21c793571193054498b51d7", "nodeType": "YulIdentifier", - "src": "3953:88:2" + "src": "3953:88:6" }, "nodeType": "YulFunctionCall", - "src": "3953:93:2" + "src": "3953:93:6" }, "nodeType": "YulExpressionStatement", - "src": "3953:93:2" + "src": "3953:93:6" }, { "nodeType": "YulAssignment", - "src": "4055:18:2", + "src": "4055:18:6", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "4066:3:2" + "src": "4066:3:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4071:1:2", + "src": "4071:1:6", "type": "", "value": "1" } @@ -1959,16 +1959,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4062:3:2" + "src": "4062:3:6" }, "nodeType": "YulFunctionCall", - "src": "4062:11:2" + "src": "4062:11:6" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "4055:3:2" + "src": "4055:3:6" } ] } @@ -1980,7 +1980,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "3831:3:2", + "src": "3831:3:6", "type": "" } ], @@ -1988,16 +1988,16 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "3839:3:2", + "src": "3839:3:6", "type": "" } ], - "src": "3679:400:2" + "src": "3679:400:6" }, { "body": { "nodeType": "YulBlock", - "src": "4330:418:2", + "src": "4330:418:6", "statements": [ { "expression": { @@ -2005,39 +2005,39 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "4403:6:2" + "src": "4403:6:6" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "4412:3:2" + "src": "4412:3:6" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", - "src": "4341:61:2" + "src": "4341:61:6" }, "nodeType": "YulFunctionCall", - "src": "4341:75:2" + "src": "4341:75:6" }, "nodeType": "YulExpressionStatement", - "src": "4341:75:2" + "src": "4341:75:6" }, { "nodeType": "YulAssignment", - "src": "4425:19:2", + "src": "4425:19:6", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "4436:3:2" + "src": "4436:3:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4441:2:2", + "src": "4441:2:6", "type": "", "value": "20" } @@ -2045,43 +2045,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4432:3:2" + "src": "4432:3:6" }, "nodeType": "YulFunctionCall", - "src": "4432:12:2" + "src": "4432:12:6" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "4425:3:2" + "src": "4425:3:6" } ] }, { "nodeType": "YulAssignment", - "src": "4454:155:2", + "src": "4454:155:6", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "4605:3:2" + "src": "4605:3:6" } ], "functionName": { "name": "abi_encode_t_stringliteral_cd5edcba1904ce1b09e94c8a2d2a85375599856ca21c793571193054498b51d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", - "src": "4461:142:2" + "src": "4461:142:6" }, "nodeType": "YulFunctionCall", - "src": "4461:148:2" + "src": "4461:148:6" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "4454:3:2" + "src": "4454:3:6" } ] }, @@ -2091,39 +2091,39 @@ { "name": "value1", "nodeType": "YulIdentifier", - "src": "4681:6:2" + "src": "4681:6:6" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "4690:3:2" + "src": "4690:3:6" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", - "src": "4619:61:2" + "src": "4619:61:6" }, "nodeType": "YulFunctionCall", - "src": "4619:75:2" + "src": "4619:75:6" }, "nodeType": "YulExpressionStatement", - "src": "4619:75:2" + "src": "4619:75:6" }, { "nodeType": "YulAssignment", - "src": "4703:19:2", + "src": "4703:19:6", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "4714:3:2" + "src": "4714:3:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4719:2:2", + "src": "4719:2:6", "type": "", "value": "20" } @@ -2131,32 +2131,32 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4710:3:2" + "src": "4710:3:6" }, "nodeType": "YulFunctionCall", - "src": "4710:12:2" + "src": "4710:12:6" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "4703:3:2" + "src": "4703:3:6" } ] }, { "nodeType": "YulAssignment", - "src": "4732:10:2", + "src": "4732:10:6", "value": { "name": "pos", "nodeType": "YulIdentifier", - "src": "4739:3:2" + "src": "4739:3:6" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "4732:3:2" + "src": "4732:3:6" } ] } @@ -2168,19 +2168,19 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "4301:3:2", + "src": "4301:3:6", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "4307:6:2", + "src": "4307:6:6", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "4315:6:2", + "src": "4315:6:6", "type": "" } ], @@ -2188,31 +2188,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "4326:3:2", + "src": "4326:3:6", "type": "" } ], - "src": "4085:663:2" + "src": "4085:663:6" }, { "body": { "nodeType": "YulBlock", - "src": "4880:206:2", + "src": "4880:206:6", "statements": [ { "nodeType": "YulAssignment", - "src": "4890:26:2", + "src": "4890:26:6", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4902:9:2" + "src": "4902:9:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4913:2:2", + "src": "4913:2:6", "type": "", "value": "64" } @@ -2220,16 +2220,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4898:3:2" + "src": "4898:3:6" }, "nodeType": "YulFunctionCall", - "src": "4898:18:2" + "src": "4898:18:6" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "4890:4:2" + "src": "4890:4:6" } ] }, @@ -2239,19 +2239,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "4970:6:2" + "src": "4970:6:6" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4983:9:2" + "src": "4983:9:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4994:1:2", + "src": "4994:1:6", "type": "", "value": "0" } @@ -2259,22 +2259,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4979:3:2" + "src": "4979:3:6" }, "nodeType": "YulFunctionCall", - "src": "4979:17:2" + "src": "4979:17:6" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "4926:43:2" + "src": "4926:43:6" }, "nodeType": "YulFunctionCall", - "src": "4926:71:2" + "src": "4926:71:6" }, "nodeType": "YulExpressionStatement", - "src": "4926:71:2" + "src": "4926:71:6" }, { "expression": { @@ -2282,19 +2282,19 @@ { "name": "value1", "nodeType": "YulIdentifier", - "src": "5051:6:2" + "src": "5051:6:6" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5064:9:2" + "src": "5064:9:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5075:2:2", + "src": "5075:2:6", "type": "", "value": "32" } @@ -2302,22 +2302,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5060:3:2" + "src": "5060:3:6" }, "nodeType": "YulFunctionCall", - "src": "5060:18:2" + "src": "5060:18:6" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "5007:43:2" + "src": "5007:43:6" }, "nodeType": "YulFunctionCall", - "src": "5007:72:2" + "src": "5007:72:6" }, "nodeType": "YulExpressionStatement", - "src": "5007:72:2" + "src": "5007:72:6" } ] }, @@ -2327,19 +2327,19 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "4844:9:2", + "src": "4844:9:6", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "4856:6:2", + "src": "4856:6:6", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "4864:6:2", + "src": "4864:6:6", "type": "" } ], @@ -2347,22 +2347,22 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "4875:4:2", + "src": "4875:4:6", "type": "" } ], - "src": "4754:332:2" + "src": "4754:332:6" } ] }, "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_cd5edcba1904ce1b09e94c8a2d2a85375599856ca21c793571193054498b51d7(memPtr) {\n\n mstore(add(memPtr, 0), \"_\")\n\n }\n\n function abi_encode_t_stringliteral_cd5edcba1904ce1b09e94c8a2d2a85375599856ca21c793571193054498b51d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 1)\n store_literal_in_memory_cd5edcba1904ce1b09e94c8a2d2a85375599856ca21c793571193054498b51d7(pos)\n end := add(pos, 1)\n }\n\n function abi_encode_tuple_packed_t_address_t_stringliteral_cd5edcba1904ce1b09e94c8a2d2a85375599856ca21c793571193054498b51d7_t_address__to_t_address_t_string_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n pos := abi_encode_t_stringliteral_cd5edcba1904ce1b09e94c8a2d2a85375599856ca21c793571193054498b51d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n}\n", - "id": 2, + "id": 6, "language": "Yul", "name": "#utility.yul" } ], "sourceMap": "97:1294:0:-:0;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "97:1294:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;288:248;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;540:206;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;288:248;386:6;372:20;;:10;:20;;;:44;;;;410:6;396:20;;:10;:20;;;372:44;371:120;;;;;488:1;428:62;;:17;446:29;460:6;468;446:13;:29::i;:::-;428:48;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:62;;;371:120;356:141;;;;;;503:28;516:6;524;503:12;:28::i;:::-;288:248;;:::o;540:206::-;612:7;649:6;635:20;;:10;:20;;;:44;;;;673:6;659:20;;:10;:20;;;635:44;627:53;;;;;;693:17;711:29;725:6;733;711:13;:29::i;:::-;693:48;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;686:55;;540:206;;;;:::o;1255:133::-;1325:12;1369:3;1379;1352:31;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1345:38;;1255:133;;;;:::o;750:270::-;818:23;868:6;882;844:50;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;818:76;;900:13;927:10;900:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1004:10;945:17;963:29;977:6;985;963:13;:29::i;:::-;945:48;;;;;;:::i;:::-;;;;;;;;;;;;;;:70;;;;;;;;;;;;;;;;;;812:208;750:270;;:::o;-1:-1:-1:-;;;;;;;;:::o;88:117:2:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:474::-;909:6;917;966:2;954:9;945:7;941:23;937:32;934:119;;;972:79;;:::i;:::-;934:119;1092:1;1117:53;1162:7;1153:6;1142:9;1138:22;1117:53;:::i;:::-;1107:63;;1063:117;1219:2;1245:53;1290:7;1281:6;1270:9;1266:22;1245:53;:::i;:::-;1235:63;;1190:118;841:474;;;;;:::o;1321:118::-;1408:24;1426:5;1408:24;:::i;:::-;1403:3;1396:37;1321:118;;:::o;1445:222::-;1538:4;1576:2;1565:9;1561:18;1553:26;;1589:71;1657:1;1646:9;1642:17;1633:6;1589:71;:::i;:::-;1445:222;;;;:::o;1673:98::-;1724:6;1758:5;1752:12;1742:22;;1673:98;;;:::o;1777:147::-;1878:11;1915:3;1900:18;;1777:147;;;;:::o;1930:307::-;1998:1;2008:113;2022:6;2019:1;2016:13;2008:113;;;2107:1;2102:3;2098:11;2092:18;2088:1;2083:3;2079:11;2072:39;2044:2;2041:1;2037:10;2032:15;;2008:113;;;2139:6;2136:1;2133:13;2130:101;;;2219:1;2210:6;2205:3;2201:16;2194:27;2130:101;1979:258;1930:307;;;:::o;2243:373::-;2347:3;2375:38;2407:5;2375:38;:::i;:::-;2429:88;2510:6;2505:3;2429:88;:::i;:::-;2422:95;;2526:52;2571:6;2566:3;2559:4;2552:5;2548:16;2526:52;:::i;:::-;2603:6;2598:3;2594:16;2587:23;;2351:265;2243:373;;;;:::o;2622:271::-;2752:3;2774:93;2863:3;2854:6;2774:93;:::i;:::-;2767:100;;2884:3;2877:10;;2622:271;;;;:::o;2899:94::-;2932:8;2980:5;2976:2;2972:14;2951:35;;2899:94;;;:::o;2999:::-;3038:7;3067:20;3081:5;3067:20;:::i;:::-;3056:31;;2999:94;;;:::o;3099:100::-;3138:7;3167:26;3187:5;3167:26;:::i;:::-;3156:37;;3099:100;;;:::o;3205:157::-;3310:45;3330:24;3348:5;3330:24;:::i;:::-;3310:45;:::i;:::-;3305:3;3298:58;3205:157;;:::o;3368:148::-;3470:11;3507:3;3492:18;;3368:148;;;;:::o;3522:151::-;3662:3;3658:1;3650:6;3646:14;3639:27;3522:151;:::o;3679:400::-;3839:3;3860:84;3942:1;3937:3;3860:84;:::i;:::-;3853:91;;3953:93;4042:3;3953:93;:::i;:::-;4071:1;4066:3;4062:11;4055:18;;3679:400;;;:::o;4085:663::-;4326:3;4341:75;4412:3;4403:6;4341:75;:::i;:::-;4441:2;4436:3;4432:12;4425:19;;4461:148;4605:3;4461:148;:::i;:::-;4454:155;;4619:75;4690:3;4681:6;4619:75;:::i;:::-;4719:2;4714:3;4710:12;4703:19;;4739:3;4732:10;;4085:663;;;;;:::o;4754:332::-;4875:4;4913:2;4902:9;4898:18;4890:26;;4926:71;4994:1;4983:9;4979:17;4970:6;4926:71;:::i;:::-;5007:72;5075:2;5064:9;5060:18;5051:6;5007:72;:::i;:::-;4754:332;;;;;:::o", + "deployedSourceMap": "97:1294:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;288:248;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;540:206;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;288:248;386:6;372:20;;:10;:20;;;:44;;;;410:6;396:20;;:10;:20;;;372:44;371:120;;;;;488:1;428:62;;:17;446:29;460:6;468;446:13;:29::i;:::-;428:48;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:62;;;371:120;356:141;;;;;;503:28;516:6;524;503:12;:28::i;:::-;288:248;;:::o;540:206::-;612:7;649:6;635:20;;:10;:20;;;:44;;;;673:6;659:20;;:10;:20;;;635:44;627:53;;;;;;693:17;711:29;725:6;733;711:13;:29::i;:::-;693:48;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;686:55;;540:206;;;;:::o;1255:133::-;1325:12;1369:3;1379;1352:31;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1345:38;;1255:133;;;;:::o;750:270::-;818:23;868:6;882;844:50;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;818:76;;900:13;927:10;900:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1004:10;945:17;963:29;977:6;985;963:13;:29::i;:::-;945:48;;;;;;:::i;:::-;;;;;;;;;;;;;;:70;;;;;;;;;;;;;;;;;;812:208;750:270;;:::o;-1:-1:-1:-;;;;;;;;:::o;88:117:6:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:474::-;909:6;917;966:2;954:9;945:7;941:23;937:32;934:119;;;972:79;;:::i;:::-;934:119;1092:1;1117:53;1162:7;1153:6;1142:9;1138:22;1117:53;:::i;:::-;1107:63;;1063:117;1219:2;1245:53;1290:7;1281:6;1270:9;1266:22;1245:53;:::i;:::-;1235:63;;1190:118;841:474;;;;;:::o;1321:118::-;1408:24;1426:5;1408:24;:::i;:::-;1403:3;1396:37;1321:118;;:::o;1445:222::-;1538:4;1576:2;1565:9;1561:18;1553:26;;1589:71;1657:1;1646:9;1642:17;1633:6;1589:71;:::i;:::-;1445:222;;;;:::o;1673:98::-;1724:6;1758:5;1752:12;1742:22;;1673:98;;;:::o;1777:147::-;1878:11;1915:3;1900:18;;1777:147;;;;:::o;1930:307::-;1998:1;2008:113;2022:6;2019:1;2016:13;2008:113;;;2107:1;2102:3;2098:11;2092:18;2088:1;2083:3;2079:11;2072:39;2044:2;2041:1;2037:10;2032:15;;2008:113;;;2139:6;2136:1;2133:13;2130:101;;;2219:1;2210:6;2205:3;2201:16;2194:27;2130:101;1979:258;1930:307;;;:::o;2243:373::-;2347:3;2375:38;2407:5;2375:38;:::i;:::-;2429:88;2510:6;2505:3;2429:88;:::i;:::-;2422:95;;2526:52;2571:6;2566:3;2559:4;2552:5;2548:16;2526:52;:::i;:::-;2603:6;2598:3;2594:16;2587:23;;2351:265;2243:373;;;;:::o;2622:271::-;2752:3;2774:93;2863:3;2854:6;2774:93;:::i;:::-;2767:100;;2884:3;2877:10;;2622:271;;;;:::o;2899:94::-;2932:8;2980:5;2976:2;2972:14;2951:35;;2899:94;;;:::o;2999:::-;3038:7;3067:20;3081:5;3067:20;:::i;:::-;3056:31;;2999:94;;;:::o;3099:100::-;3138:7;3167:26;3187:5;3167:26;:::i;:::-;3156:37;;3099:100;;;:::o;3205:157::-;3310:45;3330:24;3348:5;3330:24;:::i;:::-;3310:45;:::i;:::-;3305:3;3298:58;3205:157;;:::o;3368:148::-;3470:11;3507:3;3492:18;;3368:148;;;;:::o;3522:151::-;3662:3;3658:1;3650:6;3646:14;3639:27;3522:151;:::o;3679:400::-;3839:3;3860:84;3942:1;3937:3;3860:84;:::i;:::-;3853:91;;3953:93;4042:3;3953:93;:::i;:::-;4071:1;4066:3;4062:11;4055:18;;3679:400;;;:::o;4085:663::-;4326:3;4341:75;4412:3;4403:6;4341:75;:::i;:::-;4441:2;4436:3;4432:12;4425:19;;4461:148;4605:3;4461:148;:::i;:::-;4454:155;;4619:75;4690:3;4681:6;4619:75;:::i;:::-;4719:2;4714:3;4710:12;4703:19;;4739:3;4732:10;;4085:663;;;;;:::o;4754:332::-;4875:4;4913:2;4902:9;4898:18;4890:26;;4926:71;4994:1;4983:9;4979:17;4970:6;4926:71;:::i;:::-;5007:72;5075:2;5064:9;5060:18;5051:6;5007:72;:::i;:::-;4754:332;;;;;:::o", "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.21 <=0.8.13;\nimport './ShareChannel.sol';\n\ncontract FileShare {\n\n address[] shareChannels;\n //mapping from joined address of both users to address of deployed ShareChannel contract\n mapping (bytes => address) userPairToChannel;\n\n function createChannel(address _userA, address _userB) public {\n require(\n (msg.sender == _userA || msg.sender == _userB) &&\n (userPairToChannel[joinAddresses(_userA, _userB)] == address(0))\n );\n _makeChannel(_userA, _userB);\n }\n\n function getChannel(address _userA, address _userB) public view returns(address) {\n require(msg.sender == _userA || msg.sender == _userB);\n return userPairToChannel[joinAddresses(_userA, _userB)];\n }\n\n function _makeChannel(address _userA, address _userB) private {\n ShareChannel newChannel = new ShareChannel(\n _userA,\n _userB\n );\n shareChannels.push(address(newChannel));\n userPairToChannel[joinAddresses(_userA, _userB)] = address(newChannel);\n }\n\n //returns a combination of two addresses as a string(non-human readable as it is encoded)\n //since this string is unique for every two unique addresses\n //it can be used a key in mapping to find ShareChannel contract's address\n function joinAddresses(address _a1, address _a2) private pure returns(bytes memory) {\n return abi.encodePacked(_a1, '_', _a2);\n }\n\n}\n", "sourcePath": "/home/ranasiddharth/ShareConnect/contracts/FileShare.sol", "ast": { @@ -2372,7 +2372,7 @@ 134 ], "ShareChannel": [ - 755 + 925 ] }, "id": 135, @@ -2400,7 +2400,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 135, - "sourceUnit": 756, + "sourceUnit": 926, "src": "67:28:0", "symbolAliases": [], "unitAlias": "" @@ -2410,7 +2410,7 @@ "baseContracts": [], "canonicalName": "FileShare", "contractDependencies": [ - 755 + 925 ], "contractKind": "contract", "fullyImplemented": true, @@ -3469,7 +3469,7 @@ "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ShareChannel_$755", + "typeIdentifier": "t_contract$_ShareChannel_$925", "typeString": "contract ShareChannel" }, "typeName": { @@ -3479,13 +3479,13 @@ "id": 84, "name": "ShareChannel", "nodeType": "IdentifierPath", - "referencedDeclaration": 755, + "referencedDeclaration": 925, "src": "818:12:0" }, - "referencedDeclaration": 755, + "referencedDeclaration": 925, "src": "818:12:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ShareChannel_$755", + "typeIdentifier": "t_contract$_ShareChannel_$925", "typeString": "contract ShareChannel" } }, @@ -3539,7 +3539,7 @@ "nodeType": "NewExpression", "src": "844:16:0", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_address_$returns$_t_contract$_ShareChannel_$755_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_address_$returns$_t_contract$_ShareChannel_$925_$", "typeString": "function (address,address) returns (contract ShareChannel)" }, "typeName": { @@ -3549,13 +3549,13 @@ "id": 87, "name": "ShareChannel", "nodeType": "IdentifierPath", - "referencedDeclaration": 755, + "referencedDeclaration": 925, "src": "848:12:0" }, - "referencedDeclaration": 755, + "referencedDeclaration": 925, "src": "848:12:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ShareChannel_$755", + "typeIdentifier": "t_contract$_ShareChannel_$925", "typeString": "contract ShareChannel" } } @@ -3571,7 +3571,7 @@ "src": "844:50:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_ShareChannel_$755", + "typeIdentifier": "t_contract$_ShareChannel_$925", "typeString": "contract ShareChannel" } }, @@ -3591,7 +3591,7 @@ "referencedDeclaration": 86, "src": "927:10:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ShareChannel_$755", + "typeIdentifier": "t_contract$_ShareChannel_$925", "typeString": "contract ShareChannel" } } @@ -3599,7 +3599,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ShareChannel_$755", + "typeIdentifier": "t_contract$_ShareChannel_$925", "typeString": "contract ShareChannel" } ], @@ -3797,7 +3797,7 @@ "referencedDeclaration": 86, "src": "1004:10:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ShareChannel_$755", + "typeIdentifier": "t_contract$_ShareChannel_$925", "typeString": "contract ShareChannel" } } @@ -3805,7 +3805,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ShareChannel_$755", + "typeIdentifier": "t_contract$_ShareChannel_$925", "typeString": "contract ShareChannel" } ], @@ -4174,7 +4174,7 @@ 134 ], "ShareChannel": [ - 755 + 925 ] }, "id": 135, @@ -4202,7 +4202,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 135, - "sourceUnit": 756, + "sourceUnit": 926, "src": "67:28:0", "symbolAliases": [], "unitAlias": "" @@ -4212,7 +4212,7 @@ "baseContracts": [], "canonicalName": "FileShare", "contractDependencies": [ - 755 + 925 ], "contractKind": "contract", "fullyImplemented": true, @@ -5271,7 +5271,7 @@ "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ShareChannel_$755", + "typeIdentifier": "t_contract$_ShareChannel_$925", "typeString": "contract ShareChannel" }, "typeName": { @@ -5281,13 +5281,13 @@ "id": 84, "name": "ShareChannel", "nodeType": "IdentifierPath", - "referencedDeclaration": 755, + "referencedDeclaration": 925, "src": "818:12:0" }, - "referencedDeclaration": 755, + "referencedDeclaration": 925, "src": "818:12:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ShareChannel_$755", + "typeIdentifier": "t_contract$_ShareChannel_$925", "typeString": "contract ShareChannel" } }, @@ -5341,7 +5341,7 @@ "nodeType": "NewExpression", "src": "844:16:0", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_address_$returns$_t_contract$_ShareChannel_$755_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_address_$returns$_t_contract$_ShareChannel_$925_$", "typeString": "function (address,address) returns (contract ShareChannel)" }, "typeName": { @@ -5351,13 +5351,13 @@ "id": 87, "name": "ShareChannel", "nodeType": "IdentifierPath", - "referencedDeclaration": 755, + "referencedDeclaration": 925, "src": "848:12:0" }, - "referencedDeclaration": 755, + "referencedDeclaration": 925, "src": "848:12:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ShareChannel_$755", + "typeIdentifier": "t_contract$_ShareChannel_$925", "typeString": "contract ShareChannel" } } @@ -5373,7 +5373,7 @@ "src": "844:50:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_ShareChannel_$755", + "typeIdentifier": "t_contract$_ShareChannel_$925", "typeString": "contract ShareChannel" } }, @@ -5393,7 +5393,7 @@ "referencedDeclaration": 86, "src": "927:10:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ShareChannel_$755", + "typeIdentifier": "t_contract$_ShareChannel_$925", "typeString": "contract ShareChannel" } } @@ -5401,7 +5401,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ShareChannel_$755", + "typeIdentifier": "t_contract$_ShareChannel_$925", "typeString": "contract ShareChannel" } ], @@ -5599,7 +5599,7 @@ "referencedDeclaration": 86, "src": "1004:10:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ShareChannel_$755", + "typeIdentifier": "t_contract$_ShareChannel_$925", "typeString": "contract ShareChannel" } } @@ -5607,7 +5607,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ShareChannel_$755", + "typeIdentifier": "t_contract$_ShareChannel_$925", "typeString": "contract ShareChannel" } ], @@ -6129,10 +6129,184 @@ "links": {}, "address": "0xbb3e4d3606EB62792f5D692a702D6900D760239C", "transactionHash": "0xd2fc501d76c4bb23efa59ea5fa476968b821f9cb6767b2a3e99b8a224116bd72" + }, + "1649958604966": { + "events": {}, + "links": {}, + "address": "0x3ee2c09D26C401a501Ec8eF4f32D546A62DDd169", + "transactionHash": "0x4ae8c87e6b58153883082be10fc73bec36ea7f0a19e867266adec38b8487b917" + }, + "1650005427602": { + "events": {}, + "links": {}, + "address": "0x9871739472199823fabC7d777a9281AC947f7B02", + "transactionHash": "0xcdc58ccd5c591f2a2c0c13e4974d765c89f225d634a31fd602230621f892d233" + }, + "1650006895097": { + "events": {}, + "links": {}, + "address": "0x4Dd0edB5B52Ca2004C8D913Ac87c39354479D8f7", + "transactionHash": "0x48c6365cfd101974d589b4a4a8339a377e020ab5f69bf82300193b993da2269b" + }, + "1650007811943": { + "events": {}, + "links": {}, + "address": "0x63a9ac650f073a76752a3A9D5CedE0EC62A4521A", + "transactionHash": "0x459b2dfbc7cc9741246959a8dbf44131c43e89ceed366203d28705ec66f2ce2f" + }, + "1650027582101": { + "events": {}, + "links": {}, + "address": "0xE5F0fE19241bdE2B94fbDFf858A27Ad9bA296d20", + "transactionHash": "0x0999958a873b96e3352364e9c3f6ad3c5d7141a01e71cd0cea56a8bf75e970a7" + }, + "1650028642136": { + "events": {}, + "links": {}, + "address": "0xEf577dabea7BA91Ee67eb5Da316564adEA301C14", + "transactionHash": "0x59db060e1ee6189a3f7251cbe6cee41a0cefce1221b4de6b5049e77cf749dd6d" + }, + "1650029870171": { + "events": {}, + "links": {}, + "address": "0x990Db22DCABA3fdc4e9d8e156EF301c8168a5141", + "transactionHash": "0xda67d73a403efad4fd4aa6cd6582616f97a121c3eb044f5b60a1a73a5e68743b" + }, + "1650030107591": { + "events": {}, + "links": {}, + "address": "0xD8c4B5d94feAdc601e42FD18D4c8A2819901a74c", + "transactionHash": "0xba50c3169eabf352a8f99c8bc0e32f8ef339360a29675a19a5d2b00290f2bd81" + }, + "1650030342568": { + "events": {}, + "links": {}, + "address": "0x2583dd66C7Cbe686D99510840b32Dbee101d05E4", + "transactionHash": "0xd194835274593bf5fd8d37d0eb5750ea9e26c44468384efc48092c3cdf8855a2" + }, + "1650032086210": { + "events": {}, + "links": {}, + "address": "0xa9ACFf2a2fA84E7c0e31bE1549f2CedDa75143AC", + "transactionHash": "0xc73cad5855cd998115cf240c50991eaa27cf5d6ff0b2c8b0f25ad011cefbfc09" + }, + "1650032169788": { + "events": {}, + "links": {}, + "address": "0xd8C88b77566Ef087B2Eef1cFFeC90461E92513b2", + "transactionHash": "0xe7188def9f26db2083b065db40ddf0b362f2f25ab6c0cf021a790336d37cf55f" + }, + "1650033018576": { + "events": {}, + "links": {}, + "address": "0x3ac799DBc8ed22c31EafB032Ad37D21d86365fE8", + "transactionHash": "0x914011038a3adba2c400828d8e5614a2801122768665fb2353be71e19ce380e7" + }, + "1650033760894": { + "events": {}, + "links": {}, + "address": "0x65D58300b246FaB6585a94188CAAe4507Fc3c8b9", + "transactionHash": "0x2f01221fa525c3c00a3b7f379d4a19cd3a00abc1e272b8b1af13c065b70b1356" + }, + "1650033840831": { + "events": {}, + "links": {}, + "address": "0x2731b28a7478D46415B50cB0043b19B12062f285", + "transactionHash": "0x04d059d967fc08c219066ad8f251d9b3647af4b5106c4cd4e7c4226af2c8e34d" + }, + "1650042028588": { + "events": {}, + "links": {}, + "address": "0x290012045A0543312a8A004237E895B552220c84", + "transactionHash": "0xda21444f9cfe7a6e9eb831015fd24880c28e65b1cfc8430416365b00dd9999b9" + }, + "1650060856671": { + "events": {}, + "links": {}, + "address": "0x6553626F901A9e95eC733B834F3CDcA45938823B", + "transactionHash": "0xab75b113553a617716a5feb1d595a0be0c5eae8b3c7167489e594d201a48ee5a" + }, + "1650096785428": { + "events": {}, + "links": {}, + "address": "0x0280E4580cE588A8b4986C9d3EbD96fD1f652FC6", + "transactionHash": "0x29eddde4cda13f2826232dcdd39fce7ad92f8c0ebd93f74cf5d0c24a8bdcdaea" + }, + "1650096931565": { + "events": {}, + "links": {}, + "address": "0x85E149cC8AFF8ff01F061EE6b89D6A748D331C3F", + "transactionHash": "0x6e95456978c117a9eecbab16d444a3b0d6bcc09784188bcec7879798591c835f" + }, + "1650097593001": { + "events": {}, + "links": {}, + "address": "0x3708BF27c5D1179Fc30568f8b9d1192112B51eC7", + "transactionHash": "0x307c4342ae407fbdfa52a4faeeaa26e837ea7d9d191f0411d1c0de6aa25b8eb0" + }, + "1650098078092": { + "events": {}, + "links": {}, + "address": "0x045A95c8D4e68Aae65d1300C07793BEf45cf5b88", + "transactionHash": "0x14e3e93fb21b5a3a25c8d16c193712a925c7c575a1ddeedc810f871f6f18f855" + }, + "1650098567060": { + "events": {}, + "links": {}, + "address": "0x1bfef8a4F03d771548a6d0AcF7266494303BAAa7", + "transactionHash": "0x11e02bfda7c993a157c5d8b5a01187ad65a125f9b1b5969fb30719b53f00c642" + }, + "1650101492019": { + "events": {}, + "links": {}, + "address": "0x74A358a82077ab194D90e474451d2D78a03b30Eb", + "transactionHash": "0x8c54ec598ee86e084cc6af4687951ef3e474fc2649748a91c5ce49d402e38823" + }, + "1650105382335": { + "events": {}, + "links": {}, + "address": "0x6a8F98065Df58F434971a6730129D87C08e210ba", + "transactionHash": "0xb7228a8688ed4953aa1303ec4e246a81069df855963ac8bb62b353315c882998" + }, + "1650113946378": { + "events": {}, + "links": {}, + "address": "0xa6eEeB94396040243C4876f46bb0284aA6cb9309", + "transactionHash": "0xbb729aabb8d69b628b8515f0e972b04532342a99ad5b17043e467e335edc4c91" + }, + "1650114749955": { + "events": {}, + "links": {}, + "address": "0x4436c2785586686e3AD885cb3810B3AE9Dfac9e1", + "transactionHash": "0x590f5c7a5ba9210fb9dca51a35796516419436775a38c33c9146f6dd2395e14e" + }, + "1650115201732": { + "events": {}, + "links": {}, + "address": "0x7612F66e9098B53d41C672dCd3bDAAeE33489eC2", + "transactionHash": "0x7d294146ccb392b4b6f62604a73eed99b8b4f491b5f9b831b203e836ffc23752" + }, + "1650174446179": { + "events": {}, + "links": {}, + "address": "0xe8854e9B7949da1DF79e44F2693cc99943A48958", + "transactionHash": "0xc6c98957576c0c34a0c0789279d5f575f7d07cbc764b400579d660b79f5a9f53" + }, + "1650137760954": { + "events": {}, + "links": {}, + "address": "0x21dB601f9c159d291B29CB05a548a89d184A2C4d", + "transactionHash": "0x5ef7c3f86b29675de72b941d56501788a3a33e2e2c882e0e5fab3ba6494d0f96" + }, + "1650193422492": { + "events": {}, + "links": {}, + "address": "0xA1Ef61D20b054713cdd581eB116de025b5aB40CF", + "transactionHash": "0xda2adadca139b8480c11d16dbf4bb37d61009da269a74145ce8ec317f68206c7" } }, "schemaVersion": "3.4.6", - "updatedAt": "2022-04-13T12:31:43.882Z", + "updatedAt": "2022-04-17T11:10:38.567Z", "networkType": "ethereum", "devdoc": { "kind": "dev", diff --git a/client/src/contracts/GlobalShare.json b/client/src/contracts/GlobalShare.json index 45f148f..63ea570 100644 --- a/client/src/contracts/GlobalShare.json +++ b/client/src/contracts/GlobalShare.json @@ -44,9 +44,9 @@ "constant": true } ], - "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getAllFiles\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_fileName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"}],\"name\":\"uploadFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/GlobalShare.sol\":\"GlobalShare\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/GlobalShare.sol\":{\"keccak256\":\"0xd4a7dae2b35e0d1c8869d1e581abd9c5241a3e5fc6e64eb247c10224be01e039\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7700b5cb7c80a491f3a39b74ac5e434b08f24abf5a731fcac48db279523097b\",\"dweb:/ipfs/QmW1ENtJsWsbDBmzCNKuXpXiobPR6jKrEUFegj64k9qsNR\"]},\"project:/contracts/UserAccount.sol\":{\"keccak256\":\"0x7a8b8ec46e6e12b907d3a58aa19b86666a5131caa7330acf5e7f6ac295eef5ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c9ed12524a7ce3d50ab8db0f1d9ac9a8e4a00ccbc95aa8d42c62e79018ae397\",\"dweb:/ipfs/QmbtH5iX9hSwNjz6hCTSFgspRzbmHb1DYAcyQLrzxTyWJ8\"]},\"project:/contracts/UserStorage.sol\":{\"keccak256\":\"0x2f03d932cd520d7ac155196d85b5631884a673dfba8d4a45262f796fecd7ba65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://297ff67993e2c9131f8f4ba5ea8ed131ff022e63c38e2dcf77fa559c477bd942\",\"dweb:/ipfs/QmeeJadn9cQQG4EuRw1D4tTUyUjkFYuisx4S8bw8xLB553\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50610b15806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063996d50bf1461003b578063ff24b5d514610057575b600080fd5b610055600480360381019061005091906106cf565b610077565b005b61005f610086565b60405161006e93929190610981565b60405180910390f35b6100828282336103e8565b5050565b60608060606000808054905067ffffffffffffffff8111156100ab576100aa6105a4565b5b6040519080825280602002602001820160405280156100de57816020015b60608152602001906001900390816100c95790505b5090506000808054905067ffffffffffffffff811115610101576101006105a4565b5b60405190808252806020026020018201604052801561013457816020015b606081526020019060019003908161011f5790505b5090506000808054905067ffffffffffffffff811115610157576101566105a4565b5b6040519080825280602002602001820160405280156101855781602001602082028036833780820191505090505b50905060005b6000805490508110156103d657600081815481106101ac576101ab6109cd565b5b906000526020600020906003020160000180546101c890610a2b565b80601f01602080910402602001604051908101604052809291908181526020018280546101f490610a2b565b80156102415780601f1061021657610100808354040283529160200191610241565b820191906000526020600020905b81548152906001019060200180831161022457829003601f168201915b5050505050848281518110610259576102586109cd565b5b602002602001018190525060008181548110610278576102776109cd565b5b9060005260206000209060030201600101805461029490610a2b565b80601f01602080910402602001604051908101604052809291908181526020018280546102c090610a2b565b801561030d5780601f106102e25761010080835404028352916020019161030d565b820191906000526020600020905b8154815290600101906020018083116102f057829003601f168201915b5050505050838281518110610325576103246109cd565b5b602002602001018190525060008181548110610344576103436109cd565b5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110610389576103886109cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806103ce90610a96565b91505061018b565b50828282955095509550505050909192565b600060405180606001604052808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff168152509050600081908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000190805190602001906104659291906104d2565b5060208201518160010190805190602001906104829291906104d2565b5060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b8280546104de90610a2b565b90600052602060002090601f0160209004810192826105005760008555610547565b82601f1061051957805160ff1916838001178555610547565b82800160010185558215610547579182015b8281111561054657825182559160200191906001019061052b565b5b5090506105549190610558565b5090565b5b80821115610571576000816000905550600101610559565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105dc82610593565b810181811067ffffffffffffffff821117156105fb576105fa6105a4565b5b80604052505050565b600061060e610575565b905061061a82826105d3565b919050565b600067ffffffffffffffff82111561063a576106396105a4565b5b61064382610593565b9050602081019050919050565b82818337600083830152505050565b600061067261066d8461061f565b610604565b90508281526020810184848401111561068e5761068d61058e565b5b610699848285610650565b509392505050565b600082601f8301126106b6576106b5610589565b5b81356106c684826020860161065f565b91505092915050565b600080604083850312156106e6576106e561057f565b5b600083013567ffffffffffffffff81111561070457610703610584565b5b610710858286016106a1565b925050602083013567ffffffffffffffff81111561073157610730610584565b5b61073d858286016106a1565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156107ad578082015181840152602081019050610792565b838111156107bc576000848401525b50505050565b60006107cd82610773565b6107d7818561077e565b93506107e781856020860161078f565b6107f081610593565b840191505092915050565b600061080783836107c2565b905092915050565b6000602082019050919050565b600061082782610747565b6108318185610752565b93508360208202850161084385610763565b8060005b8581101561087f578484038952815161086085826107fb565b945061086b8361080f565b925060208a01995050600181019050610847565b50829750879550505050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006108e8826108bd565b9050919050565b6108f8816108dd565b82525050565b600061090a83836108ef565b60208301905092915050565b6000602082019050919050565b600061092e82610891565b610938818561089c565b9350610943836108ad565b8060005b8381101561097457815161095b88826108fe565b975061096683610916565b925050600181019050610947565b5085935050505092915050565b6000606082019050818103600083015261099b818661081c565b905081810360208301526109af818561081c565b905081810360408301526109c38184610923565b9050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610a4357607f821691505b60208210811415610a5757610a566109fc565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000610aa182610a8c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610ad457610ad3610a5d565b5b60018201905091905056fea26469706673582212207b906455d5c039581f8d4901f8eae3d227ea1b336ee7eaddd6c77cc6e533e76664736f6c634300080a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063996d50bf1461003b578063ff24b5d514610057575b600080fd5b610055600480360381019061005091906106cf565b610077565b005b61005f610086565b60405161006e93929190610981565b60405180910390f35b6100828282336103e8565b5050565b60608060606000808054905067ffffffffffffffff8111156100ab576100aa6105a4565b5b6040519080825280602002602001820160405280156100de57816020015b60608152602001906001900390816100c95790505b5090506000808054905067ffffffffffffffff811115610101576101006105a4565b5b60405190808252806020026020018201604052801561013457816020015b606081526020019060019003908161011f5790505b5090506000808054905067ffffffffffffffff811115610157576101566105a4565b5b6040519080825280602002602001820160405280156101855781602001602082028036833780820191505090505b50905060005b6000805490508110156103d657600081815481106101ac576101ab6109cd565b5b906000526020600020906003020160000180546101c890610a2b565b80601f01602080910402602001604051908101604052809291908181526020018280546101f490610a2b565b80156102415780601f1061021657610100808354040283529160200191610241565b820191906000526020600020905b81548152906001019060200180831161022457829003601f168201915b5050505050848281518110610259576102586109cd565b5b602002602001018190525060008181548110610278576102776109cd565b5b9060005260206000209060030201600101805461029490610a2b565b80601f01602080910402602001604051908101604052809291908181526020018280546102c090610a2b565b801561030d5780601f106102e25761010080835404028352916020019161030d565b820191906000526020600020905b8154815290600101906020018083116102f057829003601f168201915b5050505050838281518110610325576103246109cd565b5b602002602001018190525060008181548110610344576103436109cd565b5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110610389576103886109cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806103ce90610a96565b91505061018b565b50828282955095509550505050909192565b600060405180606001604052808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff168152509050600081908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000190805190602001906104659291906104d2565b5060208201518160010190805190602001906104829291906104d2565b5060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b8280546104de90610a2b565b90600052602060002090601f0160209004810192826105005760008555610547565b82601f1061051957805160ff1916838001178555610547565b82800160010185558215610547579182015b8281111561054657825182559160200191906001019061052b565b5b5090506105549190610558565b5090565b5b80821115610571576000816000905550600101610559565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105dc82610593565b810181811067ffffffffffffffff821117156105fb576105fa6105a4565b5b80604052505050565b600061060e610575565b905061061a82826105d3565b919050565b600067ffffffffffffffff82111561063a576106396105a4565b5b61064382610593565b9050602081019050919050565b82818337600083830152505050565b600061067261066d8461061f565b610604565b90508281526020810184848401111561068e5761068d61058e565b5b610699848285610650565b509392505050565b600082601f8301126106b6576106b5610589565b5b81356106c684826020860161065f565b91505092915050565b600080604083850312156106e6576106e561057f565b5b600083013567ffffffffffffffff81111561070457610703610584565b5b610710858286016106a1565b925050602083013567ffffffffffffffff81111561073157610730610584565b5b61073d858286016106a1565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156107ad578082015181840152602081019050610792565b838111156107bc576000848401525b50505050565b60006107cd82610773565b6107d7818561077e565b93506107e781856020860161078f565b6107f081610593565b840191505092915050565b600061080783836107c2565b905092915050565b6000602082019050919050565b600061082782610747565b6108318185610752565b93508360208202850161084385610763565b8060005b8581101561087f578484038952815161086085826107fb565b945061086b8361080f565b925060208a01995050600181019050610847565b50829750879550505050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006108e8826108bd565b9050919050565b6108f8816108dd565b82525050565b600061090a83836108ef565b60208301905092915050565b6000602082019050919050565b600061092e82610891565b610938818561089c565b9350610943836108ad565b8060005b8381101561097457815161095b88826108fe565b975061096683610916565b925050600181019050610947565b5085935050505092915050565b6000606082019050818103600083015261099b818661081c565b905081810360208301526109af818561081c565b905081810360408301526109c38184610923565b9050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610a4357607f821691505b60208210811415610a5757610a566109fc565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000610aa182610a8c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610ad457610ad3610a5d565b5b60018201905091905056fea26469706673582212207b906455d5c039581f8d4901f8eae3d227ea1b336ee7eaddd6c77cc6e533e76664736f6c634300080a0033", + "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getAllFiles\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_fileName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"}],\"name\":\"uploadFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/GlobalShare.sol\":\"GlobalShare\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/GlobalShare.sol\":{\"keccak256\":\"0x97c89c61b960b3b18386ce886e0698eb31616b64950f1fe5a805232ac4f6018d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4b368ce887018038d43cb96f16ed9fcaba3fea1bc2e916380665d0069499bc65\",\"dweb:/ipfs/QmNtMB9YoCQY9wXoWtAunsjYKVL9g5GByqf1zvSdqdzbKY\"]},\"project:/contracts/UserAccount.sol\":{\"keccak256\":\"0x7a8b8ec46e6e12b907d3a58aa19b86666a5131caa7330acf5e7f6ac295eef5ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c9ed12524a7ce3d50ab8db0f1d9ac9a8e4a00ccbc95aa8d42c62e79018ae397\",\"dweb:/ipfs/QmbtH5iX9hSwNjz6hCTSFgspRzbmHb1DYAcyQLrzxTyWJ8\"]},\"project:/contracts/UserStorage.sol\":{\"keccak256\":\"0x2f03d932cd520d7ac155196d85b5631884a673dfba8d4a45262f796fecd7ba65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://297ff67993e2c9131f8f4ba5ea8ed131ff022e63c38e2dcf77fa559c477bd942\",\"dweb:/ipfs/QmeeJadn9cQQG4EuRw1D4tTUyUjkFYuisx4S8bw8xLB553\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50610b15806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063996d50bf1461003b578063ff24b5d514610057575b600080fd5b610055600480360381019061005091906106cf565b610077565b005b61005f610086565b60405161006e93929190610981565b60405180910390f35b6100828282336103e8565b5050565b60608060606000808054905067ffffffffffffffff8111156100ab576100aa6105a4565b5b6040519080825280602002602001820160405280156100de57816020015b60608152602001906001900390816100c95790505b5090506000808054905067ffffffffffffffff811115610101576101006105a4565b5b60405190808252806020026020018201604052801561013457816020015b606081526020019060019003908161011f5790505b5090506000808054905067ffffffffffffffff811115610157576101566105a4565b5b6040519080825280602002602001820160405280156101855781602001602082028036833780820191505090505b50905060005b6000805490508110156103d657600081815481106101ac576101ab6109cd565b5b906000526020600020906003020160000180546101c890610a2b565b80601f01602080910402602001604051908101604052809291908181526020018280546101f490610a2b565b80156102415780601f1061021657610100808354040283529160200191610241565b820191906000526020600020905b81548152906001019060200180831161022457829003601f168201915b5050505050848281518110610259576102586109cd565b5b602002602001018190525060008181548110610278576102776109cd565b5b9060005260206000209060030201600101805461029490610a2b565b80601f01602080910402602001604051908101604052809291908181526020018280546102c090610a2b565b801561030d5780601f106102e25761010080835404028352916020019161030d565b820191906000526020600020905b8154815290600101906020018083116102f057829003601f168201915b5050505050838281518110610325576103246109cd565b5b602002602001018190525060008181548110610344576103436109cd565b5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110610389576103886109cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806103ce90610a96565b91505061018b565b50828282955095509550505050909192565b600060405180606001604052808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff168152509050600081908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000190805190602001906104659291906104d2565b5060208201518160010190805190602001906104829291906104d2565b5060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b8280546104de90610a2b565b90600052602060002090601f0160209004810192826105005760008555610547565b82601f1061051957805160ff1916838001178555610547565b82800160010185558215610547579182015b8281111561054657825182559160200191906001019061052b565b5b5090506105549190610558565b5090565b5b80821115610571576000816000905550600101610559565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105dc82610593565b810181811067ffffffffffffffff821117156105fb576105fa6105a4565b5b80604052505050565b600061060e610575565b905061061a82826105d3565b919050565b600067ffffffffffffffff82111561063a576106396105a4565b5b61064382610593565b9050602081019050919050565b82818337600083830152505050565b600061067261066d8461061f565b610604565b90508281526020810184848401111561068e5761068d61058e565b5b610699848285610650565b509392505050565b600082601f8301126106b6576106b5610589565b5b81356106c684826020860161065f565b91505092915050565b600080604083850312156106e6576106e561057f565b5b600083013567ffffffffffffffff81111561070457610703610584565b5b610710858286016106a1565b925050602083013567ffffffffffffffff81111561073157610730610584565b5b61073d858286016106a1565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156107ad578082015181840152602081019050610792565b838111156107bc576000848401525b50505050565b60006107cd82610773565b6107d7818561077e565b93506107e781856020860161078f565b6107f081610593565b840191505092915050565b600061080783836107c2565b905092915050565b6000602082019050919050565b600061082782610747565b6108318185610752565b93508360208202850161084385610763565b8060005b8581101561087f578484038952815161086085826107fb565b945061086b8361080f565b925060208a01995050600181019050610847565b50829750879550505050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006108e8826108bd565b9050919050565b6108f8816108dd565b82525050565b600061090a83836108ef565b60208301905092915050565b6000602082019050919050565b600061092e82610891565b610938818561089c565b9350610943836108ad565b8060005b8381101561097457815161095b88826108fe565b975061096683610916565b925050600181019050610947565b5085935050505092915050565b6000606082019050818103600083015261099b818661081c565b905081810360208301526109af818561081c565b905081810360408301526109c38184610923565b9050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610a4357607f821691505b60208210811415610a5757610a566109fc565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000610aa182610a8c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610ad457610ad3610a5d565b5b60018201905091905056fea2646970667358221220e7c4fcf6ba355fa933fbc90fc44d4f6814d655f03387aa44ebfc57f840c5813c64736f6c634300080a0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063996d50bf1461003b578063ff24b5d514610057575b600080fd5b610055600480360381019061005091906106cf565b610077565b005b61005f610086565b60405161006e93929190610981565b60405180910390f35b6100828282336103e8565b5050565b60608060606000808054905067ffffffffffffffff8111156100ab576100aa6105a4565b5b6040519080825280602002602001820160405280156100de57816020015b60608152602001906001900390816100c95790505b5090506000808054905067ffffffffffffffff811115610101576101006105a4565b5b60405190808252806020026020018201604052801561013457816020015b606081526020019060019003908161011f5790505b5090506000808054905067ffffffffffffffff811115610157576101566105a4565b5b6040519080825280602002602001820160405280156101855781602001602082028036833780820191505090505b50905060005b6000805490508110156103d657600081815481106101ac576101ab6109cd565b5b906000526020600020906003020160000180546101c890610a2b565b80601f01602080910402602001604051908101604052809291908181526020018280546101f490610a2b565b80156102415780601f1061021657610100808354040283529160200191610241565b820191906000526020600020905b81548152906001019060200180831161022457829003601f168201915b5050505050848281518110610259576102586109cd565b5b602002602001018190525060008181548110610278576102776109cd565b5b9060005260206000209060030201600101805461029490610a2b565b80601f01602080910402602001604051908101604052809291908181526020018280546102c090610a2b565b801561030d5780601f106102e25761010080835404028352916020019161030d565b820191906000526020600020905b8154815290600101906020018083116102f057829003601f168201915b5050505050838281518110610325576103246109cd565b5b602002602001018190525060008181548110610344576103436109cd565b5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110610389576103886109cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806103ce90610a96565b91505061018b565b50828282955095509550505050909192565b600060405180606001604052808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff168152509050600081908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000190805190602001906104659291906104d2565b5060208201518160010190805190602001906104829291906104d2565b5060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b8280546104de90610a2b565b90600052602060002090601f0160209004810192826105005760008555610547565b82601f1061051957805160ff1916838001178555610547565b82800160010185558215610547579182015b8281111561054657825182559160200191906001019061052b565b5b5090506105549190610558565b5090565b5b80821115610571576000816000905550600101610559565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105dc82610593565b810181811067ffffffffffffffff821117156105fb576105fa6105a4565b5b80604052505050565b600061060e610575565b905061061a82826105d3565b919050565b600067ffffffffffffffff82111561063a576106396105a4565b5b61064382610593565b9050602081019050919050565b82818337600083830152505050565b600061067261066d8461061f565b610604565b90508281526020810184848401111561068e5761068d61058e565b5b610699848285610650565b509392505050565b600082601f8301126106b6576106b5610589565b5b81356106c684826020860161065f565b91505092915050565b600080604083850312156106e6576106e561057f565b5b600083013567ffffffffffffffff81111561070457610703610584565b5b610710858286016106a1565b925050602083013567ffffffffffffffff81111561073157610730610584565b5b61073d858286016106a1565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156107ad578082015181840152602081019050610792565b838111156107bc576000848401525b50505050565b60006107cd82610773565b6107d7818561077e565b93506107e781856020860161078f565b6107f081610593565b840191505092915050565b600061080783836107c2565b905092915050565b6000602082019050919050565b600061082782610747565b6108318185610752565b93508360208202850161084385610763565b8060005b8581101561087f578484038952815161086085826107fb565b945061086b8361080f565b925060208a01995050600181019050610847565b50829750879550505050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006108e8826108bd565b9050919050565b6108f8816108dd565b82525050565b600061090a83836108ef565b60208301905092915050565b6000602082019050919050565b600061092e82610891565b610938818561089c565b9350610943836108ad565b8060005b8381101561097457815161095b88826108fe565b975061096683610916565b925050600181019050610947565b5085935050505092915050565b6000606082019050818103600083015261099b818661081c565b905081810360208301526109af818561081c565b905081810360408301526109c38184610923565b9050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610a4357607f821691505b60208210811415610a5757610a566109fc565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000610aa182610a8c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610ad457610ad3610a5d565b5b60018201905091905056fea2646970667358221220e7c4fcf6ba355fa933fbc90fc44d4f6814d655f03387aa44ebfc57f840c5813c64736f6c634300080a0033", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [ @@ -5135,9 +5135,9 @@ "name": "#utility.yul" } ], - "sourceMap": "97:1060:1:-:0;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "97:1060:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;228:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;376:528;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;228:142;323:42;332:9;343;354:10;323:8;:42::i;:::-;228:142;;:::o;376:528::-;419:15;436;453:16;476:24;516:11;:18;;;;503:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;476:59;;541:24;581:11;:18;;;;568:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;541:59;;606:23;646:11;:18;;;;632:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;606:59;;676:6;671:190;692:11;:18;;;;688:1;:22;671:190;;;741:11;753:1;741:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;727:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:8;736:1;727:11;;;;;;;;:::i;:::-;;;;;;;:37;;;;788:11;800:1;788:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;774:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:8;783:1;774:11;;;;;;;;:::i;:::-;;;;;;;:37;;;;833:11;845:1;833:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:21;;;;;;;;;;;;821:6;828:1;821:9;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;712:3;;;;;:::i;:::-;;;;671:190;;;;874:8;883;892:6;866:33;;;;;;;;;376:528;;;:::o;908:247::-;1008:19;1030:89;;;;;;;;1053:9;1030:89;;;;1080:9;1030:89;;;;1105:7;1030:89;;;;;1008:111;;1125:11;1142:7;1125:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:153;908:247;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:6:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:154::-;1694:6;1689:3;1684;1671:30;1756:1;1747:6;1742:3;1738:16;1731:27;1610:154;;;:::o;1770:412::-;1848:5;1873:66;1889:49;1931:6;1889:49;:::i;:::-;1873:66;:::i;:::-;1864:75;;1962:6;1955:5;1948:21;2000:4;1993:5;1989:16;2038:3;2029:6;2024:3;2020:16;2017:25;2014:112;;;2045:79;;:::i;:::-;2014:112;2135:41;2169:6;2164:3;2159;2135:41;:::i;:::-;1854:328;1770:412;;;;;:::o;2202:340::-;2258:5;2307:3;2300:4;2292:6;2288:17;2284:27;2274:122;;2315:79;;:::i;:::-;2274:122;2432:6;2419:20;2457:79;2532:3;2524:6;2517:4;2509:6;2505:17;2457:79;:::i;:::-;2448:88;;2264:278;2202:340;;;;:::o;2548:834::-;2636:6;2644;2693:2;2681:9;2672:7;2668:23;2664:32;2661:119;;;2699:79;;:::i;:::-;2661:119;2847:1;2836:9;2832:17;2819:31;2877:18;2869:6;2866:30;2863:117;;;2899:79;;:::i;:::-;2863:117;3004:63;3059:7;3050:6;3039:9;3035:22;3004:63;:::i;:::-;2994:73;;2790:287;3144:2;3133:9;3129:18;3116:32;3175:18;3167:6;3164:30;3161:117;;;3197:79;;:::i;:::-;3161:117;3302:63;3357:7;3348:6;3337:9;3333:22;3302:63;:::i;:::-;3292:73;;3087:288;2548:834;;;;;:::o;3388:124::-;3465:6;3499:5;3493:12;3483:22;;3388:124;;;:::o;3518:194::-;3627:11;3661:6;3656:3;3649:19;3701:4;3696:3;3692:14;3677:29;;3518:194;;;;:::o;3718:142::-;3795:4;3818:3;3810:11;;3848:4;3843:3;3839:14;3831:22;;3718:142;;;:::o;3866:99::-;3918:6;3952:5;3946:12;3936:22;;3866:99;;;:::o;3971:159::-;4045:11;4079:6;4074:3;4067:19;4119:4;4114:3;4110:14;4095:29;;3971:159;;;;:::o;4136:307::-;4204:1;4214:113;4228:6;4225:1;4222:13;4214:113;;;4313:1;4308:3;4304:11;4298:18;4294:1;4289:3;4285:11;4278:39;4250:2;4247:1;4243:10;4238:15;;4214:113;;;4345:6;4342:1;4339:13;4336:101;;;4425:1;4416:6;4411:3;4407:16;4400:27;4336:101;4185:258;4136:307;;;:::o;4449:344::-;4527:3;4555:39;4588:5;4555:39;:::i;:::-;4610:61;4664:6;4659:3;4610:61;:::i;:::-;4603:68;;4680:52;4725:6;4720:3;4713:4;4706:5;4702:16;4680:52;:::i;:::-;4757:29;4779:6;4757:29;:::i;:::-;4752:3;4748:39;4741:46;;4531:262;4449:344;;;;:::o;4799:196::-;4888:10;4923:66;4985:3;4977:6;4923:66;:::i;:::-;4909:80;;4799:196;;;;:::o;5001:123::-;5081:4;5113;5108:3;5104:14;5096:22;;5001:123;;;:::o;5158:991::-;5297:3;5326:64;5384:5;5326:64;:::i;:::-;5406:96;5495:6;5490:3;5406:96;:::i;:::-;5399:103;;5528:3;5573:4;5565:6;5561:17;5556:3;5552:27;5603:66;5663:5;5603:66;:::i;:::-;5692:7;5723:1;5708:396;5733:6;5730:1;5727:13;5708:396;;;5804:9;5798:4;5794:20;5789:3;5782:33;5855:6;5849:13;5883:84;5962:4;5947:13;5883:84;:::i;:::-;5875:92;;5990:70;6053:6;5990:70;:::i;:::-;5980:80;;6089:4;6084:3;6080:14;6073:21;;5768:336;5755:1;5752;5748:9;5743:14;;5708:396;;;5712:14;6120:4;6113:11;;6140:3;6133:10;;5302:847;;;;;5158:991;;;;:::o;6155:114::-;6222:6;6256:5;6250:12;6240:22;;6155:114;;;:::o;6275:184::-;6374:11;6408:6;6403:3;6396:19;6448:4;6443:3;6439:14;6424:29;;6275:184;;;;:::o;6465:132::-;6532:4;6555:3;6547:11;;6585:4;6580:3;6576:14;6568:22;;6465:132;;;:::o;6603:126::-;6640:7;6680:42;6673:5;6669:54;6658:65;;6603:126;;;:::o;6735:96::-;6772:7;6801:24;6819:5;6801:24;:::i;:::-;6790:35;;6735:96;;;:::o;6837:108::-;6914:24;6932:5;6914:24;:::i;:::-;6909:3;6902:37;6837:108;;:::o;6951:179::-;7020:10;7041:46;7083:3;7075:6;7041:46;:::i;:::-;7119:4;7114:3;7110:14;7096:28;;6951:179;;;;:::o;7136:113::-;7206:4;7238;7233:3;7229:14;7221:22;;7136:113;;;:::o;7285:732::-;7404:3;7433:54;7481:5;7433:54;:::i;:::-;7503:86;7582:6;7577:3;7503:86;:::i;:::-;7496:93;;7613:56;7663:5;7613:56;:::i;:::-;7692:7;7723:1;7708:284;7733:6;7730:1;7727:13;7708:284;;;7809:6;7803:13;7836:63;7895:3;7880:13;7836:63;:::i;:::-;7829:70;;7922:60;7975:6;7922:60;:::i;:::-;7912:70;;7768:224;7755:1;7752;7748:9;7743:14;;7708:284;;;7712:14;8008:3;8001:10;;7409:608;;;7285:732;;;;:::o;8023:975::-;8362:4;8400:2;8389:9;8385:18;8377:26;;8449:9;8443:4;8439:20;8435:1;8424:9;8420:17;8413:47;8477:128;8600:4;8591:6;8477:128;:::i;:::-;8469:136;;8652:9;8646:4;8642:20;8637:2;8626:9;8622:18;8615:48;8680:128;8803:4;8794:6;8680:128;:::i;:::-;8672:136;;8855:9;8849:4;8845:20;8840:2;8829:9;8825:18;8818:48;8883:108;8986:4;8977:6;8883:108;:::i;:::-;8875:116;;8023:975;;;;;;:::o;9004:180::-;9052:77;9049:1;9042:88;9149:4;9146:1;9139:15;9173:4;9170:1;9163:15;9190:180;9238:77;9235:1;9228:88;9335:4;9332:1;9325:15;9359:4;9356:1;9349:15;9376:320;9420:6;9457:1;9451:4;9447:12;9437:22;;9504:1;9498:4;9494:12;9525:18;9515:81;;9581:4;9573:6;9569:17;9559:27;;9515:81;9643:2;9635:6;9632:14;9612:18;9609:38;9606:84;;;9662:18;;:::i;:::-;9606:84;9427:269;9376:320;;;:::o;9702:180::-;9750:77;9747:1;9740:88;9847:4;9844:1;9837:15;9871:4;9868:1;9861:15;9888:77;9925:7;9954:5;9943:16;;9888:77;;;:::o;9971:233::-;10010:3;10033:24;10051:5;10033:24;:::i;:::-;10024:33;;10079:66;10072:5;10069:77;10066:103;;;10149:18;;:::i;:::-;10066:103;10196:1;10189:5;10185:13;10178:20;;9971:233;;;:::o", - "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.21 <=0.8.13;\n\nimport './UserStorage.sol';\n\ncontract GlobalShare {\n\n struct file {\n string fileName;\n string ipfsHash;\n address sender;\n }\n file[] sharedFiles;\n\n function uploadFile(\n string memory _fileName,\n string memory _ipfsHash\n ) public {\n _addFile(_fileName, _ipfsHash, msg.sender);\n }\n \n function getAllFiles() public view returns(string[] memory, string[] memory, address[] memory){\n string[] memory fileName = new string[](sharedFiles.length);\n string[] memory ipfsHash = new string[](sharedFiles.length);\n address[] memory sender = new address[](sharedFiles.length);\n for (uint i = 0; i < sharedFiles.length; i++) {\n fileName[i] = sharedFiles[i].fileName;\n ipfsHash[i] = sharedFiles[i].ipfsHash;\n sender[i] = sharedFiles[i].sender;\n }\n return (fileName,ipfsHash,sender);\n }\n\n function _addFile(string memory _fileName, string memory _ipfsHash, address _sender) private {\n file memory newFile = file({\n fileName: _fileName,\n ipfsHash: _ipfsHash,\n sender: _sender\n });\n sharedFiles.push(newFile);\n }\n}\n", + "sourceMap": "97:1062:1:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "97:1062:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;228:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;376:530;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;228:142;323:42;332:9;343;354:10;323:8;:42::i;:::-;228:142;;:::o;376:530::-;419:15;436;453:16;476:24;516:11;:18;;;;503:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;476:59;;541:24;581:11;:18;;;;568:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;541:59;;606:23;646:11;:18;;;;632:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;606:59;;676:6;671:190;692:11;:18;;;;688:1;:22;671:190;;;741:11;753:1;741:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;727:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:8;736:1;727:11;;;;;;;;:::i;:::-;;;;;;;:37;;;;788:11;800:1;788:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;774:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:8;783:1;774:11;;;;;;;;:::i;:::-;;;;;;;:37;;;;833:11;845:1;833:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:21;;;;;;;;;;;;821:6;828:1;821:9;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;712:3;;;;;:::i;:::-;;;;671:190;;;;874:8;884;894:6;866:35;;;;;;;;;376:530;;;:::o;910:247::-;1010:19;1032:89;;;;;;;;1055:9;1032:89;;;;1082:9;1032:89;;;;1107:7;1032:89;;;;;1010:111;;1127:11;1144:7;1127:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1004:153;910:247;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:6:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:154::-;1694:6;1689:3;1684;1671:30;1756:1;1747:6;1742:3;1738:16;1731:27;1610:154;;;:::o;1770:412::-;1848:5;1873:66;1889:49;1931:6;1889:49;:::i;:::-;1873:66;:::i;:::-;1864:75;;1962:6;1955:5;1948:21;2000:4;1993:5;1989:16;2038:3;2029:6;2024:3;2020:16;2017:25;2014:112;;;2045:79;;:::i;:::-;2014:112;2135:41;2169:6;2164:3;2159;2135:41;:::i;:::-;1854:328;1770:412;;;;;:::o;2202:340::-;2258:5;2307:3;2300:4;2292:6;2288:17;2284:27;2274:122;;2315:79;;:::i;:::-;2274:122;2432:6;2419:20;2457:79;2532:3;2524:6;2517:4;2509:6;2505:17;2457:79;:::i;:::-;2448:88;;2264:278;2202:340;;;;:::o;2548:834::-;2636:6;2644;2693:2;2681:9;2672:7;2668:23;2664:32;2661:119;;;2699:79;;:::i;:::-;2661:119;2847:1;2836:9;2832:17;2819:31;2877:18;2869:6;2866:30;2863:117;;;2899:79;;:::i;:::-;2863:117;3004:63;3059:7;3050:6;3039:9;3035:22;3004:63;:::i;:::-;2994:73;;2790:287;3144:2;3133:9;3129:18;3116:32;3175:18;3167:6;3164:30;3161:117;;;3197:79;;:::i;:::-;3161:117;3302:63;3357:7;3348:6;3337:9;3333:22;3302:63;:::i;:::-;3292:73;;3087:288;2548:834;;;;;:::o;3388:124::-;3465:6;3499:5;3493:12;3483:22;;3388:124;;;:::o;3518:194::-;3627:11;3661:6;3656:3;3649:19;3701:4;3696:3;3692:14;3677:29;;3518:194;;;;:::o;3718:142::-;3795:4;3818:3;3810:11;;3848:4;3843:3;3839:14;3831:22;;3718:142;;;:::o;3866:99::-;3918:6;3952:5;3946:12;3936:22;;3866:99;;;:::o;3971:159::-;4045:11;4079:6;4074:3;4067:19;4119:4;4114:3;4110:14;4095:29;;3971:159;;;;:::o;4136:307::-;4204:1;4214:113;4228:6;4225:1;4222:13;4214:113;;;4313:1;4308:3;4304:11;4298:18;4294:1;4289:3;4285:11;4278:39;4250:2;4247:1;4243:10;4238:15;;4214:113;;;4345:6;4342:1;4339:13;4336:101;;;4425:1;4416:6;4411:3;4407:16;4400:27;4336:101;4185:258;4136:307;;;:::o;4449:344::-;4527:3;4555:39;4588:5;4555:39;:::i;:::-;4610:61;4664:6;4659:3;4610:61;:::i;:::-;4603:68;;4680:52;4725:6;4720:3;4713:4;4706:5;4702:16;4680:52;:::i;:::-;4757:29;4779:6;4757:29;:::i;:::-;4752:3;4748:39;4741:46;;4531:262;4449:344;;;;:::o;4799:196::-;4888:10;4923:66;4985:3;4977:6;4923:66;:::i;:::-;4909:80;;4799:196;;;;:::o;5001:123::-;5081:4;5113;5108:3;5104:14;5096:22;;5001:123;;;:::o;5158:991::-;5297:3;5326:64;5384:5;5326:64;:::i;:::-;5406:96;5495:6;5490:3;5406:96;:::i;:::-;5399:103;;5528:3;5573:4;5565:6;5561:17;5556:3;5552:27;5603:66;5663:5;5603:66;:::i;:::-;5692:7;5723:1;5708:396;5733:6;5730:1;5727:13;5708:396;;;5804:9;5798:4;5794:20;5789:3;5782:33;5855:6;5849:13;5883:84;5962:4;5947:13;5883:84;:::i;:::-;5875:92;;5990:70;6053:6;5990:70;:::i;:::-;5980:80;;6089:4;6084:3;6080:14;6073:21;;5768:336;5755:1;5752;5748:9;5743:14;;5708:396;;;5712:14;6120:4;6113:11;;6140:3;6133:10;;5302:847;;;;;5158:991;;;;:::o;6155:114::-;6222:6;6256:5;6250:12;6240:22;;6155:114;;;:::o;6275:184::-;6374:11;6408:6;6403:3;6396:19;6448:4;6443:3;6439:14;6424:29;;6275:184;;;;:::o;6465:132::-;6532:4;6555:3;6547:11;;6585:4;6580:3;6576:14;6568:22;;6465:132;;;:::o;6603:126::-;6640:7;6680:42;6673:5;6669:54;6658:65;;6603:126;;;:::o;6735:96::-;6772:7;6801:24;6819:5;6801:24;:::i;:::-;6790:35;;6735:96;;;:::o;6837:108::-;6914:24;6932:5;6914:24;:::i;:::-;6909:3;6902:37;6837:108;;:::o;6951:179::-;7020:10;7041:46;7083:3;7075:6;7041:46;:::i;:::-;7119:4;7114:3;7110:14;7096:28;;6951:179;;;;:::o;7136:113::-;7206:4;7238;7233:3;7229:14;7221:22;;7136:113;;;:::o;7285:732::-;7404:3;7433:54;7481:5;7433:54;:::i;:::-;7503:86;7582:6;7577:3;7503:86;:::i;:::-;7496:93;;7613:56;7663:5;7613:56;:::i;:::-;7692:7;7723:1;7708:284;7733:6;7730:1;7727:13;7708:284;;;7809:6;7803:13;7836:63;7895:3;7880:13;7836:63;:::i;:::-;7829:70;;7922:60;7975:6;7922:60;:::i;:::-;7912:70;;7768:224;7755:1;7752;7748:9;7743:14;;7708:284;;;7712:14;8008:3;8001:10;;7409:608;;;7285:732;;;;:::o;8023:975::-;8362:4;8400:2;8389:9;8385:18;8377:26;;8449:9;8443:4;8439:20;8435:1;8424:9;8420:17;8413:47;8477:128;8600:4;8591:6;8477:128;:::i;:::-;8469:136;;8652:9;8646:4;8642:20;8637:2;8626:9;8622:18;8615:48;8680:128;8803:4;8794:6;8680:128;:::i;:::-;8672:136;;8855:9;8849:4;8845:20;8840:2;8829:9;8825:18;8818:48;8883:108;8986:4;8977:6;8883:108;:::i;:::-;8875:116;;8023:975;;;;;;:::o;9004:180::-;9052:77;9049:1;9042:88;9149:4;9146:1;9139:15;9173:4;9170:1;9163:15;9190:180;9238:77;9235:1;9228:88;9335:4;9332:1;9325:15;9359:4;9356:1;9349:15;9376:320;9420:6;9457:1;9451:4;9447:12;9437:22;;9504:1;9498:4;9494:12;9525:18;9515:81;;9581:4;9573:6;9569:17;9559:27;;9515:81;9643:2;9635:6;9632:14;9612:18;9609:38;9606:84;;;9662:18;;:::i;:::-;9606:84;9427:269;9376:320;;;:::o;9702:180::-;9750:77;9747:1;9740:88;9847:4;9844:1;9837:15;9871:4;9868:1;9861:15;9888:77;9925:7;9954:5;9943:16;;9888:77;;;:::o;9971:233::-;10010:3;10033:24;10051:5;10033:24;:::i;:::-;10024:33;;10079:66;10072:5;10069:77;10066:103;;;10149:18;;:::i;:::-;10066:103;10196:1;10189:5;10185:13;10178:20;;9971:233;;;:::o", + "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.21 <=0.8.13;\n\nimport './UserStorage.sol';\n\ncontract GlobalShare {\n\n struct file {\n string fileName;\n string ipfsHash;\n address sender;\n }\n file[] sharedFiles;\n\n function uploadFile(\n string memory _fileName,\n string memory _ipfsHash\n ) public {\n _addFile(_fileName, _ipfsHash, msg.sender);\n }\n \n function getAllFiles() public view returns(string[] memory, string[] memory, address[] memory){\n string[] memory fileName = new string[](sharedFiles.length);\n string[] memory ipfsHash = new string[](sharedFiles.length);\n address[] memory sender = new address[](sharedFiles.length);\n for (uint i = 0; i < sharedFiles.length; i++) {\n fileName[i] = sharedFiles[i].fileName;\n ipfsHash[i] = sharedFiles[i].ipfsHash;\n sender[i] = sharedFiles[i].sender;\n }\n return (fileName, ipfsHash, sender);\n }\n\n function _addFile(string memory _fileName, string memory _ipfsHash, address _sender) private {\n file memory newFile = file({\n fileName: _fileName,\n ipfsHash: _ipfsHash,\n sender: _sender\n });\n sharedFiles.push(newFile);\n }\n}\n", "sourcePath": "/home/ranasiddharth/ShareConnect/contracts/GlobalShare.sol", "ast": { "absolutePath": "project:/contracts/GlobalShare.sol", @@ -5146,10 +5146,10 @@ 283 ], "UserAccount": [ - 989 + 985 ], "UserStorage": [ - 1126 + 1122 ] }, "id": 284, @@ -5177,7 +5177,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 284, - "sourceUnit": 1127, + "sourceUnit": 1123, "src": "68:27:1", "symbolAliases": [], "unitAlias": "" @@ -5526,7 +5526,7 @@ "body": { "id": 256, "nodeType": "Block", - "src": "470:434:1", + "src": "470:436:1", "statements": [ { "assignments": [ @@ -6411,7 +6411,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 191, - "src": "883:8:1", + "src": "884:8:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", "typeString": "string memory[] memory" @@ -6423,7 +6423,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 203, - "src": "892:6:1", + "src": "894:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -6437,7 +6437,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "873:26:1", + "src": "873:28:1", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", "typeString": "tuple(string memory[] memory,string memory[] memory,address[] memory)" @@ -6446,7 +6446,7 @@ "functionReturnParameters": 174, "id": 255, "nodeType": "Return", - "src": "866:33:1" + "src": "866:35:1" } ] }, @@ -6581,7 +6581,7 @@ "src": "418:52:1" }, "scope": 283, - "src": "376:528:1", + "src": "376:530:1", "stateMutability": "view", "virtual": false, "visibility": "public" @@ -6590,7 +6590,7 @@ "body": { "id": 281, "nodeType": "Block", - "src": "1002:153:1", + "src": "1004:153:1", "statements": [ { "assignments": [ @@ -6602,10 +6602,10 @@ "id": 268, "mutability": "mutable", "name": "newFile", - "nameLocation": "1020:7:1", + "nameLocation": "1022:7:1", "nodeType": "VariableDeclaration", "scope": 281, - "src": "1008:19:1", + "src": "1010:19:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -6620,10 +6620,10 @@ "name": "file", "nodeType": "IdentifierPath", "referencedDeclaration": 144, - "src": "1008:4:1" + "src": "1010:4:1" }, "referencedDeclaration": 144, - "src": "1008:4:1", + "src": "1010:4:1", "typeDescriptions": { "typeIdentifier": "t_struct$_file_$144_storage_ptr", "typeString": "struct GlobalShare.file" @@ -6641,7 +6641,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 259, - "src": "1053:9:1", + "src": "1055:9:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -6653,7 +6653,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 261, - "src": "1080:9:1", + "src": "1082:9:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -6665,7 +6665,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, - "src": "1105:7:1", + "src": "1107:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6692,7 +6692,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 144, - "src": "1030:4:1", + "src": "1032:4:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_file_$144_storage_ptr_$", "typeString": "type(struct GlobalShare.file storage pointer)" @@ -6710,7 +6710,7 @@ "sender" ], "nodeType": "FunctionCall", - "src": "1030:89:1", + "src": "1032:89:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_file_$144_memory_ptr", @@ -6718,7 +6718,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "1008:111:1" + "src": "1010:111:1" }, { "expression": { @@ -6729,7 +6729,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 268, - "src": "1142:7:1", + "src": "1144:7:1", "typeDescriptions": { "typeIdentifier": "t_struct$_file_$144_memory_ptr", "typeString": "struct GlobalShare.file memory" @@ -6749,7 +6749,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 148, - "src": "1125:11:1", + "src": "1127:11:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_file_$144_storage_$dyn_storage", "typeString": "struct GlobalShare.file storage ref[] storage ref" @@ -6762,7 +6762,7 @@ "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "1125:16:1", + "src": "1127:16:1", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_file_$144_storage_$dyn_storage_ptr_$_t_struct$_file_$144_storage_$returns$__$bound_to$_t_array$_t_struct$_file_$144_storage_$dyn_storage_ptr_$", "typeString": "function (struct GlobalShare.file storage ref[] storage pointer,struct GlobalShare.file storage ref)" @@ -6776,7 +6776,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1125:25:1", + "src": "1127:25:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -6785,7 +6785,7 @@ }, "id": 280, "nodeType": "ExpressionStatement", - "src": "1125:25:1" + "src": "1127:25:1" } ] }, @@ -6794,7 +6794,7 @@ "kind": "function", "modifiers": [], "name": "_addFile", - "nameLocation": "917:8:1", + "nameLocation": "919:8:1", "nodeType": "FunctionDefinition", "parameters": { "id": 264, @@ -6805,10 +6805,10 @@ "id": 259, "mutability": "mutable", "name": "_fileName", - "nameLocation": "940:9:1", + "nameLocation": "942:9:1", "nodeType": "VariableDeclaration", "scope": 282, - "src": "926:23:1", + "src": "928:23:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -6819,7 +6819,7 @@ "id": 258, "name": "string", "nodeType": "ElementaryTypeName", - "src": "926:6:1", + "src": "928:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -6832,10 +6832,10 @@ "id": 261, "mutability": "mutable", "name": "_ipfsHash", - "nameLocation": "965:9:1", + "nameLocation": "967:9:1", "nodeType": "VariableDeclaration", "scope": 282, - "src": "951:23:1", + "src": "953:23:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -6846,7 +6846,7 @@ "id": 260, "name": "string", "nodeType": "ElementaryTypeName", - "src": "951:6:1", + "src": "953:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -6859,10 +6859,10 @@ "id": 263, "mutability": "mutable", "name": "_sender", - "nameLocation": "984:7:1", + "nameLocation": "986:7:1", "nodeType": "VariableDeclaration", "scope": 282, - "src": "976:15:1", + "src": "978:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6873,7 +6873,7 @@ "id": 262, "name": "address", "nodeType": "ElementaryTypeName", - "src": "976:7:1", + "src": "978:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6883,27 +6883,27 @@ "visibility": "internal" } ], - "src": "925:67:1" + "src": "927:67:1" }, "returnParameters": { "id": 265, "nodeType": "ParameterList", "parameters": [], - "src": "1002:0:1" + "src": "1004:0:1" }, "scope": 283, - "src": "908:247:1", + "src": "910:247:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" } ], "scope": 284, - "src": "97:1060:1", + "src": "97:1062:1", "usedErrors": [] } ], - "src": "32:1126:1" + "src": "32:1128:1" }, "legacyAST": { "absolutePath": "project:/contracts/GlobalShare.sol", @@ -6912,10 +6912,10 @@ 283 ], "UserAccount": [ - 989 + 985 ], "UserStorage": [ - 1126 + 1122 ] }, "id": 284, @@ -6943,7 +6943,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 284, - "sourceUnit": 1127, + "sourceUnit": 1123, "src": "68:27:1", "symbolAliases": [], "unitAlias": "" @@ -7292,7 +7292,7 @@ "body": { "id": 256, "nodeType": "Block", - "src": "470:434:1", + "src": "470:436:1", "statements": [ { "assignments": [ @@ -8177,7 +8177,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 191, - "src": "883:8:1", + "src": "884:8:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", "typeString": "string memory[] memory" @@ -8189,7 +8189,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 203, - "src": "892:6:1", + "src": "894:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -8203,7 +8203,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "873:26:1", + "src": "873:28:1", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", "typeString": "tuple(string memory[] memory,string memory[] memory,address[] memory)" @@ -8212,7 +8212,7 @@ "functionReturnParameters": 174, "id": 255, "nodeType": "Return", - "src": "866:33:1" + "src": "866:35:1" } ] }, @@ -8347,7 +8347,7 @@ "src": "418:52:1" }, "scope": 283, - "src": "376:528:1", + "src": "376:530:1", "stateMutability": "view", "virtual": false, "visibility": "public" @@ -8356,7 +8356,7 @@ "body": { "id": 281, "nodeType": "Block", - "src": "1002:153:1", + "src": "1004:153:1", "statements": [ { "assignments": [ @@ -8368,10 +8368,10 @@ "id": 268, "mutability": "mutable", "name": "newFile", - "nameLocation": "1020:7:1", + "nameLocation": "1022:7:1", "nodeType": "VariableDeclaration", "scope": 281, - "src": "1008:19:1", + "src": "1010:19:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8386,10 +8386,10 @@ "name": "file", "nodeType": "IdentifierPath", "referencedDeclaration": 144, - "src": "1008:4:1" + "src": "1010:4:1" }, "referencedDeclaration": 144, - "src": "1008:4:1", + "src": "1010:4:1", "typeDescriptions": { "typeIdentifier": "t_struct$_file_$144_storage_ptr", "typeString": "struct GlobalShare.file" @@ -8407,7 +8407,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 259, - "src": "1053:9:1", + "src": "1055:9:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -8419,7 +8419,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 261, - "src": "1080:9:1", + "src": "1082:9:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -8431,7 +8431,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, - "src": "1105:7:1", + "src": "1107:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8458,7 +8458,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 144, - "src": "1030:4:1", + "src": "1032:4:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_file_$144_storage_ptr_$", "typeString": "type(struct GlobalShare.file storage pointer)" @@ -8476,7 +8476,7 @@ "sender" ], "nodeType": "FunctionCall", - "src": "1030:89:1", + "src": "1032:89:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_file_$144_memory_ptr", @@ -8484,7 +8484,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "1008:111:1" + "src": "1010:111:1" }, { "expression": { @@ -8495,7 +8495,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 268, - "src": "1142:7:1", + "src": "1144:7:1", "typeDescriptions": { "typeIdentifier": "t_struct$_file_$144_memory_ptr", "typeString": "struct GlobalShare.file memory" @@ -8515,7 +8515,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 148, - "src": "1125:11:1", + "src": "1127:11:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_file_$144_storage_$dyn_storage", "typeString": "struct GlobalShare.file storage ref[] storage ref" @@ -8528,7 +8528,7 @@ "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "1125:16:1", + "src": "1127:16:1", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_file_$144_storage_$dyn_storage_ptr_$_t_struct$_file_$144_storage_$returns$__$bound_to$_t_array$_t_struct$_file_$144_storage_$dyn_storage_ptr_$", "typeString": "function (struct GlobalShare.file storage ref[] storage pointer,struct GlobalShare.file storage ref)" @@ -8542,7 +8542,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1125:25:1", + "src": "1127:25:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -8551,7 +8551,7 @@ }, "id": 280, "nodeType": "ExpressionStatement", - "src": "1125:25:1" + "src": "1127:25:1" } ] }, @@ -8560,7 +8560,7 @@ "kind": "function", "modifiers": [], "name": "_addFile", - "nameLocation": "917:8:1", + "nameLocation": "919:8:1", "nodeType": "FunctionDefinition", "parameters": { "id": 264, @@ -8571,10 +8571,10 @@ "id": 259, "mutability": "mutable", "name": "_fileName", - "nameLocation": "940:9:1", + "nameLocation": "942:9:1", "nodeType": "VariableDeclaration", "scope": 282, - "src": "926:23:1", + "src": "928:23:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8585,7 +8585,7 @@ "id": 258, "name": "string", "nodeType": "ElementaryTypeName", - "src": "926:6:1", + "src": "928:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -8598,10 +8598,10 @@ "id": 261, "mutability": "mutable", "name": "_ipfsHash", - "nameLocation": "965:9:1", + "nameLocation": "967:9:1", "nodeType": "VariableDeclaration", "scope": 282, - "src": "951:23:1", + "src": "953:23:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8612,7 +8612,7 @@ "id": 260, "name": "string", "nodeType": "ElementaryTypeName", - "src": "951:6:1", + "src": "953:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -8625,10 +8625,10 @@ "id": 263, "mutability": "mutable", "name": "_sender", - "nameLocation": "984:7:1", + "nameLocation": "986:7:1", "nodeType": "VariableDeclaration", "scope": 282, - "src": "976:15:1", + "src": "978:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8639,7 +8639,7 @@ "id": 262, "name": "address", "nodeType": "ElementaryTypeName", - "src": "976:7:1", + "src": "978:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8649,27 +8649,27 @@ "visibility": "internal" } ], - "src": "925:67:1" + "src": "927:67:1" }, "returnParameters": { "id": 265, "nodeType": "ParameterList", "parameters": [], - "src": "1002:0:1" + "src": "1004:0:1" }, "scope": 283, - "src": "908:247:1", + "src": "910:247:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" } ], "scope": 284, - "src": "97:1060:1", + "src": "97:1062:1", "usedErrors": [] } ], - "src": "32:1126:1" + "src": "32:1128:1" }, "compiler": { "name": "solc", @@ -8789,10 +8789,184 @@ "links": {}, "address": "0x022ADD6fe5Ba47168AeC9e1b3A6A7fe76f9A846E", "transactionHash": "0xb482b1e9a27e716b054fca93b33ba6cb7e209b56b1dc190304376255d74cedca" + }, + "1649958604966": { + "events": {}, + "links": {}, + "address": "0xaea85Aa6E3A0E5a5c3667d6c09cA15340C362113", + "transactionHash": "0x2e03ab1fa3c4beb061454ea1cf3a4f08a1e138d47a29d6f825635d8e97ebd70a" + }, + "1650005427602": { + "events": {}, + "links": {}, + "address": "0xFF69BE541485b90fd5A475D3Ab03619702508BdF", + "transactionHash": "0xbb67fc4f554cb47c491858857bfa2b90e6b6b7863b53a7a236421602cb33684a" + }, + "1650006895097": { + "events": {}, + "links": {}, + "address": "0x6a99C1737e1dd757d9f214C6a5Eb488DB7ee5eb7", + "transactionHash": "0x8458ff071e11af7c1f0734d6093533c4aeb081aa25cfde816818b41d9037b48b" + }, + "1650007811943": { + "events": {}, + "links": {}, + "address": "0x69Fde1C3c461B9f0FC0c46d09b3D3eAdeDCaC36b", + "transactionHash": "0x17f6902e74e1268fb1115d8e846b6b8315b09447f32f8503f2e8ffad18145c0a" + }, + "1650027582101": { + "events": {}, + "links": {}, + "address": "0xe8b60ae913b2b1104939fBDaC52e75c909AE0a8F", + "transactionHash": "0xd56bbd4f42ff1481cf67ef02331d6e1704d875cd745bb65496b1375cc2c4b045" + }, + "1650028642136": { + "events": {}, + "links": {}, + "address": "0x93EFfF5395CDD3c5EE2DA15De75C5D851272D846", + "transactionHash": "0xefdc774323f4a838e3c74aeda8dfeb488299762fed0dcc5bb57201aa4c504091" + }, + "1650029870171": { + "events": {}, + "links": {}, + "address": "0xBEe44e66853dceF9C85963ec897D466cAA6C79A1", + "transactionHash": "0x37517253309886661b73a5373a0650069f1acc2afe86c7cee3052814a8a44c03" + }, + "1650030107591": { + "events": {}, + "links": {}, + "address": "0x0897f461E1aF268d15Bad77981290844a5EDad7f", + "transactionHash": "0x09a07076578cefced228403e36ca61aacab9c64283e711a1d373c181a7432a19" + }, + "1650030342568": { + "events": {}, + "links": {}, + "address": "0x7D04Ea725CF5d7Cb4f371B8e06487b5952356931", + "transactionHash": "0xeecb3b4002e74130de7fc461e9001c2dd7dc8c2aea0a06cb3b0ef4534e90482c" + }, + "1650032086210": { + "events": {}, + "links": {}, + "address": "0x3420eD94AA7eb9Fa65c542a5a2db06BA0b154cF7", + "transactionHash": "0xa76ce25391fe9e01c25cef521075d3ac4cc701e3284e093df7e672f74a5049f8" + }, + "1650032169788": { + "events": {}, + "links": {}, + "address": "0x698b44b4464015Dda3836244D2Cd4f441d812D69", + "transactionHash": "0xd60f6ae841cda36a4138e4ead9c6207a5a9f21a6f559a4ce03eace854aa2125f" + }, + "1650033018576": { + "events": {}, + "links": {}, + "address": "0xf369A63e12a8c1b4eeaBfA6B627362AF44e02Dcf", + "transactionHash": "0x4d001cf3b15339da9f1539dd0487d336d00100207ca6d7e2209bb5b31e5a0319" + }, + "1650033760894": { + "events": {}, + "links": {}, + "address": "0x83593A203583bC3ca3540566556Afd155E702E6F", + "transactionHash": "0x034429cb52d64cc45c347ba695d246b406f7d4f1582b2adae7a47c97c63be8fb" + }, + "1650033840831": { + "events": {}, + "links": {}, + "address": "0x4F805458439405c5d8ea9974c54815E9b32E6982", + "transactionHash": "0x520473ec403781ecc71e15e5ebb99e00fe7b183d509dd381602fede4f1d6fb9f" + }, + "1650042028588": { + "events": {}, + "links": {}, + "address": "0xdc75DB1F7b3Fd283e678Ee13d8EEefc2EcFeDAa5", + "transactionHash": "0xef77c144b0b9ab5ca5765ec4707b9d59ad6e29fc3c8a33a43f9c218ed89c4009" + }, + "1650060856671": { + "events": {}, + "links": {}, + "address": "0x565319eEA1a5B19ce3191e186C973d9BE9f92D5a", + "transactionHash": "0x8129b33f2f1b6efe4efae9450f21e35a04e190c9496aec4c74f359dffb96a6ef" + }, + "1650096785428": { + "events": {}, + "links": {}, + "address": "0x2e623909D3DEC077a781199f53F22cd9eEAF6A4e", + "transactionHash": "0x6ec47d908cda69e3ee104330e41146453e7b551ddd442b0c9b618fdab0ff709f" + }, + "1650096931565": { + "events": {}, + "links": {}, + "address": "0xaB924E59e9F4318bBd1C059Af041086e43623C14", + "transactionHash": "0xd03e1d9d410c7c99843941278a45c4ebc57ed3804f4072e82861b203bb00f2c6" + }, + "1650097593001": { + "events": {}, + "links": {}, + "address": "0xf627046536a70474C8770B1232B5438889dfdC40", + "transactionHash": "0x4a73aee88d413204f2f1172a43f9b3663ad4df3d0d55e28a089d7ba28b28d8c7" + }, + "1650098078092": { + "events": {}, + "links": {}, + "address": "0x9dae0A27A067FD6c0f57248E383c0F6e9872487f", + "transactionHash": "0x0036cfbba135c656149078434b714ede0ce07cf297691058c777a6989c18bbac" + }, + "1650098567060": { + "events": {}, + "links": {}, + "address": "0x480B1411a18fA8df558f664e41c07C20b8b62256", + "transactionHash": "0xde126e4cc764c84c856102d08cbba108f98f3eb6b1af762cef001b278431dc9e" + }, + "1650101492019": { + "events": {}, + "links": {}, + "address": "0x2CbCa4F6a5d023f12aAa4673778Ba3923247886C", + "transactionHash": "0xf20fefe6c0fa908d8f4596b0724d1fa9ad616d77d43777081b0e34f1be4cb77c" + }, + "1650105382335": { + "events": {}, + "links": {}, + "address": "0xBAdAe203f78E4C8999F4B05671b24F5082DA1070", + "transactionHash": "0xcc8c57d16e015745bd1768131bc18fc38d45d61f9dac11dcccca253d065dcbb4" + }, + "1650113946378": { + "events": {}, + "links": {}, + "address": "0x5f4c83864608eBe13df2c606C35672D20E48b53D", + "transactionHash": "0x7a5f861ccdd571cb5af9a0e7a6a8e17ad77ee4e111018720eb513168ca893b5c" + }, + "1650114749955": { + "events": {}, + "links": {}, + "address": "0x4dfF38992668B1De8455DD189396cEe72845BD7E", + "transactionHash": "0x20126b0585f00613bb69e476afad131a822420cc1f36beb365b372c6563466d5" + }, + "1650115201732": { + "events": {}, + "links": {}, + "address": "0x7DA341Ea28ed783583E92f20BFd1e2E23ed8FD5E", + "transactionHash": "0xc845db5d3b7a8c55ec3ccfbc55221420bfa948017b29caa67caa30d49bfb4bfa" + }, + "1650174446179": { + "events": {}, + "links": {}, + "address": "0x415759050BA4c3ba205521D277CAf2086fec3112", + "transactionHash": "0x0eccca24138dcd2df44b6905794bb79c5875c1322486cd6cf91406297cffe15f" + }, + "1650137760954": { + "events": {}, + "links": {}, + "address": "0x46e29A20cC1aC4913454b6102DfFE8A049D4F4B9", + "transactionHash": "0x43e4071922a819f2640a881d451b2a07a42ce219ad8a6afd73f671f06bd4b577" + }, + "1650193422492": { + "events": {}, + "links": {}, + "address": "0x94f3953EbCF7984950fe60dE248B24a809169d8b", + "transactionHash": "0x991d6b0c53b6dcdf74836b6615af11a330887cca9b624b4e844db2659f1adb9e" } }, "schemaVersion": "3.4.6", - "updatedAt": "2022-04-13T12:31:43.890Z", + "updatedAt": "2022-04-17T11:10:38.576Z", "networkType": "ethereum", "devdoc": { "kind": "dev", diff --git a/client/src/contracts/Migrations.json b/client/src/contracts/Migrations.json index 8d8e00f..8f18edd 100644 --- a/client/src/contracts/Migrations.json +++ b/client/src/contracts/Migrations.json @@ -2025,10 +2025,184 @@ "links": {}, "address": "0x7971BC86EC16bDCCDEec0C527f2e75DBbEd30409", "transactionHash": "0x31a1f27e814ae9778db150ef4f93f6c6e9f03a7474f233f82602ae58963cf9bd" + }, + "1649958604966": { + "events": {}, + "links": {}, + "address": "0x1e17B7deD36DFBfa9557084220647Dd6067f38c2", + "transactionHash": "0xa9078940fba9d31277d6bf9fc2931bb436964c1a4e74a4ea4bd958fd9b23c8a4" + }, + "1650005427602": { + "events": {}, + "links": {}, + "address": "0xb8Af1D0cb7C8757D0F23f3b309A42EC32F725Fad", + "transactionHash": "0xd0f2ae91bb5ed8fc492f8071f173c766be0e62eb2b6201f39806e9483e790561" + }, + "1650006895097": { + "events": {}, + "links": {}, + "address": "0x37a754a61068592565a403B76Ba7572AaFDB81D4", + "transactionHash": "0xa257c126b5e6f75eaa09b75c9d64ec1fb51c9b640f87e608c3bf991ef9722e34" + }, + "1650007811943": { + "events": {}, + "links": {}, + "address": "0x7cAF85d6E2cE550017fA5dB599c93543F99ae654", + "transactionHash": "0x13a32abd83b82e1cfc808d79ba496e0d2177c0cf15b4c2ed74642e1e1378b6f8" + }, + "1650027582101": { + "events": {}, + "links": {}, + "address": "0xb6b4474D9cEc7031E1550A5Be8833C08B98E7c69", + "transactionHash": "0x56d3acdb246fd8758603c38282d51352e3e7c6513d78adae8ca343e5621b7add" + }, + "1650028642136": { + "events": {}, + "links": {}, + "address": "0x2031C2A60Db2D697d9Bf7776F175F395EC472A10", + "transactionHash": "0xe12dea98ce66edcf6f871026299459fa967fa2da76ae4ab63fdd0112cb7af52e" + }, + "1650029870171": { + "events": {}, + "links": {}, + "address": "0xAd00Ae53a9B58BEd62791ECe4e63F5F216fC530d", + "transactionHash": "0xa169fa13f1db26885cda4acb40714b90cc404333dd4a62e294c17144c4e4cdd0" + }, + "1650030107591": { + "events": {}, + "links": {}, + "address": "0x2725a6D3204866DBbae037206A63417A8fccEC87", + "transactionHash": "0xf5163ae2af9d5371aca847bbf4a3d5d8458ce23a547d583969877f437cfed592" + }, + "1650030342568": { + "events": {}, + "links": {}, + "address": "0x06cf62946eA1a4150861fFC18bef1d3f6011A081", + "transactionHash": "0xc06449b709c722fea6c64e491510df1172b593034f418c6ff10d6a063bfa27f6" + }, + "1650032086210": { + "events": {}, + "links": {}, + "address": "0x0e21fB08539ca47E23f7823c95c53d0957480Ab2", + "transactionHash": "0xc3ff7eae4a7d77f86d62308e5dc072ca89d4bd673562566db1bc2c827703b0b9" + }, + "1650032169788": { + "events": {}, + "links": {}, + "address": "0xD21d382aA287f9c6581a3B8E2B56FCbf709e625E", + "transactionHash": "0x4c87e413c26ba752ca6f99dbbc76292bdca7f4495dbe65e2c5600b7db387c212" + }, + "1650033018576": { + "events": {}, + "links": {}, + "address": "0xDc7C66D6AC571AEE2218b234FBcDc71bcf201864", + "transactionHash": "0xf21d934cb25d7387ecccacac192ef691f8cf3f118abb3533e9d7bee5270007a7" + }, + "1650033760894": { + "events": {}, + "links": {}, + "address": "0xA22F2464e67A8b8E75c4b9B02d72302149E76c3d", + "transactionHash": "0x792e98b05a8220b547ee537441eae44a9071ba81a8e222bef0b24f3c0a893392" + }, + "1650033840831": { + "events": {}, + "links": {}, + "address": "0x92F2a9DD8bA3193D6c07116507deCd98621b0730", + "transactionHash": "0x44275e47c25174d73d76941194c3838bd2df6146d8ada816d4eb51e7f9625198" + }, + "1650042028588": { + "events": {}, + "links": {}, + "address": "0xe8857E22e9031e5a01bae5551Da905dC98F4ccf2", + "transactionHash": "0xd1ce9be209061e9c43c2fcf85a89064847ea2bf92567b4804b51584603356a44" + }, + "1650060856671": { + "events": {}, + "links": {}, + "address": "0x633eDc25e5f3E65D3eF0c60F22eDd21d9623e424", + "transactionHash": "0xa3d522765438445b3b07a31d4c0175993efb8934c18d9a2d9e2e452e16abf737" + }, + "1650096785428": { + "events": {}, + "links": {}, + "address": "0x8F6351cAdcaa134409b42bF303282C4EbD3a0aE0", + "transactionHash": "0x8dc40cf0932645423307d304124daefbeb4137b925412a66b262a85423817684" + }, + "1650096931565": { + "events": {}, + "links": {}, + "address": "0xa6AE6adA37d1325f6a37C4b45341CD54986e947b", + "transactionHash": "0x67bf3adc1e1f01ff1ec46fe82ab08ca6e788b813794c3b66135faca1218e60d9" + }, + "1650097593001": { + "events": {}, + "links": {}, + "address": "0xdF266aCa706CCF44f41d5ACA979d2DCe9d73Af18", + "transactionHash": "0x53a7240375091fc9ccabe2ca074567618136f81f32e3078f6ffb5d48335615f7" + }, + "1650098078092": { + "events": {}, + "links": {}, + "address": "0x0D388023386Fb56962CFDA452BdFA252C5476a62", + "transactionHash": "0xddaf953c8c39d430362586e816ddc443c0ab07c13359df0e5d08df697680bc5f" + }, + "1650098567060": { + "events": {}, + "links": {}, + "address": "0x47AccE1BB8062111AE5646BB36e1Ff56763D21bF", + "transactionHash": "0xe5e14df7275a37cad361ae74253738451b84a398451e889ccd64408091bd38bd" + }, + "1650101492019": { + "events": {}, + "links": {}, + "address": "0x1af29197F08E79c620375a8A25b876dc271C0091", + "transactionHash": "0x22d61012c6bd045272cd4278ef2bcdfab62476846af10d6bfdd87d56c56b0a17" + }, + "1650105382335": { + "events": {}, + "links": {}, + "address": "0xBf0b16FcaDA6b18416f21e6d22C182562Ee7bC89", + "transactionHash": "0xd9cf680bc2609ca2d6eb49adf1def4c4e2fa0203927a176ab0d8156eee9b26e0" + }, + "1650113946378": { + "events": {}, + "links": {}, + "address": "0xDAC739424c1f882D6131C0E98d1b84c924Ac7242", + "transactionHash": "0xd35493c8b3d2219f0e42ff6cdeb1f9a081909e45d856eec5c050222e27c86002" + }, + "1650114749955": { + "events": {}, + "links": {}, + "address": "0x204285546Bb372fa62aeAb1c58a1fBc4ae4Ab56c", + "transactionHash": "0x25b3c933302c53ed4b51341bcf4879f72e65c61fccd3da3f6413641f3b19bd7d" + }, + "1650115201732": { + "events": {}, + "links": {}, + "address": "0x9a1c24c8b19f73489754B3F66ae189bBe1e43B82", + "transactionHash": "0xdfb7e276f25d7cb08959ab105305841cd52c68eed8f3650f14d358a0b5044df3" + }, + "1650174446179": { + "events": {}, + "links": {}, + "address": "0xACf5A0Ed1DfEEdBC63f7e82c3EBaA1FD178F7EAd", + "transactionHash": "0x2b9e6ed8e72135cf10a2275f7e8eb09ef4e2500c8b26e8bc2f4c2d3dacf56b8a" + }, + "1650137760954": { + "events": {}, + "links": {}, + "address": "0xdECAfC2bd8Cd4D3FA4f9799FdF545F6C04F2884e", + "transactionHash": "0xb5737d6808cb65d10075107b60e13b751d2191bf1a3a02c8225c0c482d47bc1e" + }, + "1650193422492": { + "events": {}, + "links": {}, + "address": "0x027E440fD3cAeccc04e210348887AffC2bb8d85d", + "transactionHash": "0x460defa8fdd55373bbaf0fc5d32a4e0279e5a7e6b106cf42e609db0d44afa9b5" } }, "schemaVersion": "3.4.6", - "updatedAt": "2022-04-13T12:31:43.895Z", + "updatedAt": "2022-04-17T11:10:38.582Z", "networkType": "ethereum", "devdoc": { "kind": "dev", diff --git a/client/src/contracts/ShareChannel.json b/client/src/contracts/ShareChannel.json index 4e1bae5..055643d 100644 --- a/client/src/contracts/ShareChannel.json +++ b/client/src/contracts/ShareChannel.json @@ -79,105 +79,152 @@ { "inputs": [ { - "internalType": "string", - "name": "_fileName", - "type": "string" + "internalType": "address", + "name": "_user1", + "type": "address" }, { - "internalType": "string", - "name": "_ipfsHash", - "type": "string" - }, + "internalType": "address", + "name": "_user2", + "type": "address" + } + ], + "name": "getSentFiles1", + "outputs": [ { - "internalType": "string", - "name": "_senderEncryptedAESKey", - "type": "string" + "internalType": "string[]", + "name": "", + "type": "string[]" }, { - "internalType": "string", - "name": "_receiverEncryptedAESKey", - "type": "string" + "internalType": "string[]", + "name": "", + "type": "string[]" }, { - "internalType": "address", - "name": "_sender", - "type": "address" + "internalType": "string[]", + "name": "", + "type": "string[]" } ], - "name": "receiveFile", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "_user", + "name": "_user1", + "type": "address" + }, + { + "internalType": "address", + "name": "_user2", "type": "address" } ], - "name": "getSentFiles", - "outputs": [], + "name": "getSentFiles2", + "outputs": [ + { + "internalType": "string[]", + "name": "", + "type": "string[]" + }, + { + "internalType": "address[]", + "name": "", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "getChannelUsers", + "outputs": [ { "internalType": "address", - "name": "_user", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", "type": "address" } ], - "name": "getReceivedFiles", - "outputs": [], "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "getChannelUsers", + "name": "getSharedFiles", "outputs": [ { - "internalType": "address", + "internalType": "string[]", "name": "", - "type": "address" + "type": "string[]" }, { - "internalType": "address", + "internalType": "string[]", "name": "", - "type": "address" + "type": "string[]" + }, + { + "internalType": "string[]", + "name": "", + "type": "string[]" + }, + { + "internalType": "string[]", + "name": "", + "type": "string[]" + }, + { + "internalType": "address[]", + "name": "", + "type": "address[]" + }, + { + "internalType": "address[]", + "name": "", + "type": "address[]" } ], "stateMutability": "view", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_userB\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"getChannelUsers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getReceivedFiles\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getSentFiles\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_fileName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_senderEncryptedAESKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_receiverEncryptedAESKey\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"receiveFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_fileName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_senderEncryptedAESKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_receiverEncryptedAESKey\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"}],\"name\":\"sendFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"userA\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"userB\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/ShareChannel.sol\":\"ShareChannel\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/ShareChannel.sol\":{\"keccak256\":\"0x71dfedae5428c837886b2b9fcebed8606662fdefaee125dc2622fbbd63b62501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://386a104835ee4348e8f7af51c77a2e336a14909c0e4b9f73d581b82e3dfa444c\",\"dweb:/ipfs/QmbeAsUeTPR4guCgb33CbvQmdoNoZ9ZKxqY5QDU8QGUHeG\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b5060405162001c2338038062001c2383398181016040528101906200003791906200012a565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000171565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000f282620000c5565b9050919050565b6200010481620000e5565b81146200011057600080fd5b50565b6000815190506200012481620000f9565b92915050565b60008060408385031215620001445762000143620000c0565b5b6000620001548582860162000113565b9250506020620001678582860162000113565b9150509250929050565b611aa280620001816000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a73e75711161005b578063a73e7571146100d6578063cb1a295f146100f2578063deb22e9a14610110578063e9ad32391461012e5761007d565b80634266f8c51461008257806393b0394c1461009e578063a6aeff57146100ba575b600080fd5b61009c600480360381019061009791906116a9565b61014d565b005b6100b860048036038101906100b391906116a9565b610211565b005b6100d460048036038101906100cf919061181c565b6102d5565b005b6100f060048036038101906100eb919061181c565b61039a565b005b6100fa61045f565b6040516101079190611916565b60405180910390f35b610118610485565b6040516101259190611916565b60405180910390f35b6101366104a9565b604051610144929190611931565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806101f45750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6101fd57600080fd5b6102088160016104f8565b50505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102b85750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6102c157600080fd5b6102cc8160006104f8565b50505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061037c5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61038557600080fd5b61039385858585338661054d565b5050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104415750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61044a57600080fd5b61045885858585853361054d565b5050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915091509091565b60608060608060608060008060006105108b8b6106e3565b92509250925060008060006105258e8e610e0a565b9250925092508585858585859b509b509b509b509b509b505050505050509295509295509295565b60006040518060c001604052808881526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152509050600281908060018154018082558091505060019003906000526020600020906006020160009091909190915060008201518160000190805190602001906105f2929190611594565b50602082015181600101908051906020019061060f929190611594565b50604082015181600201908051906020019061062c929190611594565b506060820151816003019080519060200190610649929190611594565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050565b606080606060006106f48686611443565b905060008167ffffffffffffffff811115610712576107116116f1565b5b60405190808252806020026020018201604052801561074557816020015b60608152602001906001900390816107305790505b50905060008267ffffffffffffffff811115610764576107636116f1565b5b60405190808252806020026020018201604052801561079757816020015b60608152602001906001900390816107825790505b50905060008367ffffffffffffffff8111156107b6576107b56116f1565b5b6040519080825280602002602001820160405280156107e957816020015b60608152602001906001900390816107d45790505b5090506000805b600280549050811015610df4578915610af4578a73ffffffffffffffffffffffffffffffffffffffff166002828154811061082e5761082d61195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610aef57600281815481106108905761088f61195a565b5b906000526020600020906006020160000180546108ac906119b8565b80601f01602080910402602001604051908101604052809291908181526020018280546108d8906119b8565b80156109255780601f106108fa57610100808354040283529160200191610925565b820191906000526020600020905b81548152906001019060200180831161090857829003601f168201915b505050505085838151811061093d5761093c61195a565b5b60200260200101819052506002818154811061095c5761095b61195a565b5b90600052602060002090600602016001018054610978906119b8565b80601f01602080910402602001604051908101604052809291908181526020018280546109a4906119b8565b80156109f15780601f106109c6576101008083540402835291602001916109f1565b820191906000526020600020905b8154815290600101906020018083116109d457829003601f168201915b5050505050848381518110610a0957610a0861195a565b5b602002602001018190525060028181548110610a2857610a2761195a565b5b90600052602060002090600602016002018054610a44906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a70906119b8565b8015610abd5780601f10610a9257610100808354040283529160200191610abd565b820191906000526020600020905b815481529060010190602001808311610aa057829003601f168201915b5050505050838381518110610ad557610ad461195a565b5b60200260200101819052508180610aeb90611a23565b9250505b610de1565b8a73ffffffffffffffffffffffffffffffffffffffff1660028281548110610b1f57610b1e61195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610de05760028181548110610b8157610b8061195a565b5b90600052602060002090600602016000018054610b9d906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc9906119b8565b8015610c165780601f10610beb57610100808354040283529160200191610c16565b820191906000526020600020905b815481529060010190602001808311610bf957829003601f168201915b5050505050858381518110610c2e57610c2d61195a565b5b602002602001018190525060028181548110610c4d57610c4c61195a565b5b90600052602060002090600602016001018054610c69906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610c95906119b8565b8015610ce25780601f10610cb757610100808354040283529160200191610ce2565b820191906000526020600020905b815481529060010190602001808311610cc557829003601f168201915b5050505050848381518110610cfa57610cf961195a565b5b602002602001018190525060028181548110610d1957610d1861195a565b5b90600052602060002090600602016002018054610d35906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610d61906119b8565b8015610dae5780601f10610d8357610100808354040283529160200191610dae565b820191906000526020600020905b815481529060010190602001808311610d9157829003601f168201915b5050505050838381518110610dc657610dc561195a565b5b60200260200101819052508180610ddc90611a23565b9250505b5b8080610dec90611a23565b9150506107f0565b5083838397509750975050505050509250925092565b60608060606000610e1b8686611443565b905060008167ffffffffffffffff811115610e3957610e386116f1565b5b604051908082528060200260200182016040528015610e6c57816020015b6060815260200190600190039081610e575790505b50905060008267ffffffffffffffff811115610e8b57610e8a6116f1565b5b604051908082528060200260200182016040528015610eb95781602001602082028036833780820191505090505b50905060008367ffffffffffffffff811115610ed857610ed76116f1565b5b604051908082528060200260200182016040528015610f065781602001602082028036833780820191505090505b5090506000805b60028054905081101561142d57891561119f578a73ffffffffffffffffffffffffffffffffffffffff1660028281548110610f4b57610f4a61195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561119a5760028181548110610fad57610fac61195a565b5b90600052602060002090600602016003018054610fc9906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff5906119b8565b80156110425780601f1061101757610100808354040283529160200191611042565b820191906000526020600020905b81548152906001019060200180831161102557829003601f168201915b505050505085838151811061105a5761105961195a565b5b6020026020010181905250600281815481106110795761107861195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168483815181106110be576110bd61195a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506002818154811061110c5761110b61195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383815181106111515761115061195a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818061119690611a23565b9250505b61141a565b8a73ffffffffffffffffffffffffffffffffffffffff16600282815481106111ca576111c961195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611419576002818154811061122c5761122b61195a565b5b90600052602060002090600602016003018054611248906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611274906119b8565b80156112c15780601f10611296576101008083540402835291602001916112c1565b820191906000526020600020905b8154815290600101906020018083116112a457829003601f168201915b50505050508583815181106112d9576112d861195a565b5b6020026020010181905250600281815481106112f8576112f761195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684838151811061133d5761133c61195a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506002818154811061138b5761138a61195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383815181106113d0576113cf61195a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818061141590611a23565b9250505b5b808061142590611a23565b915050610f0d565b5083838397509750975050505050509250925092565b6000806000905060005b6002805490508110156115895783156114ed578473ffffffffffffffffffffffffffffffffffffffff166002828154811061148b5761148a61195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156114e85781806114e490611a23565b9250505b611576565b8473ffffffffffffffffffffffffffffffffffffffff16600282815481106115185761151761195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561157557818061157190611a23565b9250505b5b808061158190611a23565b91505061144d565b508091505092915050565b8280546115a0906119b8565b90600052602060002090601f0160209004810192826115c25760008555611609565b82601f106115db57805160ff1916838001178555611609565b82800160010185558215611609579182015b828111156116085782518255916020019190600101906115ed565b5b509050611616919061161a565b5090565b5b8082111561163357600081600090555060010161161b565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116768261164b565b9050919050565b6116868161166b565b811461169157600080fd5b50565b6000813590506116a38161167d565b92915050565b6000602082840312156116bf576116be611641565b5b60006116cd84828501611694565b91505092915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611729826116e0565b810181811067ffffffffffffffff82111715611748576117476116f1565b5b80604052505050565b600061175b611637565b90506117678282611720565b919050565b600067ffffffffffffffff821115611787576117866116f1565b5b611790826116e0565b9050602081019050919050565b82818337600083830152505050565b60006117bf6117ba8461176c565b611751565b9050828152602081018484840111156117db576117da6116db565b5b6117e684828561179d565b509392505050565b600082601f830112611803576118026116d6565b5b81356118138482602086016117ac565b91505092915050565b600080600080600060a0868803121561183857611837611641565b5b600086013567ffffffffffffffff81111561185657611855611646565b5b611862888289016117ee565b955050602086013567ffffffffffffffff81111561188357611882611646565b5b61188f888289016117ee565b945050604086013567ffffffffffffffff8111156118b0576118af611646565b5b6118bc888289016117ee565b935050606086013567ffffffffffffffff8111156118dd576118dc611646565b5b6118e9888289016117ee565b92505060806118fa88828901611694565b9150509295509295909350565b6119108161166b565b82525050565b600060208201905061192b6000830184611907565b92915050565b60006040820190506119466000830185611907565b6119536020830184611907565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806119d057607f821691505b602082108114156119e4576119e3611989565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000611a2e82611a19565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611a6157611a606119ea565b5b60018201905091905056fea264697066735822122027020938ebf48efbff73a708a517686db280ebe191e8b5532187334b2755997a64736f6c634300080a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a73e75711161005b578063a73e7571146100d6578063cb1a295f146100f2578063deb22e9a14610110578063e9ad32391461012e5761007d565b80634266f8c51461008257806393b0394c1461009e578063a6aeff57146100ba575b600080fd5b61009c600480360381019061009791906116a9565b61014d565b005b6100b860048036038101906100b391906116a9565b610211565b005b6100d460048036038101906100cf919061181c565b6102d5565b005b6100f060048036038101906100eb919061181c565b61039a565b005b6100fa61045f565b6040516101079190611916565b60405180910390f35b610118610485565b6040516101259190611916565b60405180910390f35b6101366104a9565b604051610144929190611931565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806101f45750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6101fd57600080fd5b6102088160016104f8565b50505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102b85750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6102c157600080fd5b6102cc8160006104f8565b50505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061037c5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61038557600080fd5b61039385858585338661054d565b5050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104415750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61044a57600080fd5b61045885858585853361054d565b5050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915091509091565b60608060608060608060008060006105108b8b6106e3565b92509250925060008060006105258e8e610e0a565b9250925092508585858585859b509b509b509b509b509b505050505050509295509295509295565b60006040518060c001604052808881526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152509050600281908060018154018082558091505060019003906000526020600020906006020160009091909190915060008201518160000190805190602001906105f2929190611594565b50602082015181600101908051906020019061060f929190611594565b50604082015181600201908051906020019061062c929190611594565b506060820151816003019080519060200190610649929190611594565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050565b606080606060006106f48686611443565b905060008167ffffffffffffffff811115610712576107116116f1565b5b60405190808252806020026020018201604052801561074557816020015b60608152602001906001900390816107305790505b50905060008267ffffffffffffffff811115610764576107636116f1565b5b60405190808252806020026020018201604052801561079757816020015b60608152602001906001900390816107825790505b50905060008367ffffffffffffffff8111156107b6576107b56116f1565b5b6040519080825280602002602001820160405280156107e957816020015b60608152602001906001900390816107d45790505b5090506000805b600280549050811015610df4578915610af4578a73ffffffffffffffffffffffffffffffffffffffff166002828154811061082e5761082d61195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610aef57600281815481106108905761088f61195a565b5b906000526020600020906006020160000180546108ac906119b8565b80601f01602080910402602001604051908101604052809291908181526020018280546108d8906119b8565b80156109255780601f106108fa57610100808354040283529160200191610925565b820191906000526020600020905b81548152906001019060200180831161090857829003601f168201915b505050505085838151811061093d5761093c61195a565b5b60200260200101819052506002818154811061095c5761095b61195a565b5b90600052602060002090600602016001018054610978906119b8565b80601f01602080910402602001604051908101604052809291908181526020018280546109a4906119b8565b80156109f15780601f106109c6576101008083540402835291602001916109f1565b820191906000526020600020905b8154815290600101906020018083116109d457829003601f168201915b5050505050848381518110610a0957610a0861195a565b5b602002602001018190525060028181548110610a2857610a2761195a565b5b90600052602060002090600602016002018054610a44906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a70906119b8565b8015610abd5780601f10610a9257610100808354040283529160200191610abd565b820191906000526020600020905b815481529060010190602001808311610aa057829003601f168201915b5050505050838381518110610ad557610ad461195a565b5b60200260200101819052508180610aeb90611a23565b9250505b610de1565b8a73ffffffffffffffffffffffffffffffffffffffff1660028281548110610b1f57610b1e61195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610de05760028181548110610b8157610b8061195a565b5b90600052602060002090600602016000018054610b9d906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc9906119b8565b8015610c165780601f10610beb57610100808354040283529160200191610c16565b820191906000526020600020905b815481529060010190602001808311610bf957829003601f168201915b5050505050858381518110610c2e57610c2d61195a565b5b602002602001018190525060028181548110610c4d57610c4c61195a565b5b90600052602060002090600602016001018054610c69906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610c95906119b8565b8015610ce25780601f10610cb757610100808354040283529160200191610ce2565b820191906000526020600020905b815481529060010190602001808311610cc557829003601f168201915b5050505050848381518110610cfa57610cf961195a565b5b602002602001018190525060028181548110610d1957610d1861195a565b5b90600052602060002090600602016002018054610d35906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610d61906119b8565b8015610dae5780601f10610d8357610100808354040283529160200191610dae565b820191906000526020600020905b815481529060010190602001808311610d9157829003601f168201915b5050505050838381518110610dc657610dc561195a565b5b60200260200101819052508180610ddc90611a23565b9250505b5b8080610dec90611a23565b9150506107f0565b5083838397509750975050505050509250925092565b60608060606000610e1b8686611443565b905060008167ffffffffffffffff811115610e3957610e386116f1565b5b604051908082528060200260200182016040528015610e6c57816020015b6060815260200190600190039081610e575790505b50905060008267ffffffffffffffff811115610e8b57610e8a6116f1565b5b604051908082528060200260200182016040528015610eb95781602001602082028036833780820191505090505b50905060008367ffffffffffffffff811115610ed857610ed76116f1565b5b604051908082528060200260200182016040528015610f065781602001602082028036833780820191505090505b5090506000805b60028054905081101561142d57891561119f578a73ffffffffffffffffffffffffffffffffffffffff1660028281548110610f4b57610f4a61195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561119a5760028181548110610fad57610fac61195a565b5b90600052602060002090600602016003018054610fc9906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff5906119b8565b80156110425780601f1061101757610100808354040283529160200191611042565b820191906000526020600020905b81548152906001019060200180831161102557829003601f168201915b505050505085838151811061105a5761105961195a565b5b6020026020010181905250600281815481106110795761107861195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168483815181106110be576110bd61195a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506002818154811061110c5761110b61195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383815181106111515761115061195a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818061119690611a23565b9250505b61141a565b8a73ffffffffffffffffffffffffffffffffffffffff16600282815481106111ca576111c961195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611419576002818154811061122c5761122b61195a565b5b90600052602060002090600602016003018054611248906119b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611274906119b8565b80156112c15780601f10611296576101008083540402835291602001916112c1565b820191906000526020600020905b8154815290600101906020018083116112a457829003601f168201915b50505050508583815181106112d9576112d861195a565b5b6020026020010181905250600281815481106112f8576112f761195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684838151811061133d5761133c61195a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506002818154811061138b5761138a61195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383815181106113d0576113cf61195a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818061141590611a23565b9250505b5b808061142590611a23565b915050610f0d565b5083838397509750975050505050509250925092565b6000806000905060005b6002805490508110156115895783156114ed578473ffffffffffffffffffffffffffffffffffffffff166002828154811061148b5761148a61195a565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156114e85781806114e490611a23565b9250505b611576565b8473ffffffffffffffffffffffffffffffffffffffff16600282815481106115185761151761195a565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561157557818061157190611a23565b9250505b5b808061158190611a23565b91505061144d565b508091505092915050565b8280546115a0906119b8565b90600052602060002090601f0160209004810192826115c25760008555611609565b82601f106115db57805160ff1916838001178555611609565b82800160010185558215611609579182015b828111156116085782518255916020019190600101906115ed565b5b509050611616919061161a565b5090565b5b8082111561163357600081600090555060010161161b565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116768261164b565b9050919050565b6116868161166b565b811461169157600080fd5b50565b6000813590506116a38161167d565b92915050565b6000602082840312156116bf576116be611641565b5b60006116cd84828501611694565b91505092915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611729826116e0565b810181811067ffffffffffffffff82111715611748576117476116f1565b5b80604052505050565b600061175b611637565b90506117678282611720565b919050565b600067ffffffffffffffff821115611787576117866116f1565b5b611790826116e0565b9050602081019050919050565b82818337600083830152505050565b60006117bf6117ba8461176c565b611751565b9050828152602081018484840111156117db576117da6116db565b5b6117e684828561179d565b509392505050565b600082601f830112611803576118026116d6565b5b81356118138482602086016117ac565b91505092915050565b600080600080600060a0868803121561183857611837611641565b5b600086013567ffffffffffffffff81111561185657611855611646565b5b611862888289016117ee565b955050602086013567ffffffffffffffff81111561188357611882611646565b5b61188f888289016117ee565b945050604086013567ffffffffffffffff8111156118b0576118af611646565b5b6118bc888289016117ee565b935050606086013567ffffffffffffffff8111156118dd576118dc611646565b5b6118e9888289016117ee565b92505060806118fa88828901611694565b9150509295509295909350565b6119108161166b565b82525050565b600060208201905061192b6000830184611907565b92915050565b60006040820190506119466000830185611907565b6119536020830184611907565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806119d057607f821691505b602082108114156119e4576119e3611989565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000611a2e82611a19565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611a6157611a606119ea565b5b60018201905091905056fea264697066735822122027020938ebf48efbff73a708a517686db280ebe191e8b5532187334b2755997a64736f6c634300080a0033", + "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_userB\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"getChannelUsers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_user2\",\"type\":\"address\"}],\"name\":\"getSentFiles1\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_user2\",\"type\":\"address\"}],\"name\":\"getSentFiles2\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSharedFiles\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_fileName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_senderEncryptedAESKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_receiverEncryptedAESKey\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"}],\"name\":\"sendFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"userA\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"userB\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/ShareChannel.sol\":\"ShareChannel\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/ShareChannel.sol\":{\"keccak256\":\"0x26486edbc11a43c0841404c0e5b63be6678e5fc7952cc8b89556298b81848193\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a2d0bcff53df904e6a5aefb1e48705da45a62d491be0abe74f64013c14d78d6\",\"dweb:/ipfs/QmR2szTWdGqJqJxQmfWRtPE6SRg9sDKArrejKoZetScWVE\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b506040516200204c3803806200204c83398181016040528101906200003791906200012a565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000171565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000f282620000c5565b9050919050565b6200010481620000e5565b81146200011057600080fd5b50565b6000815190506200012481620000f9565b92915050565b60008060408385031215620001445762000143620000c0565b5b6000620001548582860162000113565b9250506020620001678582860162000113565b9150509250929050565b611ecb80620001816000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a6aeff571161005b578063a6aeff5714610109578063cb1a295f14610125578063deb22e9a14610143578063e9ad3239146101615761007d565b80631a936e9e1461008257806377e371e6146100b4578063914e3144146100e6575b600080fd5b61009c6004803603810190610097919061173e565b610180565b6040516100ab939291906118d9565b60405180910390f35b6100ce60048036038101906100c9919061173e565b610747565b6040516100dd939291906119e3565b60405180910390f35b6100ee610c92565b60405161010096959493929190611a2f565b60405180910390f35b610123600480360381019061011e9190611bef565b611335565b005b61012d6113fa565b60405161013a9190611ce9565b60405180910390f35b61014b611420565b6040516101589190611ce9565b60405180910390f35b610169611444565b604051610177929190611d04565b60405180910390f35b60608060606000805b6002805490508110156102ad578673ffffffffffffffffffffffffffffffffffffffff16600282815481106101c1576101c0611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561028657508573ffffffffffffffffffffffffffffffffffffffff166002828154811061023c5761023b611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561029a57818061029690611d95565b9250505b80806102a590611d95565b915050610189565b5060008167ffffffffffffffff8111156102ca576102c9611ac4565b5b6040519080825280602002602001820160405280156102fd57816020015b60608152602001906001900390816102e85790505b50905060008267ffffffffffffffff81111561031c5761031b611ac4565b5b60405190808252806020026020018201604052801561034f57816020015b606081526020019060019003908161033a5790505b50905060008367ffffffffffffffff81111561036e5761036d611ac4565b5b6040519080825280602002602001820160405280156103a157816020015b606081526020019060019003908161038c5790505b5090506000805b600280549050811015610731578a73ffffffffffffffffffffffffffffffffffffffff16600282815481106103e0576103df611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156104a557508973ffffffffffffffffffffffffffffffffffffffff166002828154811061045b5761045a611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561071e57600281815481106104be576104bd611d2d565b5b906000526020600020906006020160000180546104da90611e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461050690611e0d565b80156105535780601f1061052857610100808354040283529160200191610553565b820191906000526020600020905b81548152906001019060200180831161053657829003601f168201915b505050505085838151811061056b5761056a611d2d565b5b60200260200101819052506002818154811061058a57610589611d2d565b5b906000526020600020906006020160010180546105a690611e0d565b80601f01602080910402602001604051908101604052809291908181526020018280546105d290611e0d565b801561061f5780601f106105f45761010080835404028352916020019161061f565b820191906000526020600020905b81548152906001019060200180831161060257829003601f168201915b505050505084838151811061063757610636611d2d565b5b60200260200101819052506002818154811061065657610655611d2d565b5b9060005260206000209060060201600201805461067290611e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90611e0d565b80156106eb5780601f106106c0576101008083540402835291602001916106eb565b820191906000526020600020905b8154815290600101906020018083116106ce57829003601f168201915b505050505083838151811061070357610702611d2d565b5b602002602001018190525060018261071b9190611e3f565b91505b808061072990611d95565b9150506103a8565b5083838397509750975050505050509250925092565b60608060606000805b600280549050811015610874578673ffffffffffffffffffffffffffffffffffffffff166002828154811061078857610787611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561084d57508573ffffffffffffffffffffffffffffffffffffffff166002828154811061080357610802611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561086157818061085d90611d95565b9250505b808061086c90611d95565b915050610750565b5060008167ffffffffffffffff81111561089157610890611ac4565b5b6040519080825280602002602001820160405280156108c457816020015b60608152602001906001900390816108af5790505b50905060008267ffffffffffffffff8111156108e3576108e2611ac4565b5b6040519080825280602002602001820160405280156109115781602001602082028036833780820191505090505b50905060008367ffffffffffffffff8111156109305761092f611ac4565b5b60405190808252806020026020018201604052801561095e5781602001602082028036833780820191505090505b5090506000805b600280549050811015610c7c578a73ffffffffffffffffffffffffffffffffffffffff166002828154811061099d5761099c611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015610a6257508973ffffffffffffffffffffffffffffffffffffffff1660028281548110610a1857610a17611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15610c695760028181548110610a7b57610a7a611d2d565b5b90600052602060002090600602016003018054610a9790611e0d565b80601f0160208091040260200160405190810160405280929190818152602001828054610ac390611e0d565b8015610b105780601f10610ae557610100808354040283529160200191610b10565b820191906000526020600020905b815481529060010190602001808311610af357829003601f168201915b5050505050858381518110610b2857610b27611d2d565b5b602002602001018190525060028181548110610b4757610b46611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848381518110610b8c57610b8b611d2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060028181548110610bda57610bd9611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838381518110610c1f57610c1e611d2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600182610c669190611e3f565b91505b8080610c7490611d95565b915050610965565b5083838397509750975050505050509250925092565b606080606080606080600060028054905067ffffffffffffffff811115610cbc57610cbb611ac4565b5b604051908082528060200260200182016040528015610cef57816020015b6060815260200190600190039081610cda5790505b509050600060028054905067ffffffffffffffff811115610d1357610d12611ac4565b5b604051908082528060200260200182016040528015610d4657816020015b6060815260200190600190039081610d315790505b509050600060028054905067ffffffffffffffff811115610d6a57610d69611ac4565b5b604051908082528060200260200182016040528015610d9d57816020015b6060815260200190600190039081610d885790505b509050600060028054905067ffffffffffffffff811115610dc157610dc0611ac4565b5b604051908082528060200260200182016040528015610df457816020015b6060815260200190600190039081610ddf5790505b509050600060028054905067ffffffffffffffff811115610e1857610e17611ac4565b5b604051908082528060200260200182016040528015610e465781602001602082028036833780820191505090505b509050600060028054905067ffffffffffffffff811115610e6a57610e69611ac4565b5b604051908082528060200260200182016040528015610e985781602001602082028036833780820191505090505b50905060005b6002805490508110156113145760028181548110610ebf57610ebe611d2d565b5b90600052602060002090600602016000018054610edb90611e0d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0790611e0d565b8015610f545780601f10610f2957610100808354040283529160200191610f54565b820191906000526020600020905b815481529060010190602001808311610f3757829003601f168201915b5050505050878281518110610f6c57610f6b611d2d565b5b602002602001018190525060028181548110610f8b57610f8a611d2d565b5b90600052602060002090600602016001018054610fa790611e0d565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd390611e0d565b80156110205780601f10610ff557610100808354040283529160200191611020565b820191906000526020600020905b81548152906001019060200180831161100357829003601f168201915b505050505086828151811061103857611037611d2d565b5b60200260200101819052506002818154811061105757611056611d2d565b5b9060005260206000209060060201600201805461107390611e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461109f90611e0d565b80156110ec5780601f106110c1576101008083540402835291602001916110ec565b820191906000526020600020905b8154815290600101906020018083116110cf57829003601f168201915b505050505085828151811061110457611103611d2d565b5b60200260200101819052506002818154811061112357611122611d2d565b5b9060005260206000209060060201600301805461113f90611e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461116b90611e0d565b80156111b85780601f1061118d576101008083540402835291602001916111b8565b820191906000526020600020905b81548152906001019060200180831161119b57829003601f168201915b50505050508482815181106111d0576111cf611d2d565b5b6020026020010181905250600281815481106111ef576111ee611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683828151811061123457611233611d2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506002818154811061128257611281611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168282815181106112c7576112c6611d2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808061130c90611d95565b915050610e9e565b508585858585859b509b509b509b509b509b50505050505050909192939495565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113dc5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113e557600080fd5b6113f3858585853386611493565b5050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915091509091565b60006040518060c001604052808881526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815250905060028190806001815401808255809150506001900390600052602060002090600602016000909190919091506000820151816000019080519060200190611538929190611629565b506020820151816001019080519060200190611555929190611629565b506040820151816002019080519060200190611572929190611629565b50606082015181600301908051906020019061158f929190611629565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050565b82805461163590611e0d565b90600052602060002090601f016020900481019282611657576000855561169e565b82601f1061167057805160ff191683800117855561169e565b8280016001018555821561169e579182015b8281111561169d578251825591602001919060010190611682565b5b5090506116ab91906116af565b5090565b5b808211156116c85760008160009055506001016116b0565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061170b826116e0565b9050919050565b61171b81611700565b811461172657600080fd5b50565b60008135905061173881611712565b92915050565b60008060408385031215611755576117546116d6565b5b600061176385828601611729565b925050602061177485828601611729565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156117e45780820151818401526020810190506117c9565b838111156117f3576000848401525b50505050565b6000601f19601f8301169050919050565b6000611815826117aa565b61181f81856117b5565b935061182f8185602086016117c6565b611838816117f9565b840191505092915050565b600061184f838361180a565b905092915050565b6000602082019050919050565b600061186f8261177e565b6118798185611789565b93508360208202850161188b8561179a565b8060005b858110156118c757848403895281516118a88582611843565b94506118b383611857565b925060208a0199505060018101905061188f565b50829750879550505050505092915050565b600060608201905081810360008301526118f38186611864565b905081810360208301526119078185611864565b9050818103604083015261191b8184611864565b9050949350505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61195a81611700565b82525050565b600061196c8383611951565b60208301905092915050565b6000602082019050919050565b600061199082611925565b61199a8185611930565b93506119a583611941565b8060005b838110156119d65781516119bd8882611960565b97506119c883611978565b9250506001810190506119a9565b5085935050505092915050565b600060608201905081810360008301526119fd8186611864565b90508181036020830152611a118185611985565b90508181036040830152611a258184611985565b9050949350505050565b600060c0820190508181036000830152611a498189611864565b90508181036020830152611a5d8188611864565b90508181036040830152611a718187611864565b90508181036060830152611a858186611864565b90508181036080830152611a998185611985565b905081810360a0830152611aad8184611985565b9050979650505050505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611afc826117f9565b810181811067ffffffffffffffff82111715611b1b57611b1a611ac4565b5b80604052505050565b6000611b2e6116cc565b9050611b3a8282611af3565b919050565b600067ffffffffffffffff821115611b5a57611b59611ac4565b5b611b63826117f9565b9050602081019050919050565b82818337600083830152505050565b6000611b92611b8d84611b3f565b611b24565b905082815260208101848484011115611bae57611bad611abf565b5b611bb9848285611b70565b509392505050565b600082601f830112611bd657611bd5611aba565b5b8135611be6848260208601611b7f565b91505092915050565b600080600080600060a08688031215611c0b57611c0a6116d6565b5b600086013567ffffffffffffffff811115611c2957611c286116db565b5b611c3588828901611bc1565b955050602086013567ffffffffffffffff811115611c5657611c556116db565b5b611c6288828901611bc1565b945050604086013567ffffffffffffffff811115611c8357611c826116db565b5b611c8f88828901611bc1565b935050606086013567ffffffffffffffff811115611cb057611caf6116db565b5b611cbc88828901611bc1565b9250506080611ccd88828901611729565b9150509295509295909350565b611ce381611700565b82525050565b6000602082019050611cfe6000830184611cda565b92915050565b6000604082019050611d196000830185611cda565b611d266020830184611cda565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000611da082611d8b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611dd357611dd2611d5c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e2557607f821691505b60208210811415611e3957611e38611dde565b5b50919050565b6000611e4a82611d8b565b9150611e5583611d8b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611e8a57611e89611d5c565b5b82820190509291505056fea2646970667358221220d187f4deed7c0f58580ee05df173d3ed7044b9a6ba54186f0a0502107683019264736f6c634300080a0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a6aeff571161005b578063a6aeff5714610109578063cb1a295f14610125578063deb22e9a14610143578063e9ad3239146101615761007d565b80631a936e9e1461008257806377e371e6146100b4578063914e3144146100e6575b600080fd5b61009c6004803603810190610097919061173e565b610180565b6040516100ab939291906118d9565b60405180910390f35b6100ce60048036038101906100c9919061173e565b610747565b6040516100dd939291906119e3565b60405180910390f35b6100ee610c92565b60405161010096959493929190611a2f565b60405180910390f35b610123600480360381019061011e9190611bef565b611335565b005b61012d6113fa565b60405161013a9190611ce9565b60405180910390f35b61014b611420565b6040516101589190611ce9565b60405180910390f35b610169611444565b604051610177929190611d04565b60405180910390f35b60608060606000805b6002805490508110156102ad578673ffffffffffffffffffffffffffffffffffffffff16600282815481106101c1576101c0611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561028657508573ffffffffffffffffffffffffffffffffffffffff166002828154811061023c5761023b611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561029a57818061029690611d95565b9250505b80806102a590611d95565b915050610189565b5060008167ffffffffffffffff8111156102ca576102c9611ac4565b5b6040519080825280602002602001820160405280156102fd57816020015b60608152602001906001900390816102e85790505b50905060008267ffffffffffffffff81111561031c5761031b611ac4565b5b60405190808252806020026020018201604052801561034f57816020015b606081526020019060019003908161033a5790505b50905060008367ffffffffffffffff81111561036e5761036d611ac4565b5b6040519080825280602002602001820160405280156103a157816020015b606081526020019060019003908161038c5790505b5090506000805b600280549050811015610731578a73ffffffffffffffffffffffffffffffffffffffff16600282815481106103e0576103df611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156104a557508973ffffffffffffffffffffffffffffffffffffffff166002828154811061045b5761045a611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561071e57600281815481106104be576104bd611d2d565b5b906000526020600020906006020160000180546104da90611e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461050690611e0d565b80156105535780601f1061052857610100808354040283529160200191610553565b820191906000526020600020905b81548152906001019060200180831161053657829003601f168201915b505050505085838151811061056b5761056a611d2d565b5b60200260200101819052506002818154811061058a57610589611d2d565b5b906000526020600020906006020160010180546105a690611e0d565b80601f01602080910402602001604051908101604052809291908181526020018280546105d290611e0d565b801561061f5780601f106105f45761010080835404028352916020019161061f565b820191906000526020600020905b81548152906001019060200180831161060257829003601f168201915b505050505084838151811061063757610636611d2d565b5b60200260200101819052506002818154811061065657610655611d2d565b5b9060005260206000209060060201600201805461067290611e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90611e0d565b80156106eb5780601f106106c0576101008083540402835291602001916106eb565b820191906000526020600020905b8154815290600101906020018083116106ce57829003601f168201915b505050505083838151811061070357610702611d2d565b5b602002602001018190525060018261071b9190611e3f565b91505b808061072990611d95565b9150506103a8565b5083838397509750975050505050509250925092565b60608060606000805b600280549050811015610874578673ffffffffffffffffffffffffffffffffffffffff166002828154811061078857610787611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561084d57508573ffffffffffffffffffffffffffffffffffffffff166002828154811061080357610802611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561086157818061085d90611d95565b9250505b808061086c90611d95565b915050610750565b5060008167ffffffffffffffff81111561089157610890611ac4565b5b6040519080825280602002602001820160405280156108c457816020015b60608152602001906001900390816108af5790505b50905060008267ffffffffffffffff8111156108e3576108e2611ac4565b5b6040519080825280602002602001820160405280156109115781602001602082028036833780820191505090505b50905060008367ffffffffffffffff8111156109305761092f611ac4565b5b60405190808252806020026020018201604052801561095e5781602001602082028036833780820191505090505b5090506000805b600280549050811015610c7c578a73ffffffffffffffffffffffffffffffffffffffff166002828154811061099d5761099c611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015610a6257508973ffffffffffffffffffffffffffffffffffffffff1660028281548110610a1857610a17611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15610c695760028181548110610a7b57610a7a611d2d565b5b90600052602060002090600602016003018054610a9790611e0d565b80601f0160208091040260200160405190810160405280929190818152602001828054610ac390611e0d565b8015610b105780601f10610ae557610100808354040283529160200191610b10565b820191906000526020600020905b815481529060010190602001808311610af357829003601f168201915b5050505050858381518110610b2857610b27611d2d565b5b602002602001018190525060028181548110610b4757610b46611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848381518110610b8c57610b8b611d2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060028181548110610bda57610bd9611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838381518110610c1f57610c1e611d2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600182610c669190611e3f565b91505b8080610c7490611d95565b915050610965565b5083838397509750975050505050509250925092565b606080606080606080600060028054905067ffffffffffffffff811115610cbc57610cbb611ac4565b5b604051908082528060200260200182016040528015610cef57816020015b6060815260200190600190039081610cda5790505b509050600060028054905067ffffffffffffffff811115610d1357610d12611ac4565b5b604051908082528060200260200182016040528015610d4657816020015b6060815260200190600190039081610d315790505b509050600060028054905067ffffffffffffffff811115610d6a57610d69611ac4565b5b604051908082528060200260200182016040528015610d9d57816020015b6060815260200190600190039081610d885790505b509050600060028054905067ffffffffffffffff811115610dc157610dc0611ac4565b5b604051908082528060200260200182016040528015610df457816020015b6060815260200190600190039081610ddf5790505b509050600060028054905067ffffffffffffffff811115610e1857610e17611ac4565b5b604051908082528060200260200182016040528015610e465781602001602082028036833780820191505090505b509050600060028054905067ffffffffffffffff811115610e6a57610e69611ac4565b5b604051908082528060200260200182016040528015610e985781602001602082028036833780820191505090505b50905060005b6002805490508110156113145760028181548110610ebf57610ebe611d2d565b5b90600052602060002090600602016000018054610edb90611e0d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0790611e0d565b8015610f545780601f10610f2957610100808354040283529160200191610f54565b820191906000526020600020905b815481529060010190602001808311610f3757829003601f168201915b5050505050878281518110610f6c57610f6b611d2d565b5b602002602001018190525060028181548110610f8b57610f8a611d2d565b5b90600052602060002090600602016001018054610fa790611e0d565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd390611e0d565b80156110205780601f10610ff557610100808354040283529160200191611020565b820191906000526020600020905b81548152906001019060200180831161100357829003601f168201915b505050505086828151811061103857611037611d2d565b5b60200260200101819052506002818154811061105757611056611d2d565b5b9060005260206000209060060201600201805461107390611e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461109f90611e0d565b80156110ec5780601f106110c1576101008083540402835291602001916110ec565b820191906000526020600020905b8154815290600101906020018083116110cf57829003601f168201915b505050505085828151811061110457611103611d2d565b5b60200260200101819052506002818154811061112357611122611d2d565b5b9060005260206000209060060201600301805461113f90611e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461116b90611e0d565b80156111b85780601f1061118d576101008083540402835291602001916111b8565b820191906000526020600020905b81548152906001019060200180831161119b57829003601f168201915b50505050508482815181106111d0576111cf611d2d565b5b6020026020010181905250600281815481106111ef576111ee611d2d565b5b906000526020600020906006020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683828151811061123457611233611d2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506002818154811061128257611281611d2d565b5b906000526020600020906006020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168282815181106112c7576112c6611d2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808061130c90611d95565b915050610e9e565b508585858585859b509b509b509b509b509b50505050505050909192939495565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113dc5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113e557600080fd5b6113f3858585853386611493565b5050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915091509091565b60006040518060c001604052808881526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815250905060028190806001815401808255809150506001900390600052602060002090600602016000909190919091506000820151816000019080519060200190611538929190611629565b506020820151816001019080519060200190611555929190611629565b506040820151816002019080519060200190611572929190611629565b50606082015181600301908051906020019061158f929190611629565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050565b82805461163590611e0d565b90600052602060002090601f016020900481019282611657576000855561169e565b82601f1061167057805160ff191683800117855561169e565b8280016001018555821561169e579182015b8281111561169d578251825591602001919060010190611682565b5b5090506116ab91906116af565b5090565b5b808211156116c85760008160009055506001016116b0565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061170b826116e0565b9050919050565b61171b81611700565b811461172657600080fd5b50565b60008135905061173881611712565b92915050565b60008060408385031215611755576117546116d6565b5b600061176385828601611729565b925050602061177485828601611729565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156117e45780820151818401526020810190506117c9565b838111156117f3576000848401525b50505050565b6000601f19601f8301169050919050565b6000611815826117aa565b61181f81856117b5565b935061182f8185602086016117c6565b611838816117f9565b840191505092915050565b600061184f838361180a565b905092915050565b6000602082019050919050565b600061186f8261177e565b6118798185611789565b93508360208202850161188b8561179a565b8060005b858110156118c757848403895281516118a88582611843565b94506118b383611857565b925060208a0199505060018101905061188f565b50829750879550505050505092915050565b600060608201905081810360008301526118f38186611864565b905081810360208301526119078185611864565b9050818103604083015261191b8184611864565b9050949350505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61195a81611700565b82525050565b600061196c8383611951565b60208301905092915050565b6000602082019050919050565b600061199082611925565b61199a8185611930565b93506119a583611941565b8060005b838110156119d65781516119bd8882611960565b97506119c883611978565b9250506001810190506119a9565b5085935050505092915050565b600060608201905081810360008301526119fd8186611864565b90508181036020830152611a118185611985565b90508181036040830152611a258184611985565b9050949350505050565b600060c0820190508181036000830152611a498189611864565b90508181036020830152611a5d8188611864565b90508181036040830152611a718187611864565b90508181036060830152611a858186611864565b90508181036080830152611a998185611985565b905081810360a0830152611aad8184611985565b9050979650505050505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611afc826117f9565b810181811067ffffffffffffffff82111715611b1b57611b1a611ac4565b5b80604052505050565b6000611b2e6116cc565b9050611b3a8282611af3565b919050565b600067ffffffffffffffff821115611b5a57611b59611ac4565b5b611b63826117f9565b9050602081019050919050565b82818337600083830152505050565b6000611b92611b8d84611b3f565b611b24565b905082815260208101848484011115611bae57611bad611abf565b5b611bb9848285611b70565b509392505050565b600082601f830112611bd657611bd5611aba565b5b8135611be6848260208601611b7f565b91505092915050565b600080600080600060a08688031215611c0b57611c0a6116d6565b5b600086013567ffffffffffffffff811115611c2957611c286116db565b5b611c3588828901611bc1565b955050602086013567ffffffffffffffff811115611c5657611c556116db565b5b611c6288828901611bc1565b945050604086013567ffffffffffffffff811115611c8357611c826116db565b5b611c8f88828901611bc1565b935050606086013567ffffffffffffffff811115611cb057611caf6116db565b5b611cbc88828901611bc1565b9250506080611ccd88828901611729565b9150509295509295909350565b611ce381611700565b82525050565b6000602082019050611cfe6000830184611cda565b92915050565b6000604082019050611d196000830185611cda565b611d266020830184611cda565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000611da082611d8b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611dd357611dd2611d5c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e2557607f821691505b60208210811415611e3957611e38611dde565b5b50919050565b6000611e4a82611d8b565b9150611e5583611d8b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611e8a57611e89611d5c565b5b82820190509291505056fea2646970667358221220d187f4deed7c0f58580ee05df173d3ed7044b9a6ba54186f0a0502107683019264736f6c634300080a0033", "immutableReferences": {}, "generatedSources": [ { "ast": { "nodeType": "YulBlock", - "src": "0:1355:2", + "src": "0:1355:6", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "47:35:2", + "src": "47:35:6", "statements": [ { "nodeType": "YulAssignment", - "src": "57:19:2", + "src": "57:19:6", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "73:2:2", + "src": "73:2:6", "type": "", "value": "64" } @@ -185,16 +232,16 @@ "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "67:5:2" + "src": "67:5:6" }, "nodeType": "YulFunctionCall", - "src": "67:9:2" + "src": "67:9:6" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "57:6:2" + "src": "57:6:6" } ] } @@ -206,16 +253,16 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "40:6:2", + "src": "40:6:6", "type": "" } ], - "src": "7:75:2" + "src": "7:75:6" }, { "body": { "nodeType": "YulBlock", - "src": "177:28:2", + "src": "177:28:6", "statements": [ { "expression": { @@ -223,14 +270,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "194:1:2", + "src": "194:1:6", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "197:1:2", + "src": "197:1:6", "type": "", "value": "0" } @@ -238,24 +285,24 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "187:6:2" + "src": "187:6:6" }, "nodeType": "YulFunctionCall", - "src": "187:12:2" + "src": "187:12:6" }, "nodeType": "YulExpressionStatement", - "src": "187:12:2" + "src": "187:12:6" } ] }, "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulFunctionDefinition", - "src": "88:117:2" + "src": "88:117:6" }, { "body": { "nodeType": "YulBlock", - "src": "300:28:2", + "src": "300:28:6", "statements": [ { "expression": { @@ -263,14 +310,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "317:1:2", + "src": "317:1:6", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "320:1:2", + "src": "320:1:6", "type": "", "value": "0" } @@ -278,39 +325,39 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "310:6:2" + "src": "310:6:6" }, "nodeType": "YulFunctionCall", - "src": "310:12:2" + "src": "310:12:6" }, "nodeType": "YulExpressionStatement", - "src": "310:12:2" + "src": "310:12:6" } ] }, "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulFunctionDefinition", - "src": "211:117:2" + "src": "211:117:6" }, { "body": { "nodeType": "YulBlock", - "src": "379:81:2", + "src": "379:81:6", "statements": [ { "nodeType": "YulAssignment", - "src": "389:65:2", + "src": "389:65:6", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "404:5:2" + "src": "404:5:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "411:42:2", + "src": "411:42:6", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } @@ -318,16 +365,16 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "400:3:2" + "src": "400:3:6" }, "nodeType": "YulFunctionCall", - "src": "400:54:2" + "src": "400:54:6" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", - "src": "389:7:2" + "src": "389:7:6" } ] } @@ -339,7 +386,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "361:5:2", + "src": "361:5:6", "type": "" } ], @@ -347,41 +394,41 @@ { "name": "cleaned", "nodeType": "YulTypedName", - "src": "371:7:2", + "src": "371:7:6", "type": "" } ], - "src": "334:126:2" + "src": "334:126:6" }, { "body": { "nodeType": "YulBlock", - "src": "511:51:2", + "src": "511:51:6", "statements": [ { "nodeType": "YulAssignment", - "src": "521:35:2", + "src": "521:35:6", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "550:5:2" + "src": "550:5:6" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", - "src": "532:17:2" + "src": "532:17:6" }, "nodeType": "YulFunctionCall", - "src": "532:24:2" + "src": "532:24:6" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", - "src": "521:7:2" + "src": "521:7:6" } ] } @@ -393,7 +440,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "493:5:2", + "src": "493:5:6", "type": "" } ], @@ -401,21 +448,21 @@ { "name": "cleaned", "nodeType": "YulTypedName", - "src": "503:7:2", + "src": "503:7:6", "type": "" } ], - "src": "466:96:2" + "src": "466:96:6" }, { "body": { "nodeType": "YulBlock", - "src": "611:79:2", + "src": "611:79:6", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "668:16:2", + "src": "668:16:6", "statements": [ { "expression": { @@ -423,14 +470,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "677:1:2", + "src": "677:1:6", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "680:1:2", + "src": "680:1:6", "type": "", "value": "0" } @@ -438,13 +485,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "670:6:2" + "src": "670:6:6" }, "nodeType": "YulFunctionCall", - "src": "670:12:2" + "src": "670:12:6" }, "nodeType": "YulExpressionStatement", - "src": "670:12:2" + "src": "670:12:6" } ] }, @@ -455,44 +502,44 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "634:5:2" + "src": "634:5:6" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "659:5:2" + "src": "659:5:6" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", - "src": "641:17:2" + "src": "641:17:6" }, "nodeType": "YulFunctionCall", - "src": "641:24:2" + "src": "641:24:6" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "631:2:2" + "src": "631:2:6" }, "nodeType": "YulFunctionCall", - "src": "631:35:2" + "src": "631:35:6" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "624:6:2" + "src": "624:6:6" }, "nodeType": "YulFunctionCall", - "src": "624:43:2" + "src": "624:43:6" }, "nodeType": "YulIf", - "src": "621:63:2" + "src": "621:63:6" } ] }, @@ -502,41 +549,41 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "604:5:2", + "src": "604:5:6", "type": "" } ], - "src": "568:122:2" + "src": "568:122:6" }, { "body": { "nodeType": "YulBlock", - "src": "759:80:2", + "src": "759:80:6", "statements": [ { "nodeType": "YulAssignment", - "src": "769:22:2", + "src": "769:22:6", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "784:6:2" + "src": "784:6:6" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "778:5:2" + "src": "778:5:6" }, "nodeType": "YulFunctionCall", - "src": "778:13:2" + "src": "778:13:6" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "769:5:2" + "src": "769:5:6" } ] }, @@ -546,19 +593,19 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "827:5:2" + "src": "827:5:6" } ], "functionName": { "name": "validator_revert_t_address", "nodeType": "YulIdentifier", - "src": "800:26:2" + "src": "800:26:6" }, "nodeType": "YulFunctionCall", - "src": "800:33:2" + "src": "800:33:6" }, "nodeType": "YulExpressionStatement", - "src": "800:33:2" + "src": "800:33:6" } ] }, @@ -568,13 +615,13 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "737:6:2", + "src": "737:6:6", "type": "" }, { "name": "end", "nodeType": "YulTypedName", - "src": "745:3:2", + "src": "745:3:6", "type": "" } ], @@ -582,21 +629,21 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "753:5:2", + "src": "753:5:6", "type": "" } ], - "src": "696:143:2" + "src": "696:143:6" }, { "body": { "nodeType": "YulBlock", - "src": "939:413:2", + "src": "939:413:6", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "985:83:2", + "src": "985:83:6", "statements": [ { "expression": { @@ -604,13 +651,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "987:77:2" + "src": "987:77:6" }, "nodeType": "YulFunctionCall", - "src": "987:79:2" + "src": "987:79:6" }, "nodeType": "YulExpressionStatement", - "src": "987:79:2" + "src": "987:79:6" } ] }, @@ -621,26 +668,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "960:7:2" + "src": "960:7:6" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "969:9:2" + "src": "969:9:6" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "956:3:2" + "src": "956:3:6" }, "nodeType": "YulFunctionCall", - "src": "956:23:2" + "src": "956:23:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "981:2:2", + "src": "981:2:6", "type": "", "value": "64" } @@ -648,25 +695,25 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "952:3:2" + "src": "952:3:6" }, "nodeType": "YulFunctionCall", - "src": "952:32:2" + "src": "952:32:6" }, "nodeType": "YulIf", - "src": "949:119:2" + "src": "949:119:6" }, { "nodeType": "YulBlock", - "src": "1078:128:2", + "src": "1078:128:6", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "1093:15:2", + "src": "1093:15:6", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "1107:1:2", + "src": "1107:1:6", "type": "", "value": "0" }, @@ -674,14 +721,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "1097:6:2", + "src": "1097:6:6", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "1122:74:2", + "src": "1122:74:6", "value": { "arguments": [ { @@ -689,41 +736,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1168:9:2" + "src": "1168:9:6" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "1179:6:2" + "src": "1179:6:6" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1164:3:2" + "src": "1164:3:6" }, "nodeType": "YulFunctionCall", - "src": "1164:22:2" + "src": "1164:22:6" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "1188:7:2" + "src": "1188:7:6" } ], "functionName": { "name": "abi_decode_t_address_fromMemory", "nodeType": "YulIdentifier", - "src": "1132:31:2" + "src": "1132:31:6" }, "nodeType": "YulFunctionCall", - "src": "1132:64:2" + "src": "1132:64:6" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "1122:6:2" + "src": "1122:6:6" } ] } @@ -731,15 +778,15 @@ }, { "nodeType": "YulBlock", - "src": "1216:129:2", + "src": "1216:129:6", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "1231:16:2", + "src": "1231:16:6", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "1245:2:2", + "src": "1245:2:6", "type": "", "value": "32" }, @@ -747,14 +794,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "1235:6:2", + "src": "1235:6:6", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "1261:74:2", + "src": "1261:74:6", "value": { "arguments": [ { @@ -762,41 +809,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1307:9:2" + "src": "1307:9:6" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "1318:6:2" + "src": "1318:6:6" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1303:3:2" + "src": "1303:3:6" }, "nodeType": "YulFunctionCall", - "src": "1303:22:2" + "src": "1303:22:6" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "1327:7:2" + "src": "1327:7:6" } ], "functionName": { "name": "abi_decode_t_address_fromMemory", "nodeType": "YulIdentifier", - "src": "1271:31:2" + "src": "1271:31:6" }, "nodeType": "YulFunctionCall", - "src": "1271:64:2" + "src": "1271:64:6" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "1261:6:2" + "src": "1261:6:6" } ] } @@ -810,13 +857,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "901:9:2", + "src": "901:9:6", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "912:7:2", + "src": "912:7:6", "type": "" } ], @@ -824,22 +871,22 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "924:6:2", + "src": "924:6:6", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "932:6:2", + "src": "932:6:6", "type": "" } ], - "src": "845:507:2" + "src": "845:507:6" } ] }, "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", - "id": 2, + "id": 6, "language": "Yul", "name": "#utility.yul" } @@ -848,22 +895,22 @@ { "ast": { "nodeType": "YulBlock", - "src": "0:6920:2", + "src": "0:15586:6", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "47:35:2", + "src": "47:35:6", "statements": [ { "nodeType": "YulAssignment", - "src": "57:19:2", + "src": "57:19:6", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "73:2:2", + "src": "73:2:6", "type": "", "value": "64" } @@ -871,16 +918,16 @@ "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "67:5:2" + "src": "67:5:6" }, "nodeType": "YulFunctionCall", - "src": "67:9:2" + "src": "67:9:6" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "57:6:2" + "src": "57:6:6" } ] } @@ -892,16 +939,16 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "40:6:2", + "src": "40:6:6", "type": "" } ], - "src": "7:75:2" + "src": "7:75:6" }, { "body": { "nodeType": "YulBlock", - "src": "177:28:2", + "src": "177:28:6", "statements": [ { "expression": { @@ -909,14 +956,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "194:1:2", + "src": "194:1:6", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "197:1:2", + "src": "197:1:6", "type": "", "value": "0" } @@ -924,24 +971,24 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "187:6:2" + "src": "187:6:6" }, "nodeType": "YulFunctionCall", - "src": "187:12:2" + "src": "187:12:6" }, "nodeType": "YulExpressionStatement", - "src": "187:12:2" + "src": "187:12:6" } ] }, "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulFunctionDefinition", - "src": "88:117:2" + "src": "88:117:6" }, { "body": { "nodeType": "YulBlock", - "src": "300:28:2", + "src": "300:28:6", "statements": [ { "expression": { @@ -949,14 +996,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "317:1:2", + "src": "317:1:6", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "320:1:2", + "src": "320:1:6", "type": "", "value": "0" } @@ -964,39 +1011,39 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "310:6:2" + "src": "310:6:6" }, "nodeType": "YulFunctionCall", - "src": "310:12:2" + "src": "310:12:6" }, "nodeType": "YulExpressionStatement", - "src": "310:12:2" + "src": "310:12:6" } ] }, "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulFunctionDefinition", - "src": "211:117:2" + "src": "211:117:6" }, { "body": { "nodeType": "YulBlock", - "src": "379:81:2", + "src": "379:81:6", "statements": [ { "nodeType": "YulAssignment", - "src": "389:65:2", + "src": "389:65:6", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "404:5:2" + "src": "404:5:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "411:42:2", + "src": "411:42:6", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } @@ -1004,16 +1051,16 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "400:3:2" + "src": "400:3:6" }, "nodeType": "YulFunctionCall", - "src": "400:54:2" + "src": "400:54:6" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", - "src": "389:7:2" + "src": "389:7:6" } ] } @@ -1025,7 +1072,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "361:5:2", + "src": "361:5:6", "type": "" } ], @@ -1033,41 +1080,41 @@ { "name": "cleaned", "nodeType": "YulTypedName", - "src": "371:7:2", + "src": "371:7:6", "type": "" } ], - "src": "334:126:2" + "src": "334:126:6" }, { "body": { "nodeType": "YulBlock", - "src": "511:51:2", + "src": "511:51:6", "statements": [ { "nodeType": "YulAssignment", - "src": "521:35:2", + "src": "521:35:6", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "550:5:2" + "src": "550:5:6" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", - "src": "532:17:2" + "src": "532:17:6" }, "nodeType": "YulFunctionCall", - "src": "532:24:2" + "src": "532:24:6" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", - "src": "521:7:2" + "src": "521:7:6" } ] } @@ -1079,7 +1126,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "493:5:2", + "src": "493:5:6", "type": "" } ], @@ -1087,21 +1134,21 @@ { "name": "cleaned", "nodeType": "YulTypedName", - "src": "503:7:2", + "src": "503:7:6", "type": "" } ], - "src": "466:96:2" + "src": "466:96:6" }, { "body": { "nodeType": "YulBlock", - "src": "611:79:2", + "src": "611:79:6", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "668:16:2", + "src": "668:16:6", "statements": [ { "expression": { @@ -1109,14 +1156,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "677:1:2", + "src": "677:1:6", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "680:1:2", + "src": "680:1:6", "type": "", "value": "0" } @@ -1124,13 +1171,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "670:6:2" + "src": "670:6:6" }, "nodeType": "YulFunctionCall", - "src": "670:12:2" + "src": "670:12:6" }, "nodeType": "YulExpressionStatement", - "src": "670:12:2" + "src": "670:12:6" } ] }, @@ -1141,44 +1188,44 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "634:5:2" + "src": "634:5:6" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "659:5:2" + "src": "659:5:6" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", - "src": "641:17:2" + "src": "641:17:6" }, "nodeType": "YulFunctionCall", - "src": "641:24:2" + "src": "641:24:6" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "631:2:2" + "src": "631:2:6" }, "nodeType": "YulFunctionCall", - "src": "631:35:2" + "src": "631:35:6" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "624:6:2" + "src": "624:6:6" }, "nodeType": "YulFunctionCall", - "src": "624:43:2" + "src": "624:43:6" }, "nodeType": "YulIf", - "src": "621:63:2" + "src": "621:63:6" } ] }, @@ -1188,41 +1235,41 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "604:5:2", + "src": "604:5:6", "type": "" } ], - "src": "568:122:2" + "src": "568:122:6" }, { "body": { "nodeType": "YulBlock", - "src": "748:87:2", + "src": "748:87:6", "statements": [ { "nodeType": "YulAssignment", - "src": "758:29:2", + "src": "758:29:6", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "780:6:2" + "src": "780:6:6" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "767:12:2" + "src": "767:12:6" }, "nodeType": "YulFunctionCall", - "src": "767:20:2" + "src": "767:20:6" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "758:5:2" + "src": "758:5:6" } ] }, @@ -1232,19 +1279,19 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "823:5:2" + "src": "823:5:6" } ], "functionName": { "name": "validator_revert_t_address", "nodeType": "YulIdentifier", - "src": "796:26:2" + "src": "796:26:6" }, "nodeType": "YulFunctionCall", - "src": "796:33:2" + "src": "796:33:6" }, "nodeType": "YulExpressionStatement", - "src": "796:33:2" + "src": "796:33:6" } ] }, @@ -1254,13 +1301,13 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "726:6:2", + "src": "726:6:6", "type": "" }, { "name": "end", "nodeType": "YulTypedName", - "src": "734:3:2", + "src": "734:3:6", "type": "" } ], @@ -1268,21 +1315,21 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "742:5:2", + "src": "742:5:6", "type": "" } ], - "src": "696:139:2" + "src": "696:139:6" }, { "body": { "nodeType": "YulBlock", - "src": "907:263:2", + "src": "924:391:6", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "953:83:2", + "src": "970:83:6", "statements": [ { "expression": { @@ -1290,13 +1337,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "955:77:2" + "src": "972:77:6" }, "nodeType": "YulFunctionCall", - "src": "955:79:2" + "src": "972:79:6" }, "nodeType": "YulExpressionStatement", - "src": "955:79:2" + "src": "972:79:6" } ] }, @@ -1307,52 +1354,52 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "928:7:2" + "src": "945:7:6" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "937:9:2" + "src": "954:9:6" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "924:3:2" + "src": "941:3:6" }, "nodeType": "YulFunctionCall", - "src": "924:23:2" + "src": "941:23:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "949:2:2", + "src": "966:2:6", "type": "", - "value": "32" + "value": "64" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "920:3:2" + "src": "937:3:6" }, "nodeType": "YulFunctionCall", - "src": "920:32:2" + "src": "937:32:6" }, "nodeType": "YulIf", - "src": "917:119:2" + "src": "934:119:6" }, { "nodeType": "YulBlock", - "src": "1046:117:2", + "src": "1063:117:6", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "1061:15:2", + "src": "1078:15:6", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "1075:1:2", + "src": "1092:1:6", "type": "", "value": "0" }, @@ -1360,14 +1407,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "1065:6:2", + "src": "1082:6:6", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "1090:63:2", + "src": "1107:63:6", "value": { "arguments": [ { @@ -1375,41 +1422,114 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1125:9:2" + "src": "1142:9:6" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "1136:6:2" + "src": "1153:6:6" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1121:3:2" + "src": "1138:3:6" }, "nodeType": "YulFunctionCall", - "src": "1121:22:2" + "src": "1138:22:6" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "1145:7:2" + "src": "1162:7:6" } ], "functionName": { "name": "abi_decode_t_address", "nodeType": "YulIdentifier", - "src": "1100:20:2" + "src": "1117:20:6" }, "nodeType": "YulFunctionCall", - "src": "1100:53:2" + "src": "1117:53:6" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "1090:6:2" + "src": "1107:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1190:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1205:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1219:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1209:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1235:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1270:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1281:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1266:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1266:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1290:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1245:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "1245:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1235:6:6" } ] } @@ -1417,19 +1537,19 @@ } ] }, - "name": "abi_decode_tuple_t_address", + "name": "abi_decode_tuple_t_addresst_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "877:9:2", + "src": "886:9:6", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "888:7:2", + "src": "897:7:6", "type": "" } ], @@ -1437,697 +1557,809 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "900:6:2", + "src": "909:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "917:6:6", "type": "" } ], - "src": "841:329:2" + "src": "841:474:6" }, { "body": { "nodeType": "YulBlock", - "src": "1265:28:2", + "src": "1405:40:6", "statements": [ { - "expression": { + "nodeType": "YulAssignment", + "src": "1416:22:6", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1282:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1285:1:2", - "type": "", - "value": "0" + "name": "value", + "nodeType": "YulIdentifier", + "src": "1432:5:6" } ], "functionName": { - "name": "revert", + "name": "mload", "nodeType": "YulIdentifier", - "src": "1275:6:2" + "src": "1426:5:6" }, "nodeType": "YulFunctionCall", - "src": "1275:12:2" + "src": "1426:12:6" }, - "nodeType": "YulExpressionStatement", - "src": "1275:12:2" + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1416:6:6" + } + ] } ] }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "name": "array_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr", "nodeType": "YulFunctionDefinition", - "src": "1176:117:2" + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1388:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1398:6:6", + "type": "" + } + ], + "src": "1321:124:6" }, { "body": { "nodeType": "YulBlock", - "src": "1388:28:2", + "src": "1572:73:6", "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1405:1:2", - "type": "", - "value": "0" + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1589:3:6" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1408:1:2", - "type": "", - "value": "0" + "name": "length", + "nodeType": "YulIdentifier", + "src": "1594:6:6" } ], "functionName": { - "name": "revert", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "1398:6:2" + "src": "1582:6:6" }, "nodeType": "YulFunctionCall", - "src": "1398:12:2" + "src": "1582:19:6" }, "nodeType": "YulExpressionStatement", - "src": "1398:12:2" - } - ] - }, - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nodeType": "YulFunctionDefinition", - "src": "1299:117:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1470:54:2", - "statements": [ + "src": "1582:19:6" + }, { "nodeType": "YulAssignment", - "src": "1480:38:2", + "src": "1610:29:6", "value": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1498:5:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1505:2:2", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1494:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "1494:14:2" + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1629:3:6" }, { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1514:2:2", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "1510:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "1510:7:2" + "kind": "number", + "nodeType": "YulLiteral", + "src": "1634:4:6", + "type": "", + "value": "0x20" } ], "functionName": { - "name": "and", + "name": "add", "nodeType": "YulIdentifier", - "src": "1490:3:2" + "src": "1625:3:6" }, "nodeType": "YulFunctionCall", - "src": "1490:28:2" + "src": "1625:14:6" }, "variableNames": [ { - "name": "result", + "name": "updated_pos", "nodeType": "YulIdentifier", - "src": "1480:6:2" + "src": "1610:11:6" } ] } ] }, - "name": "round_up_to_mul_of_32", + "name": "array_storeLengthForEncoding_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "pos", + "nodeType": "YulTypedName", + "src": "1544:3:6", + "type": "" + }, + { + "name": "length", "nodeType": "YulTypedName", - "src": "1453:5:2", + "src": "1549:6:6", "type": "" } ], "returnVariables": [ { - "name": "result", + "name": "updated_pos", "nodeType": "YulTypedName", - "src": "1463:6:2", + "src": "1560:11:6", "type": "" } ], - "src": "1422:102:2" + "src": "1451:194:6" }, { "body": { "nodeType": "YulBlock", - "src": "1558:152:2", + "src": "1733:60:6", "statements": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1575:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1578:77:2", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1568:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "1568:88:2" + "nodeType": "YulAssignment", + "src": "1743:11:6", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "1751:3:6" }, - "nodeType": "YulExpressionStatement", - "src": "1568:88:2" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1672:1:2", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1675:4:2", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", + "variableNames": [ + { + "name": "data", "nodeType": "YulIdentifier", - "src": "1665:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "1665:15:2" - }, - "nodeType": "YulExpressionStatement", - "src": "1665:15:2" + "src": "1743:4:6" + } + ] }, { - "expression": { + "nodeType": "YulAssignment", + "src": "1764:22:6", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1696:1:2", - "type": "", - "value": "0" + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "1776:3:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1699:4:2", + "src": "1781:4:6", "type": "", - "value": "0x24" + "value": "0x20" } ], "functionName": { - "name": "revert", + "name": "add", "nodeType": "YulIdentifier", - "src": "1689:6:2" + "src": "1772:3:6" }, "nodeType": "YulFunctionCall", - "src": "1689:15:2" + "src": "1772:14:6" }, - "nodeType": "YulExpressionStatement", - "src": "1689:15:2" + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "1764:4:6" + } + ] } ] }, - "name": "panic_error_0x41", + "name": "array_dataslot_t_array$_t_string_memory_ptr_$dyn_memory_ptr", "nodeType": "YulFunctionDefinition", - "src": "1530:180:2" + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "1720:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "1728:4:6", + "type": "" + } + ], + "src": "1651:142:6" }, { "body": { "nodeType": "YulBlock", - "src": "1759:238:2", + "src": "1858:40:6", "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "1769:58:2", + "nodeType": "YulAssignment", + "src": "1869:22:6", "value": { "arguments": [ { - "name": "memPtr", + "name": "value", "nodeType": "YulIdentifier", - "src": "1791:6:2" - }, - { - "arguments": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "1821:4:2" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nodeType": "YulIdentifier", - "src": "1799:21:2" - }, - "nodeType": "YulFunctionCall", - "src": "1799:27:2" + "src": "1885:5:6" } ], "functionName": { - "name": "add", + "name": "mload", "nodeType": "YulIdentifier", - "src": "1787:3:2" + "src": "1879:5:6" }, "nodeType": "YulFunctionCall", - "src": "1787:40:2" + "src": "1879:12:6" }, - "variables": [ + "variableNames": [ { - "name": "newFreePtr", - "nodeType": "YulTypedName", - "src": "1773:10:2", - "type": "" + "name": "length", + "nodeType": "YulIdentifier", + "src": "1869:6:6" } ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1938:22:2", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "1940:16:2" - }, - "nodeType": "YulFunctionCall", - "src": "1940:18:2" - }, - "nodeType": "YulExpressionStatement", - "src": "1940:18:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "1881:10:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1893:18:2", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1878:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "1878:34:2" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "1917:10:2" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "1929:6:2" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "1914:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "1914:22:2" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "1875:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "1875:62:2" - }, - "nodeType": "YulIf", - "src": "1872:88:2" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1976:2:2", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "1980:10:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1969:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "1969:22:2" - }, - "nodeType": "YulExpressionStatement", - "src": "1969:22:2" } ] }, - "name": "finalize_allocation", + "name": "array_length_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "value", "nodeType": "YulTypedName", - "src": "1745:6:2", + "src": "1841:5:6", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "size", + "name": "length", "nodeType": "YulTypedName", - "src": "1753:4:2", + "src": "1851:6:6", "type": "" } ], - "src": "1716:281:2" + "src": "1799:99:6" }, { "body": { "nodeType": "YulBlock", - "src": "2044:88:2", + "src": "1990:73:6", "statements": [ { - "nodeType": "YulAssignment", - "src": "2054:30:2", - "value": { - "arguments": [], + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2007:3:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2012:6:6" + } + ], "functionName": { - "name": "allocate_unbounded", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "2064:18:2" + "src": "2000:6:6" }, "nodeType": "YulFunctionCall", - "src": "2064:20:2" + "src": "2000:19:6" }, - "variableNames": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "2054:6:2" - } - ] + "nodeType": "YulExpressionStatement", + "src": "2000:19:6" }, { - "expression": { + "nodeType": "YulAssignment", + "src": "2028:29:6", + "value": { "arguments": [ { - "name": "memPtr", + "name": "pos", "nodeType": "YulIdentifier", - "src": "2113:6:2" + "src": "2047:3:6" }, { - "name": "size", - "nodeType": "YulIdentifier", - "src": "2121:4:2" + "kind": "number", + "nodeType": "YulLiteral", + "src": "2052:4:6", + "type": "", + "value": "0x20" } ], "functionName": { - "name": "finalize_allocation", + "name": "add", "nodeType": "YulIdentifier", - "src": "2093:19:2" + "src": "2043:3:6" }, "nodeType": "YulFunctionCall", - "src": "2093:33:2" + "src": "2043:14:6" }, - "nodeType": "YulExpressionStatement", - "src": "2093:33:2" + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "2028:11:6" + } + ] } ] }, - "name": "allocate_memory", + "name": "array_storeLengthForEncoding_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "size", + "name": "pos", + "nodeType": "YulTypedName", + "src": "1962:3:6", + "type": "" + }, + { + "name": "length", "nodeType": "YulTypedName", - "src": "2028:4:2", + "src": "1967:6:6", "type": "" } ], "returnVariables": [ { - "name": "memPtr", + "name": "updated_pos", "nodeType": "YulTypedName", - "src": "2037:6:2", + "src": "1978:11:6", "type": "" } ], - "src": "2003:129:2" + "src": "1904:159:6" }, { "body": { "nodeType": "YulBlock", - "src": "2205:241:2", + "src": "2118:258:6", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "2310:22:2", - "statements": [ - { - "expression": { - "arguments": [], + "nodeType": "YulVariableDeclaration", + "src": "2128:10:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2137:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "2132:1:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2197:63:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2222:3:6" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2227:1:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2218:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2218:11:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2241:3:6" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2246:1:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2237:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2237:11:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2231:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "2231:18:6" + } + ], "functionName": { - "name": "panic_error_0x41", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "2312:16:2" + "src": "2211:6:6" }, "nodeType": "YulFunctionCall", - "src": "2312:18:2" + "src": "2211:39:6" }, "nodeType": "YulExpressionStatement", - "src": "2312:18:2" + "src": "2211:39:6" } ] }, "condition": { "arguments": [ { - "name": "length", + "name": "i", "nodeType": "YulIdentifier", - "src": "2282:6:2" + "src": "2158:1:6" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2290:18:2", - "type": "", - "value": "0xffffffffffffffff" + "name": "length", + "nodeType": "YulIdentifier", + "src": "2161:6:6" } ], "functionName": { - "name": "gt", + "name": "lt", "nodeType": "YulIdentifier", - "src": "2279:2:2" + "src": "2155:2:6" }, "nodeType": "YulFunctionCall", - "src": "2279:30:2" + "src": "2155:13:6" }, - "nodeType": "YulIf", - "src": "2276:56:2" + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2169:19:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2171:15:6", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2180:1:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2183:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2176:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2176:10:6" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2171:1:6" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2151:3:6", + "statements": [] + }, + "src": "2147:113:6" }, { - "nodeType": "YulAssignment", - "src": "2342:37:2", - "value": { + "body": { + "nodeType": "YulBlock", + "src": "2294:76:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2344:3:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2349:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2340:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2340:16:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2358:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2333:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2333:27:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2333:27:6" + } + ] + }, + "condition": { "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2275:1:6" + }, { "name": "length", "nodeType": "YulIdentifier", - "src": "2372:6:2" + "src": "2278:6:6" } ], "functionName": { - "name": "round_up_to_mul_of_32", + "name": "gt", "nodeType": "YulIdentifier", - "src": "2350:21:2" + "src": "2272:2:6" }, "nodeType": "YulFunctionCall", - "src": "2350:29:2" + "src": "2272:13:6" }, - "variableNames": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "2342:4:2" - } - ] - }, + "nodeType": "YulIf", + "src": "2269:101:6" + } + ] + }, + "name": "copy_memory_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "2100:3:6", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2105:3:6", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2110:6:6", + "type": "" + } + ], + "src": "2069:307:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2430:54:6", + "statements": [ { "nodeType": "YulAssignment", - "src": "2416:23:2", + "src": "2440:38:6", "value": { "arguments": [ { - "name": "size", - "nodeType": "YulIdentifier", - "src": "2428:4:2" + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2458:5:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2465:2:6", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2454:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2454:14:6" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2434:4:2", - "type": "", - "value": "0x20" + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2474:2:6", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "2470:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2470:7:6" } ], "functionName": { - "name": "add", + "name": "and", "nodeType": "YulIdentifier", - "src": "2424:3:2" + "src": "2450:3:6" }, "nodeType": "YulFunctionCall", - "src": "2424:15:2" + "src": "2450:28:6" }, "variableNames": [ { - "name": "size", + "name": "result", "nodeType": "YulIdentifier", - "src": "2416:4:2" + "src": "2440:6:6" } ] } ] }, - "name": "array_allocation_size_t_string_memory_ptr", + "name": "round_up_to_mul_of_32", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "length", + "name": "value", "nodeType": "YulTypedName", - "src": "2189:6:2", + "src": "2413:5:6", "type": "" } ], "returnVariables": [ { - "name": "size", + "name": "result", "nodeType": "YulTypedName", - "src": "2200:4:2", + "src": "2423:6:6", "type": "" } ], - "src": "2138:308:2" + "src": "2382:102:6" }, { "body": { "nodeType": "YulBlock", - "src": "2503:103:2", + "src": "2572:262:6", "statements": [ { - "expression": { + "nodeType": "YulVariableDeclaration", + "src": "2582:53:6", + "value": { "arguments": [ { - "name": "dst", + "name": "value", "nodeType": "YulIdentifier", - "src": "2526:3:2" - }, + "src": "2629:5:6" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2596:32:6" + }, + "nodeType": "YulFunctionCall", + "src": "2596:39:6" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2586:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2644:68:6", + "value": { + "arguments": [ { - "name": "src", + "name": "pos", "nodeType": "YulIdentifier", - "src": "2531:3:2" + "src": "2700:3:6" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "2536:6:2" + "src": "2705:6:6" } ], "functionName": { - "name": "calldatacopy", + "name": "array_storeLengthForEncoding_t_string_memory_ptr", "nodeType": "YulIdentifier", - "src": "2513:12:2" + "src": "2651:48:6" }, "nodeType": "YulFunctionCall", - "src": "2513:30:2" + "src": "2651:61:6" }, - "nodeType": "YulExpressionStatement", - "src": "2513:30:2" + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2644:3:6" + } + ] }, { "expression": { @@ -2135,1272 +2367,1151 @@ { "arguments": [ { - "name": "dst", + "name": "value", "nodeType": "YulIdentifier", - "src": "2584:3:2" + "src": "2747:5:6" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2589:6:2" + "kind": "number", + "nodeType": "YulLiteral", + "src": "2754:4:6", + "type": "", + "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2580:3:2" + "src": "2743:3:6" }, "nodeType": "YulFunctionCall", - "src": "2580:16:2" + "src": "2743:16:6" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2598:1:2", - "type": "", - "value": "0" + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2761:3:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2766:6:6" } ], "functionName": { - "name": "mstore", + "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", - "src": "2573:6:2" + "src": "2721:21:6" }, "nodeType": "YulFunctionCall", - "src": "2573:27:2" + "src": "2721:52:6" }, "nodeType": "YulExpressionStatement", - "src": "2573:27:2" - } - ] - }, - "name": "copy_calldata_to_memory", + "src": "2721:52:6" + }, + { + "nodeType": "YulAssignment", + "src": "2782:46:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2793:3:6" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2820:6:6" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "2798:21:6" + }, + "nodeType": "YulFunctionCall", + "src": "2798:29:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2789:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2789:39:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2782:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "src", + "name": "value", "nodeType": "YulTypedName", - "src": "2485:3:2", + "src": "2553:5:6", "type": "" }, { - "name": "dst", + "name": "pos", "nodeType": "YulTypedName", - "src": "2490:3:2", + "src": "2560:3:6", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "length", + "name": "end", "nodeType": "YulTypedName", - "src": "2495:6:2", + "src": "2568:3:6", "type": "" } ], - "src": "2452:154:2" + "src": "2490:344:6" }, { "body": { "nodeType": "YulBlock", - "src": "2696:328:2", + "src": "2940:96:6", "statements": [ { "nodeType": "YulAssignment", - "src": "2706:75:2", + "src": "2950:80:6", "value": { "arguments": [ { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2773:6:2" - } - ], - "functionName": { - "name": "array_allocation_size_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "2731:41:2" - }, - "nodeType": "YulFunctionCall", - "src": "2731:49:2" + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3018:6:6" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3026:3:6" } ], "functionName": { - "name": "allocate_memory", + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", "nodeType": "YulIdentifier", - "src": "2715:15:2" + "src": "2964:53:6" }, "nodeType": "YulFunctionCall", - "src": "2715:66:2" + "src": "2964:66:6" }, "variableNames": [ { - "name": "array", + "name": "updatedPos", "nodeType": "YulIdentifier", - "src": "2706:5:2" + "src": "2950:10:6" } ] - }, + } + ] + }, + "name": "abi_encodeUpdatedPos_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2913:6:6", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2921:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "2929:10:6", + "type": "" + } + ], + "src": "2840:196:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3127:38:6", + "statements": [ { - "expression": { + "nodeType": "YulAssignment", + "src": "3137:22:6", + "value": { "arguments": [ { - "name": "array", + "name": "ptr", "nodeType": "YulIdentifier", - "src": "2797:5:2" + "src": "3149:3:6" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2804:6:2" + "kind": "number", + "nodeType": "YulLiteral", + "src": "3154:4:6", + "type": "", + "value": "0x20" } ], "functionName": { - "name": "mstore", + "name": "add", "nodeType": "YulIdentifier", - "src": "2790:6:2" + "src": "3145:3:6" }, "nodeType": "YulFunctionCall", - "src": "2790:21:2" + "src": "3145:14:6" }, - "nodeType": "YulExpressionStatement", - "src": "2790:21:2" - }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "3137:4:6" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "3114:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "3122:4:6", + "type": "" + } + ], + "src": "3042:123:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3343:847:6", + "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "2820:27:2", + "src": "3353:78:6", "value": { "arguments": [ { - "name": "array", + "name": "value", "nodeType": "YulIdentifier", - "src": "2835:5:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2842:4:2", - "type": "", - "value": "0x20" + "src": "3425:5:6" } ], "functionName": { - "name": "add", + "name": "array_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr", "nodeType": "YulIdentifier", - "src": "2831:3:2" + "src": "3367:57:6" }, "nodeType": "YulFunctionCall", - "src": "2831:16:2" + "src": "3367:64:6" }, "variables": [ { - "name": "dst", + "name": "length", "nodeType": "YulTypedName", - "src": "2824:3:2", + "src": "3357:6:6", "type": "" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "2885:83:2", - "statements": [ + "nodeType": "YulAssignment", + "src": "3440:103:6", + "value": { + "arguments": [ { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nodeType": "YulIdentifier", - "src": "2887:77:2" - }, - "nodeType": "YulFunctionCall", - "src": "2887:79:2" - }, - "nodeType": "YulExpressionStatement", - "src": "2887:79:2" + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3531:3:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3536:6:6" } - ] + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "3447:83:6" + }, + "nodeType": "YulFunctionCall", + "src": "3447:96:6" }, - "condition": { + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3440:3:6" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3552:20:6", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3569:3:6" + }, + "variables": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3556:9:6", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3581:39:6", + "value": { "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3597:3:6" + }, { "arguments": [ { - "name": "src", + "name": "length", "nodeType": "YulIdentifier", - "src": "2866:3:2" + "src": "3606:6:6" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2871:6:2" + "kind": "number", + "nodeType": "YulLiteral", + "src": "3614:4:6", + "type": "", + "value": "0x20" } ], "functionName": { - "name": "add", + "name": "mul", "nodeType": "YulIdentifier", - "src": "2862:3:2" + "src": "3602:3:6" }, "nodeType": "YulFunctionCall", - "src": "2862:16:2" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "2880:3:2" + "src": "3602:17:6" } ], "functionName": { - "name": "gt", + "name": "add", "nodeType": "YulIdentifier", - "src": "2859:2:2" + "src": "3593:3:6" }, "nodeType": "YulFunctionCall", - "src": "2859:25:2" + "src": "3593:27:6" }, - "nodeType": "YulIf", - "src": "2856:112:2" + "variables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3585:4:6", + "type": "" + } + ] }, { - "expression": { + "nodeType": "YulVariableDeclaration", + "src": "3629:81:6", + "value": { "arguments": [ { - "name": "src", - "nodeType": "YulIdentifier", - "src": "3001:3:2" - }, - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "3006:3:2" - }, - { - "name": "length", + "name": "value", "nodeType": "YulIdentifier", - "src": "3011:6:2" + "src": "3704:5:6" } ], "functionName": { - "name": "copy_calldata_to_memory", + "name": "array_dataslot_t_array$_t_string_memory_ptr_$dyn_memory_ptr", "nodeType": "YulIdentifier", - "src": "2977:23:2" + "src": "3644:59:6" }, "nodeType": "YulFunctionCall", - "src": "2977:41:2" + "src": "3644:66:6" }, - "nodeType": "YulExpressionStatement", - "src": "2977:41:2" - } - ] - }, - "name": "abi_decode_available_length_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "2669:3:2", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "2674:6:2", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "2682:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "2690:5:2", - "type": "" - } - ], - "src": "2612:412:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3106:278:2", - "statements": [ + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "3633:7:6", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3719:21:6", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "3733:7:6" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "3723:6:6", + "type": "" + } + ] + }, { "body": { "nodeType": "YulBlock", - "src": "3155:83:2", + "src": "3809:336:6", "statements": [ { "expression": { - "arguments": [], + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3830:3:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3839:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3845:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3835:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3835:20:6" + } + ], "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "3157:77:2" + "src": "3823:6:6" }, "nodeType": "YulFunctionCall", - "src": "3157:79:2" + "src": "3823:33:6" }, "nodeType": "YulExpressionStatement", - "src": "3157:79:2" - } - ] - }, - "condition": { - "arguments": [ + "src": "3823:33:6" + }, { - "arguments": [ + "nodeType": "YulVariableDeclaration", + "src": "3869:34:6", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "3896:6:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3890:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "3890:13:6" + }, + "variables": [ { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "3134:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3142:4:2", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "3873:13:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3916:92:6", + "value": { + "arguments": [ + { + "name": "elementValue0", "nodeType": "YulIdentifier", - "src": "3130:3:2" + "src": "3988:13:6" }, - "nodeType": "YulFunctionCall", - "src": "3130:17:2" + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4003:4:6" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3924:63:6" }, + "nodeType": "YulFunctionCall", + "src": "3924:84:6" + }, + "variableNames": [ { - "name": "end", + "name": "tail", "nodeType": "YulIdentifier", - "src": "3149:3:2" + "src": "3916:4:6" } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "3126:3:2" + ] + }, + { + "nodeType": "YulAssignment", + "src": "4021:80:6", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "4094:6:6" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "4031:62:6" + }, + "nodeType": "YulFunctionCall", + "src": "4031:70:6" }, - "nodeType": "YulFunctionCall", - "src": "3126:27:2" + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "4021:6:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4114:21:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4125:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4130:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4121:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4121:14:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4114:3:6" + } + ] } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "3119:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "3119:35:2" + ] }, - "nodeType": "YulIf", - "src": "3116:122:2" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "3247:34:2", - "value": { + "condition": { "arguments": [ { - "name": "offset", + "name": "i", + "nodeType": "YulIdentifier", + "src": "3771:1:6" + }, + { + "name": "length", "nodeType": "YulIdentifier", - "src": "3274:6:2" + "src": "3774:6:6" } ], "functionName": { - "name": "calldataload", + "name": "lt", "nodeType": "YulIdentifier", - "src": "3261:12:2" + "src": "3768:2:6" }, "nodeType": "YulFunctionCall", - "src": "3261:20:2" + "src": "3768:13:6" }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "3251:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "3290:88:2", - "value": { - "arguments": [ + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "3782:18:6", + "statements": [ { - "arguments": [ - { - "name": "offset", + "nodeType": "YulAssignment", + "src": "3784:14:6", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "3793:1:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3796:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", "nodeType": "YulIdentifier", - "src": "3351:6:2" + "src": "3789:3:6" }, + "nodeType": "YulFunctionCall", + "src": "3789:9:6" + }, + "variableNames": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3359:4:2", - "type": "", - "value": "0x20" + "name": "i", + "nodeType": "YulIdentifier", + "src": "3784:1:6" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3347:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "3347:17:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "3366:6:2" - }, + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "3753:14:6", + "statements": [ { - "name": "end", - "nodeType": "YulIdentifier", - "src": "3374:3:2" + "nodeType": "YulVariableDeclaration", + "src": "3755:10:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3764:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "3759:1:6", + "type": "" + } + ] } - ], - "functionName": { - "name": "abi_decode_available_length_t_string_memory_ptr", + ] + }, + "src": "3749:396:6" + }, + { + "nodeType": "YulAssignment", + "src": "4154:11:6", + "value": { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4161:4:6" + }, + "variableNames": [ + { + "name": "pos", "nodeType": "YulIdentifier", - "src": "3299:47:2" - }, - "nodeType": "YulFunctionCall", - "src": "3299:79:2" + "src": "4154:3:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4174:10:6", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4181:3:6" }, "variableNames": [ { - "name": "array", + "name": "end", "nodeType": "YulIdentifier", - "src": "3290:5:2" + "src": "4174:3:6" } ] } ] }, - "name": "abi_decode_t_string_memory_ptr", + "name": "abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", + "name": "value", "nodeType": "YulTypedName", - "src": "3084:6:2", + "src": "3322:5:6", "type": "" }, { - "name": "end", + "name": "pos", "nodeType": "YulTypedName", - "src": "3092:3:2", + "src": "3329:3:6", "type": "" } ], "returnVariables": [ { - "name": "array", + "name": "end", "nodeType": "YulTypedName", - "src": "3100:5:2", + "src": "3338:3:6", "type": "" } ], - "src": "3044:340:2" + "src": "3199:991:6" }, { "body": { "nodeType": "YulBlock", - "src": "3564:1457:2", + "src": "4560:651:6", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "3611:83:2", - "statements": [ + "nodeType": "YulAssignment", + "src": "4570:26:6", + "value": { + "arguments": [ { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nodeType": "YulIdentifier", - "src": "3613:77:2" - }, - "nodeType": "YulFunctionCall", - "src": "3613:79:2" - }, - "nodeType": "YulExpressionStatement", - "src": "3613:79:2" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4582:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4593:2:6", + "type": "", + "value": "96" } - ] + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4578:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4578:18:6" }, - "condition": { + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4570:4:6" + } + ] + }, + { + "expression": { "arguments": [ { "arguments": [ { - "name": "dataEnd", + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4617:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4628:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4613:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4613:17:6" + }, + { + "arguments": [ + { + "name": "tail", "nodeType": "YulIdentifier", - "src": "3585:7:2" + "src": "4636:4:6" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3594:9:2" + "src": "4642:9:6" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "3581:3:2" + "src": "4632:3:6" }, "nodeType": "YulFunctionCall", - "src": "3581:23:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3606:3:2", - "type": "", - "value": "160" + "src": "4632:20:6" } ], "functionName": { - "name": "slt", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "3577:3:2" + "src": "4606:6:6" }, "nodeType": "YulFunctionCall", - "src": "3577:33:2" + "src": "4606:47:6" }, - "nodeType": "YulIf", - "src": "3574:120:2" + "nodeType": "YulExpressionStatement", + "src": "4606:47:6" }, { - "nodeType": "YulBlock", - "src": "3704:287:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3719:45:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3750:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3761:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3746:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "3746:17:2" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "3733:12:2" - }, - "nodeType": "YulFunctionCall", - "src": "3733:31:2" + "nodeType": "YulAssignment", + "src": "4662:136:6", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4784:6:6" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "3723:6:2", - "type": "" - } - ] + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4793:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4670:113:6" }, + "nodeType": "YulFunctionCall", + "src": "4670:128:6" + }, + "variableNames": [ { - "body": { - "nodeType": "YulBlock", - "src": "3811:83:2", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "3813:77:2" - }, - "nodeType": "YulFunctionCall", - "src": "3813:79:2" - }, - "nodeType": "YulExpressionStatement", - "src": "3813:79:2" - } - ] - }, - "condition": { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4662:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { "arguments": [ { - "name": "offset", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "3783:6:2" + "src": "4819:9:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3791:18:2", + "src": "4830:2:6", "type": "", - "value": "0xffffffffffffffff" + "value": "32" } ], "functionName": { - "name": "gt", + "name": "add", "nodeType": "YulIdentifier", - "src": "3780:2:2" + "src": "4815:3:6" }, "nodeType": "YulFunctionCall", - "src": "3780:30:2" + "src": "4815:18:6" }, - "nodeType": "YulIf", - "src": "3777:117:2" - }, - { - "nodeType": "YulAssignment", - "src": "3908:73:2", - "value": { + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3953:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "3964:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3949:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "3949:22:2" + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4839:4:6" }, { - "name": "dataEnd", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "3973:7:2" + "src": "4845:9:6" } ], "functionName": { - "name": "abi_decode_t_string_memory_ptr", + "name": "sub", "nodeType": "YulIdentifier", - "src": "3918:30:2" + "src": "4835:3:6" }, "nodeType": "YulFunctionCall", - "src": "3918:63:2" + "src": "4835:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4808:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4808:48:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4808:48:6" + }, + { + "nodeType": "YulAssignment", + "src": "4865:136:6", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4987:6:6" }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3908:6:2" - } - ] + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4996:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4873:113:6" + }, + "nodeType": "YulFunctionCall", + "src": "4873:128:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4865:4:6" } ] }, { - "nodeType": "YulBlock", - "src": "4001:288:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "4016:46:2", - "value": { + "expression": { + "arguments": [ + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4047:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4058:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4043:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4043:18:2" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5022:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5033:2:6", + "type": "", + "value": "64" } ], "functionName": { - "name": "calldataload", + "name": "add", "nodeType": "YulIdentifier", - "src": "4030:12:2" + "src": "5018:3:6" }, "nodeType": "YulFunctionCall", - "src": "4030:32:2" + "src": "5018:18:6" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "4020:6:2", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4109:83:2", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "4111:77:2" - }, - "nodeType": "YulFunctionCall", - "src": "4111:79:2" - }, - "nodeType": "YulExpressionStatement", - "src": "4111:79:2" - } - ] - }, - "condition": { + { "arguments": [ { - "name": "offset", + "name": "tail", "nodeType": "YulIdentifier", - "src": "4081:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4089:18:2", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "4078:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "4078:30:2" - }, - "nodeType": "YulIf", - "src": "4075:117:2" - }, - { - "nodeType": "YulAssignment", - "src": "4206:73:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4251:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4262:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4247:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4247:22:2" + "src": "5042:4:6" }, { - "name": "dataEnd", + "name": "headStart", "nodeType": "YulIdentifier", - "src": "4271:7:2" + "src": "5048:9:6" } ], "functionName": { - "name": "abi_decode_t_string_memory_ptr", + "name": "sub", "nodeType": "YulIdentifier", - "src": "4216:30:2" + "src": "5038:3:6" }, "nodeType": "YulFunctionCall", - "src": "4216:63:2" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "4206:6:2" - } - ] - } - ] + "src": "5038:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5011:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5011:48:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5011:48:6" }, { - "nodeType": "YulBlock", - "src": "4299:288:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "4314:46:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4345:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4356:2:2", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4341:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4341:18:2" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "4328:12:2" - }, - "nodeType": "YulFunctionCall", - "src": "4328:32:2" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "4318:6:2", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4407:83:2", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "4409:77:2" - }, - "nodeType": "YulFunctionCall", - "src": "4409:79:2" - }, - "nodeType": "YulExpressionStatement", - "src": "4409:79:2" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4379:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4387:18:2", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "4376:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "4376:30:2" + "nodeType": "YulAssignment", + "src": "5068:136:6", + "value": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "5190:6:6" }, - "nodeType": "YulIf", - "src": "4373:117:2" + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5199:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5076:113:6" }, + "nodeType": "YulFunctionCall", + "src": "5076:128:6" + }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "4504:73:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4549:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4560:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4545:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4545:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4569:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "4514:30:2" - }, - "nodeType": "YulFunctionCall", - "src": "4514:63:2" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "4504:6:2" - } - ] + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5068:4:6" } ] - }, + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr__to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4516:9:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "4528:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "4536:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4544:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4555:4:6", + "type": "" + } + ], + "src": "4196:1015:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5291:40:6", + "statements": [ { - "nodeType": "YulBlock", - "src": "4597:288:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "4612:46:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4643:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4654:2:2", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4639:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4639:18:2" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "4626:12:2" - }, - "nodeType": "YulFunctionCall", - "src": "4626:32:2" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "4616:6:2", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4705:83:2", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nodeType": "YulIdentifier", - "src": "4707:77:2" - }, - "nodeType": "YulFunctionCall", - "src": "4707:79:2" - }, - "nodeType": "YulExpressionStatement", - "src": "4707:79:2" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4677:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4685:18:2", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "4674:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "4674:30:2" - }, - "nodeType": "YulIf", - "src": "4671:117:2" - }, - { - "nodeType": "YulAssignment", - "src": "4802:73:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4847:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4858:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4843:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4843:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4867:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "4812:30:2" - }, - "nodeType": "YulFunctionCall", - "src": "4812:63:2" - }, - "variableNames": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "4802:6:2" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "4895:119:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "4910:17:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4924:3:2", - "type": "", - "value": "128" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "4914:6:2", - "type": "" - } - ] + "nodeType": "YulAssignment", + "src": "5302:22:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5318:5:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5312:5:6" }, + "nodeType": "YulFunctionCall", + "src": "5312:12:6" + }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "4941:63:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4976:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4987:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4972:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4972:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4996:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "4951:20:2" - }, - "nodeType": "YulFunctionCall", - "src": "4951:53:2" - }, - "variableNames": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "4941:6:2" - } - ] + "name": "length", + "nodeType": "YulIdentifier", + "src": "5302:6:6" } ] } ] }, - "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_address", + "name": "array_length_t_array$_t_address_$dyn_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3502:9:2", - "type": "" - }, - { - "name": "dataEnd", + "name": "value", "nodeType": "YulTypedName", - "src": "3513:7:2", + "src": "5274:5:6", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3525:6:2", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "3533:6:2", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "3541:6:2", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "3549:6:2", - "type": "" - }, - { - "name": "value4", + "name": "length", "nodeType": "YulTypedName", - "src": "3557:6:2", + "src": "5284:6:6", "type": "" } ], - "src": "3390:1631:2" + "src": "5217:114:6" }, { "body": { "nodeType": "YulBlock", - "src": "5092:53:2", + "src": "5448:73:6", "statements": [ { "expression": { @@ -3408,591 +3519,484 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "5109:3:2" + "src": "5465:3:6" }, { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5132:5:2" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "5114:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "5114:24:2" + "name": "length", + "nodeType": "YulIdentifier", + "src": "5470:6:6" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "5102:6:2" + "src": "5458:6:6" }, "nodeType": "YulFunctionCall", - "src": "5102:37:2" + "src": "5458:19:6" }, "nodeType": "YulExpressionStatement", - "src": "5102:37:2" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "5080:5:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "5087:3:2", - "type": "" - } - ], - "src": "5027:118:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5249:124:2", - "statements": [ + "src": "5458:19:6" + }, { "nodeType": "YulAssignment", - "src": "5259:26:2", + "src": "5486:29:6", "value": { "arguments": [ { - "name": "headStart", + "name": "pos", "nodeType": "YulIdentifier", - "src": "5271:9:2" + "src": "5505:3:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5282:2:2", + "src": "5510:4:6", "type": "", - "value": "32" + "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5267:3:2" + "src": "5501:3:6" }, "nodeType": "YulFunctionCall", - "src": "5267:18:2" + "src": "5501:14:6" }, "variableNames": [ { - "name": "tail", + "name": "updated_pos", "nodeType": "YulIdentifier", - "src": "5259:4:2" + "src": "5486:11:6" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5339:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5352:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5363:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5348:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "5348:17:2" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "5295:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "5295:71:2" - }, - "nodeType": "YulExpressionStatement", - "src": "5295:71:2" } ] }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "name": "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "pos", "nodeType": "YulTypedName", - "src": "5221:9:2", + "src": "5420:3:6", "type": "" }, { - "name": "value0", + "name": "length", "nodeType": "YulTypedName", - "src": "5233:6:2", + "src": "5425:6:6", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "updated_pos", "nodeType": "YulTypedName", - "src": "5244:4:2", + "src": "5436:11:6", "type": "" } ], - "src": "5151:222:2" + "src": "5337:184:6" }, { "body": { "nodeType": "YulBlock", - "src": "5505:206:2", + "src": "5599:60:6", "statements": [ { "nodeType": "YulAssignment", - "src": "5515:26:2", + "src": "5609:11:6", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5617:3:6" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5609:4:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5630:22:6", "value": { "arguments": [ { - "name": "headStart", + "name": "ptr", "nodeType": "YulIdentifier", - "src": "5527:9:2" + "src": "5642:3:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5538:2:2", + "src": "5647:4:6", "type": "", - "value": "64" + "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5523:3:2" + "src": "5638:3:6" }, "nodeType": "YulFunctionCall", - "src": "5523:18:2" + "src": "5638:14:6" }, "variableNames": [ { - "name": "tail", + "name": "data", "nodeType": "YulIdentifier", - "src": "5515:4:2" + "src": "5630:4:6" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5595:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5608:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5619:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5604:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "5604:17:2" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "5551:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "5551:71:2" - }, - "nodeType": "YulExpressionStatement", - "src": "5551:71:2" - }, + } + ] + }, + "name": "array_dataslot_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "5586:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5594:4:6", + "type": "" + } + ], + "src": "5527:132:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5720:53:6", + "statements": [ { "expression": { "arguments": [ { - "name": "value1", + "name": "pos", "nodeType": "YulIdentifier", - "src": "5676:6:2" + "src": "5737:3:6" }, { "arguments": [ { - "name": "headStart", + "name": "value", "nodeType": "YulIdentifier", - "src": "5689:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5700:2:2", - "type": "", - "value": "32" + "src": "5760:5:6" } ], "functionName": { - "name": "add", + "name": "cleanup_t_address", "nodeType": "YulIdentifier", - "src": "5685:3:2" + "src": "5742:17:6" }, "nodeType": "YulFunctionCall", - "src": "5685:18:2" + "src": "5742:24:6" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "5632:43:2" + "src": "5730:6:6" }, "nodeType": "YulFunctionCall", - "src": "5632:72:2" + "src": "5730:37:6" }, "nodeType": "YulExpressionStatement", - "src": "5632:72:2" + "src": "5730:37:6" } ] }, - "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "name": "abi_encode_t_address_to_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5469:9:2", - "type": "" - }, - { - "name": "value1", + "name": "value", "nodeType": "YulTypedName", - "src": "5481:6:2", + "src": "5708:5:6", "type": "" }, { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5489:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", + "name": "pos", "nodeType": "YulTypedName", - "src": "5500:4:2", + "src": "5715:3:6", "type": "" } ], - "src": "5379:332:2" + "src": "5665:108:6" }, { "body": { "nodeType": "YulBlock", - "src": "5745:152:2", + "src": "5859:99:6", "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5762:1:2", - "type": "", - "value": "0" + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5903:6:6" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5765:77:2", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5911:3:6" } ], "functionName": { - "name": "mstore", + "name": "abi_encode_t_address_to_t_address", "nodeType": "YulIdentifier", - "src": "5755:6:2" + "src": "5869:33:6" }, "nodeType": "YulFunctionCall", - "src": "5755:88:2" + "src": "5869:46:6" }, "nodeType": "YulExpressionStatement", - "src": "5755:88:2" + "src": "5869:46:6" }, { - "expression": { + "nodeType": "YulAssignment", + "src": "5924:28:6", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5859:1:2", - "type": "", - "value": "4" + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5942:3:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5862:4:2", + "src": "5947:4:6", "type": "", - "value": "0x32" + "value": "0x20" } ], "functionName": { - "name": "mstore", + "name": "add", "nodeType": "YulIdentifier", - "src": "5852:6:2" + "src": "5938:3:6" }, "nodeType": "YulFunctionCall", - "src": "5852:15:2" + "src": "5938:14:6" }, - "nodeType": "YulExpressionStatement", - "src": "5852:15:2" - }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "5924:10:6" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_address_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5832:6:6", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5840:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "5848:10:6", + "type": "" + } + ], + "src": "5779:179:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6039:38:6", + "statements": [ { - "expression": { + "nodeType": "YulAssignment", + "src": "6049:22:6", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5883:1:2", - "type": "", - "value": "0" + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "6061:3:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5886:4:2", + "src": "6066:4:6", "type": "", - "value": "0x24" + "value": "0x20" } ], "functionName": { - "name": "revert", + "name": "add", "nodeType": "YulIdentifier", - "src": "5876:6:2" + "src": "6057:3:6" }, "nodeType": "YulFunctionCall", - "src": "5876:15:2" + "src": "6057:14:6" }, - "nodeType": "YulExpressionStatement", - "src": "5876:15:2" + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "6049:4:6" + } + ] } ] }, - "name": "panic_error_0x32", + "name": "array_nextElement_t_array$_t_address_$dyn_memory_ptr", "nodeType": "YulFunctionDefinition", - "src": "5717:180:2" + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "6026:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "6034:4:6", + "type": "" + } + ], + "src": "5964:113:6" }, { "body": { "nodeType": "YulBlock", - "src": "5931:152:2", + "src": "6237:608:6", "statements": [ { - "expression": { + "nodeType": "YulVariableDeclaration", + "src": "6247:68:6", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5948:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5951:77:2", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "name": "value", + "nodeType": "YulIdentifier", + "src": "6309:5:6" } ], "functionName": { - "name": "mstore", + "name": "array_length_t_array$_t_address_$dyn_memory_ptr", "nodeType": "YulIdentifier", - "src": "5941:6:2" + "src": "6261:47:6" }, "nodeType": "YulFunctionCall", - "src": "5941:88:2" + "src": "6261:54:6" }, - "nodeType": "YulExpressionStatement", - "src": "5941:88:2" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6045:1:2", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6048:4:2", - "type": "", - "value": "0x22" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6038:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "6038:15:2" - }, - "nodeType": "YulExpressionStatement", - "src": "6038:15:2" + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6251:6:6", + "type": "" + } + ] }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6069:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6072:4:2", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "6062:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "6062:15:2" - }, - "nodeType": "YulExpressionStatement", - "src": "6062:15:2" - } - ] - }, - "name": "panic_error_0x22", - "nodeType": "YulFunctionDefinition", - "src": "5903:180:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6140:269:2", - "statements": [ { "nodeType": "YulAssignment", - "src": "6150:22:2", + "src": "6324:93:6", "value": { "arguments": [ { - "name": "data", + "name": "pos", "nodeType": "YulIdentifier", - "src": "6164:4:2" + "src": "6405:3:6" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6170:1:2", - "type": "", - "value": "2" + "name": "length", + "nodeType": "YulIdentifier", + "src": "6410:6:6" } ], "functionName": { - "name": "div", + "name": "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "6160:3:2" + "src": "6331:73:6" }, "nodeType": "YulFunctionCall", - "src": "6160:12:2" + "src": "6331:86:6" }, "variableNames": [ { - "name": "length", + "name": "pos", "nodeType": "YulIdentifier", - "src": "6150:6:2" + "src": "6324:3:6" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "6181:38:2", + "src": "6426:71:6", "value": { "arguments": [ { - "name": "data", + "name": "value", "nodeType": "YulIdentifier", - "src": "6211:4:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6217:1:2", - "type": "", - "value": "1" + "src": "6491:5:6" } ], "functionName": { - "name": "and", + "name": "array_dataslot_t_array$_t_address_$dyn_memory_ptr", "nodeType": "YulIdentifier", - "src": "6207:3:2" + "src": "6441:49:6" }, "nodeType": "YulFunctionCall", - "src": "6207:12:2" + "src": "6441:56:6" }, "variables": [ { - "name": "outOfPlaceEncoding", + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "6430:7:6", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6506:21:6", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "6520:7:6" + }, + "variables": [ + { + "name": "srcPtr", "nodeType": "YulTypedName", - "src": "6185:18:2", + "src": "6510:6:6", "type": "" } ] @@ -4000,39 +4004,92 @@ { "body": { "nodeType": "YulBlock", - "src": "6258:51:2", + "src": "6596:224:6", "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6610:34:6", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6637:6:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "6631:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "6631:13:6" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "6614:13:6", + "type": "" + } + ] + }, { "nodeType": "YulAssignment", - "src": "6272:27:2", + "src": "6657:70:6", "value": { "arguments": [ { - "name": "length", + "name": "elementValue0", "nodeType": "YulIdentifier", - "src": "6286:6:2" + "src": "6708:13:6" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6294:4:2", - "type": "", - "value": "0x7f" + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6723:3:6" } ], "functionName": { - "name": "and", + "name": "abi_encodeUpdatedPos_t_address_to_t_address", "nodeType": "YulIdentifier", - "src": "6282:3:2" + "src": "6664:43:6" }, "nodeType": "YulFunctionCall", - "src": "6282:17:2" + "src": "6664:63:6" }, "variableNames": [ { - "name": "length", + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6657:3:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6740:70:6", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6803:6:6" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "6750:52:6" + }, + "nodeType": "YulFunctionCall", + "src": "6750:60:6" + }, + "variableNames": [ + { + "name": "srcPtr", "nodeType": "YulIdentifier", - "src": "6272:6:2" + "src": "6740:6:6" } ] } @@ -4041,8562 +4098,11049 @@ "condition": { "arguments": [ { - "name": "outOfPlaceEncoding", + "name": "i", + "nodeType": "YulIdentifier", + "src": "6558:1:6" + }, + { + "name": "length", "nodeType": "YulIdentifier", - "src": "6238:18:2" + "src": "6561:6:6" } ], "functionName": { - "name": "iszero", + "name": "lt", "nodeType": "YulIdentifier", - "src": "6231:6:2" + "src": "6555:2:6" }, "nodeType": "YulFunctionCall", - "src": "6231:26:2" + "src": "6555:13:6" }, - "nodeType": "YulIf", - "src": "6228:81:2" - }, - { - "body": { + "nodeType": "YulForLoop", + "post": { "nodeType": "YulBlock", - "src": "6361:42:2", + "src": "6569:18:6", "statements": [ { - "expression": { - "arguments": [], + "nodeType": "YulAssignment", + "src": "6571:14:6", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "6580:1:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6583:1:6", + "type": "", + "value": "1" + } + ], "functionName": { - "name": "panic_error_0x22", + "name": "add", "nodeType": "YulIdentifier", - "src": "6375:16:2" + "src": "6576:3:6" }, "nodeType": "YulFunctionCall", - "src": "6375:18:2" + "src": "6576:9:6" }, - "nodeType": "YulExpressionStatement", - "src": "6375:18:2" + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "6571:1:6" + } + ] } ] }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "6325:18:2" - }, + "pre": { + "nodeType": "YulBlock", + "src": "6540:14:6", + "statements": [ { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6348:6:2" - }, + "nodeType": "YulVariableDeclaration", + "src": "6542:10:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6551:1:6", + "type": "", + "value": "0" + }, + "variables": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6356:2:2", - "type": "", - "value": "32" + "name": "i", + "nodeType": "YulTypedName", + "src": "6546:1:6", + "type": "" } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "6345:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "6345:14:2" + ] } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "6322:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "6322:38:2" + ] }, - "nodeType": "YulIf", - "src": "6319:84:2" + "src": "6536:284:6" + }, + { + "nodeType": "YulAssignment", + "src": "6829:10:6", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6836:3:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6829:3:6" + } + ] } ] }, - "name": "extract_byte_array_length", + "name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "data", + "name": "value", + "nodeType": "YulTypedName", + "src": "6216:5:6", + "type": "" + }, + { + "name": "pos", "nodeType": "YulTypedName", - "src": "6124:4:2", + "src": "6223:3:6", "type": "" } ], "returnVariables": [ { - "name": "length", + "name": "end", "nodeType": "YulTypedName", - "src": "6133:6:2", + "src": "6232:3:6", "type": "" } ], - "src": "6089:320:2" + "src": "6113:732:6" }, { "body": { "nodeType": "YulBlock", - "src": "6443:152:2", + "src": "7175:611:6", "statements": [ { - "expression": { + "nodeType": "YulAssignment", + "src": "7185:26:6", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6460:1:2", - "type": "", - "value": "0" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7197:9:6" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6463:77:2", + "src": "7208:2:6", "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "value": "96" } ], "functionName": { - "name": "mstore", + "name": "add", "nodeType": "YulIdentifier", - "src": "6453:6:2" + "src": "7193:3:6" }, "nodeType": "YulFunctionCall", - "src": "6453:88:2" + "src": "7193:18:6" }, - "nodeType": "YulExpressionStatement", - "src": "6453:88:2" + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7185:4:6" + } + ] }, { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6557:1:2", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6560:4:2", - "type": "", - "value": "0x11" - } - ], - "functionName": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7232:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7243:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7228:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7228:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7251:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7257:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7247:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7247:20:6" + } + ], + "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6550:6:2" + "src": "7221:6:6" }, "nodeType": "YulFunctionCall", - "src": "6550:15:2" + "src": "7221:47:6" }, "nodeType": "YulExpressionStatement", - "src": "6550:15:2" + "src": "7221:47:6" }, { - "expression": { + "nodeType": "YulAssignment", + "src": "7277:136:6", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6581:1:2", - "type": "", - "value": "0" + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7399:6:6" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6584:4:2", - "type": "", - "value": "0x24" + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7408:4:6" } ], "functionName": { - "name": "revert", + "name": "abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "6574:6:2" + "src": "7285:113:6" }, "nodeType": "YulFunctionCall", - "src": "6574:15:2" - }, - "nodeType": "YulExpressionStatement", - "src": "6574:15:2" - } - ] - }, - "name": "panic_error_0x11", - "nodeType": "YulFunctionDefinition", - "src": "6415:180:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6646:32:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6656:16:2", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6667:5:2" + "src": "7285:128:6" }, "variableNames": [ { - "name": "cleaned", + "name": "tail", "nodeType": "YulIdentifier", - "src": "6656:7:2" + "src": "7277:4:6" } ] - } - ] - }, - "name": "cleanup_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "6628:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "6638:7:2", - "type": "" - } - ], - "src": "6601:77:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6727:190:2", - "statements": [ + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7434:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7445:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7430:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7430:18:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7454:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7460:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7450:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7450:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7423:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "7423:48:6" + }, + "nodeType": "YulExpressionStatement", + "src": "7423:48:6" + }, { "nodeType": "YulAssignment", - "src": "6737:33:2", + "src": "7480:116:6", "value": { "arguments": [ { - "name": "value", + "name": "value1", "nodeType": "YulIdentifier", - "src": "6764:5:2" + "src": "7582:6:6" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7591:4:6" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "6746:17:2" + "src": "7488:93:6" }, "nodeType": "YulFunctionCall", - "src": "6746:24:2" + "src": "7488:108:6" }, "variableNames": [ { - "name": "value", + "name": "tail", "nodeType": "YulIdentifier", - "src": "6737:5:2" + "src": "7480:4:6" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "6860:22:2", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", + "arguments": [ + { + "name": "headStart", "nodeType": "YulIdentifier", - "src": "6862:16:2" + "src": "7617:9:6" }, - "nodeType": "YulFunctionCall", - "src": "6862:18:2" + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7628:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7613:3:6" }, - "nodeType": "YulExpressionStatement", - "src": "6862:18:2" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6785:5:2" + "nodeType": "YulFunctionCall", + "src": "7613:18:6" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6792:66:2", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7637:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7643:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7633:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7633:20:6" } ], "functionName": { - "name": "eq", + "name": "mstore", "nodeType": "YulIdentifier", - "src": "6782:2:2" + "src": "7606:6:6" }, "nodeType": "YulFunctionCall", - "src": "6782:77:2" + "src": "7606:48:6" }, - "nodeType": "YulIf", - "src": "6779:103:2" + "nodeType": "YulExpressionStatement", + "src": "7606:48:6" }, { "nodeType": "YulAssignment", - "src": "6891:20:2", + "src": "7663:116:6", "value": { "arguments": [ { - "name": "value", + "name": "value2", "nodeType": "YulIdentifier", - "src": "6902:5:2" + "src": "7765:6:6" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6909:1:2", - "type": "", - "value": "1" + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7774:4:6" } ], "functionName": { - "name": "add", + "name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "6898:3:2" + "src": "7671:93:6" }, "nodeType": "YulFunctionCall", - "src": "6898:13:2" + "src": "7671:108:6" }, "variableNames": [ { - "name": "ret", + "name": "tail", "nodeType": "YulIdentifier", - "src": "6891:3:2" + "src": "7663:4:6" } ] } ] }, - "name": "increment_t_uint256", + "name": "abi_encode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7131:9:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "7143:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "7151:6:6", + "type": "" + }, + { + "name": "value0", "nodeType": "YulTypedName", - "src": "6713:5:2", + "src": "7159:6:6", "type": "" } ], "returnVariables": [ { - "name": "ret", + "name": "tail", "nodeType": "YulTypedName", - "src": "6723:3:2", + "src": "7170:4:6", "type": "" } ], - "src": "6684:233:2" - } - ] - }, - "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n}\n", - "id": 2, - "language": "Yul", - "name": "#utility.yul" - } - ], - "sourceMap": "68:5290:1:-:0;;;341:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;399:6;391:5;;:14;;;;;;;;;;;;;;;;;;419:6;411:5;;:14;;;;;;;;;;;;;;;;;;341:89;;68:5290;;88:117:2;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:507::-;924:6;932;981:2;969:9;960:7;956:23;952:32;949:119;;;987:79;;:::i;:::-;949:119;1107:1;1132:64;1188:7;1179:6;1168:9;1164:22;1132:64;:::i;:::-;1122:74;;1078:128;1245:2;1271:64;1327:7;1318:6;1307:9;1303:22;1271:64;:::i;:::-;1261:74;;1216:129;845:507;;;;;:::o;68:5290:1:-;;;;;;;", - "deployedSourceMap": "68:5290:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1196:99;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1299:104;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;538:326;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;867:325;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;119:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1407:96;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1196:99;490:5;;;;;;;;;;476:19;;:10;:19;;;475:46;;;;515:5;;;;;;;;;;;501:19;;:10;:19;;;475:46;467:55;;;;;;1267:23:::1;1278:5;1285:4;1267:10;:23::i;:::-;;;;;;;1196:99:::0;:::o;1299:104::-;490:5;;;;;;;;;;476:19;;:10;:19;;;475:46;;;;515:5;;;;;;;;;;;501:19;;:10;:19;;;475:46;467:55;;;;;;1374:24:::1;1385:5;1392;1374:10;:24::i;:::-;;;;;;;1299:104:::0;:::o;538:326::-;490:5;;;;;;;;;;476:19;;:10;:19;;;475:46;;;;515:5;;;;;;;;;;;501:19;;:10;:19;;;475:46;467:55;;;;;;756:103:::1;765:9;776;787:22;811:24;837:10;849:9;756:8;:103::i;:::-;538:326:::0;;;;;:::o;867:325::-;490:5;;;;;;;;;;476:19;;:10;:19;;;475:46;;;;515:5;;;;;;;;;;;501:19;;:10;:19;;;475:46;467:55;;;;;;1086:101:::1;1095:9;1106;1117:22;1141:24;1167:7;1176:10;1086:8;:101::i;:::-;867:325:::0;;;;;:::o;119:20::-;;;;;;;;;;;;;:::o;95:::-;;;;;;;;;;;;:::o;1407:96::-;1454:7;1463;1485:5;;;;;;;;;;1492;;;;;;;;;;;1477:21;;;;1407:96;;:::o;2019:707::-;2109:15;2130;2151;2172;2193:16;2215;2286:24;2318;2350:37;2396:28;2408:5;2415:8;2396:11;:28::i;:::-;2278:146;;;;;;2439:39;2486:23;2517:25;2551:28;2563:5;2570:8;2551:11;:28::i;:::-;2431:148;;;;;;2601:8;2617;2633:21;2662:23;2693:6;2707:8;2586:135;;;;;;;;;;;;;;;;;;2019:707;;;;;;;;:::o;1507:508::-;1731:19;1753:226;;;;;;;;1776:9;1753:226;;;;1803:9;1753:226;;;;1843:22;1753:226;;;;1898:24;1753:226;;;;1938:7;1753:226;;;;;;1963:9;1753:226;;;;;1731:248;;1985:11;2002:7;1985:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1725:290;1507:508;;;;;;:::o;2798:1088::-;2889:15;2910;2931;2958:14;2975:31;2990:5;2997:8;2975:14;:31::i;:::-;2958:48;;3013:24;3053:9;3040:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3013:50;;3069:24;3109:9;3096:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3069:50;;3125:37;3178:9;3165:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3125:63;;3195:6;3215;3211:586;3231:11;:18;;;;3227:1;:22;3211:586;;;3266:8;3263:528;;;3313:5;3288:30;;:11;3300:1;3288:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:21;;;;;;;;;;;;:30;;;3285:233;;;3345:11;3357:1;3345:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;3331:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:8;3340:1;3331:11;;;;;;;;:::i;:::-;;;;;;;:37;;;;3394:11;3406:1;3394:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;3380:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:8;3389:1;3380:11;;;;;;;;:::i;:::-;;;;;;;:37;;;;3456:11;3468:1;3456:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;3429:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;3451:1;3429:24;;;;;;;;:::i;:::-;;;;;;;:63;;;;3504:3;;;;;:::i;:::-;;;;3285:233;3263:528;;;3578:5;3551:32;;:11;3563:1;3551:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;;;;;;;;;;:32;;;3548:235;;;3610:11;3622:1;3610:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;3596:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:8;3605:1;3596:11;;;;;;;;:::i;:::-;;;;;;;:37;;;;3659:11;3671:1;3659:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;3645:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:8;3654:1;3645:11;;;;;;;;:::i;:::-;;;;;;;:37;;;;3721:11;3733:1;3721:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;3694:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;3716:1;3694:24;;;;;;;;:::i;:::-;;;;;;;:63;;;;3769:3;;;;;:::i;:::-;;;;3548:235;3263:528;3251:3;;;;;:::i;:::-;;;;3211:586;;;;3820:8;3837;3854:21;3805:76;;;;;;;;;;;2798:1088;;;;;:::o;3890:1089::-;3981:15;4002:16;4024;4051:14;4068:31;4083:5;4090:8;4068:14;:31::i;:::-;4051:48;;4106:39;4161:9;4148:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4106:65;;4177:23;4217:9;4203:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4177:50;;4233:25;4275:9;4261:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4233:52;;4292:6;4312;4308:586;4328:11;:18;;;;4324:1;:22;4308:586;;;4363:8;4360:528;;;4410:5;4385:30;;:11;4397:1;4385:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:21;;;;;;;;;;;;:30;;;4382:233;;;4457:11;4469:1;4457:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;4428:67;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;4452:1;4428:26;;;;;;;;:::i;:::-;;;;;;;:67;;;;4519:11;4531:1;4519:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:21;;;;;;;;;;;;4507:6;4514:1;4507:9;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;4566:11;4578:1;4566:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;;;;;;;;;;4552:8;4561:1;4552:11;;;;;;;;:::i;:::-;;;;;;;:37;;;;;;;;;;;4601:3;;;;;:::i;:::-;;;;4382:233;4360:528;;;4675:5;4648:32;;:11;4660:1;4648:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;;;;;;;;;;:32;;;4645:235;;;4722:11;4734:1;4722:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;4693:67;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;4717:1;4693:26;;;;;;;;:::i;:::-;;;;;;;:67;;;;4784:11;4796:1;4784:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:21;;;;;;;;;;;;4772:6;4779:1;4772:9;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;4831:11;4843:1;4831:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;;;;;;;;;;4817:8;4826:1;4817:11;;;;;;;;:::i;:::-;;;;;;;:37;;;;;;;;;;;4866:3;;;;;:::i;:::-;;;;4645:235;4360:528;4348:3;;;;;:::i;:::-;;;;4308:586;;;;4915:23;4946:6;4960:8;4900:74;;;;;;;;;;;3890:1089;;;;;:::o;4983:372::-;5058:4;5069:9;5081:1;5069:13;;5092:6;5088:246;5108:11;:18;;;;5104:1;:22;5088:246;;;5143:8;5140:188;;;5190:5;5165:30;;:11;5177:1;5165:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:21;;;;;;;;;;;;:30;;;5162:63;;;5208:6;;;;;:::i;:::-;;;;5162:63;5140:188;;;5285:5;5258:32;;:11;5270:1;5258:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;;;;;;;;;;:32;;;5255:65;;;5303:6;;;;;:::i;:::-;;;;5255:65;5140:188;5128:3;;;;;:::i;:::-;;;;5088:246;;;;5346:4;5339:11;;;4983:372;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:2:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:117::-;1285:1;1282;1275:12;1299:117;1408:1;1405;1398:12;1422:102;1463:6;1514:2;1510:7;1505:2;1498:5;1494:14;1490:28;1480:38;;1422:102;;;:::o;1530:180::-;1578:77;1575:1;1568:88;1675:4;1672:1;1665:15;1699:4;1696:1;1689:15;1716:281;1799:27;1821:4;1799:27;:::i;:::-;1791:6;1787:40;1929:6;1917:10;1914:22;1893:18;1881:10;1878:34;1875:62;1872:88;;;1940:18;;:::i;:::-;1872:88;1980:10;1976:2;1969:22;1759:238;1716:281;;:::o;2003:129::-;2037:6;2064:20;;:::i;:::-;2054:30;;2093:33;2121:4;2113:6;2093:33;:::i;:::-;2003:129;;;:::o;2138:308::-;2200:4;2290:18;2282:6;2279:30;2276:56;;;2312:18;;:::i;:::-;2276:56;2350:29;2372:6;2350:29;:::i;:::-;2342:37;;2434:4;2428;2424:15;2416:23;;2138:308;;;:::o;2452:154::-;2536:6;2531:3;2526;2513:30;2598:1;2589:6;2584:3;2580:16;2573:27;2452:154;;;:::o;2612:412::-;2690:5;2715:66;2731:49;2773:6;2731:49;:::i;:::-;2715:66;:::i;:::-;2706:75;;2804:6;2797:5;2790:21;2842:4;2835:5;2831:16;2880:3;2871:6;2866:3;2862:16;2859:25;2856:112;;;2887:79;;:::i;:::-;2856:112;2977:41;3011:6;3006:3;3001;2977:41;:::i;:::-;2696:328;2612:412;;;;;:::o;3044:340::-;3100:5;3149:3;3142:4;3134:6;3130:17;3126:27;3116:122;;3157:79;;:::i;:::-;3116:122;3274:6;3261:20;3299:79;3374:3;3366:6;3359:4;3351:6;3347:17;3299:79;:::i;:::-;3290:88;;3106:278;3044:340;;;;:::o;3390:1631::-;3525:6;3533;3541;3549;3557;3606:3;3594:9;3585:7;3581:23;3577:33;3574:120;;;3613:79;;:::i;:::-;3574:120;3761:1;3750:9;3746:17;3733:31;3791:18;3783:6;3780:30;3777:117;;;3813:79;;:::i;:::-;3777:117;3918:63;3973:7;3964:6;3953:9;3949:22;3918:63;:::i;:::-;3908:73;;3704:287;4058:2;4047:9;4043:18;4030:32;4089:18;4081:6;4078:30;4075:117;;;4111:79;;:::i;:::-;4075:117;4216:63;4271:7;4262:6;4251:9;4247:22;4216:63;:::i;:::-;4206:73;;4001:288;4356:2;4345:9;4341:18;4328:32;4387:18;4379:6;4376:30;4373:117;;;4409:79;;:::i;:::-;4373:117;4514:63;4569:7;4560:6;4549:9;4545:22;4514:63;:::i;:::-;4504:73;;4299:288;4654:2;4643:9;4639:18;4626:32;4685:18;4677:6;4674:30;4671:117;;;4707:79;;:::i;:::-;4671:117;4812:63;4867:7;4858:6;4847:9;4843:22;4812:63;:::i;:::-;4802:73;;4597:288;4924:3;4951:53;4996:7;4987:6;4976:9;4972:22;4951:53;:::i;:::-;4941:63;;4895:119;3390:1631;;;;;;;;:::o;5027:118::-;5114:24;5132:5;5114:24;:::i;:::-;5109:3;5102:37;5027:118;;:::o;5151:222::-;5244:4;5282:2;5271:9;5267:18;5259:26;;5295:71;5363:1;5352:9;5348:17;5339:6;5295:71;:::i;:::-;5151:222;;;;:::o;5379:332::-;5500:4;5538:2;5527:9;5523:18;5515:26;;5551:71;5619:1;5608:9;5604:17;5595:6;5551:71;:::i;:::-;5632:72;5700:2;5689:9;5685:18;5676:6;5632:72;:::i;:::-;5379:332;;;;;:::o;5717:180::-;5765:77;5762:1;5755:88;5862:4;5859:1;5852:15;5886:4;5883:1;5876:15;5903:180;5951:77;5948:1;5941:88;6048:4;6045:1;6038:15;6072:4;6069:1;6062:15;6089:320;6133:6;6170:1;6164:4;6160:12;6150:22;;6217:1;6211:4;6207:12;6238:18;6228:81;;6294:4;6286:6;6282:17;6272:27;;6228:81;6356:2;6348:6;6345:14;6325:18;6322:38;6319:84;;;6375:18;;:::i;:::-;6319:84;6140:269;6089:320;;;:::o;6415:180::-;6463:77;6460:1;6453:88;6560:4;6557:1;6550:15;6584:4;6581:1;6574:15;6601:77;6638:7;6667:5;6656:16;;6601:77;;;:::o;6684:233::-;6723:3;6746:24;6764:5;6746:24;:::i;:::-;6737:33;;6792:66;6785:5;6782:77;6779:103;;;6862:18;;:::i;:::-;6779:103;6909:1;6902:5;6898:13;6891:20;;6684:233;;;:::o", - "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.21 <=0.8.13;\n\ncontract ShareChannel {\n\n address public userA;\n address public userB;\n file[] sharedFiles;\n\n struct file {\n string fileName;\n string ipfsHash;\n string senderEncryptedAESKey;\n string receiverEncryptedAESKey;\n address sender;\n address receiver;\n }\n\n constructor(address _userA, address _userB) {\n userA = _userA;\n userB = _userB;\n }\n\n modifier isPartOfChannel() {\n require((msg.sender == userA) || (msg.sender == userB));\n _;\n }\n\n function sendFile(\n string memory _fileName,\n string memory _ipfsHash,\n string memory _senderEncryptedAESKey,\n string memory _receiverEncryptedAESKey,\n address _receiver\n ) public isPartOfChannel {\n _addFile(_fileName, _ipfsHash, _senderEncryptedAESKey, _receiverEncryptedAESKey, msg.sender, _receiver);\n }\n function receiveFile(\n string memory _fileName,\n string memory _ipfsHash,\n string memory _senderEncryptedAESKey,\n string memory _receiverEncryptedAESKey,\n address _sender\n ) public isPartOfChannel {\n _addFile(_fileName, _ipfsHash, _senderEncryptedAESKey, _receiverEncryptedAESKey, _sender, msg.sender);\n }\n\n function getSentFiles(address _user) public view isPartOfChannel {\n _findFiles(_user, true);\n }\n\n function getReceivedFiles(address _user) public view isPartOfChannel {\n _findFiles(_user, false);\n }\n\n function getChannelUsers() public view returns(address, address){\n return (userA, userB);\n }\n\n function _addFile(\n string memory _fileName,\n string memory _ipfsHash,\n string memory _senderEncryptedAESKey,\n string memory _receiverEncryptedAESKey,\n address _sender,\n address _receiver\n ) private {\n file memory newFile = file({\n fileName: _fileName,\n ipfsHash: _ipfsHash,\n senderEncryptedAESKey: _senderEncryptedAESKey,\n receiverEncryptedAESKey: _receiverEncryptedAESKey,\n sender: _sender,\n receiver: _receiver\n });\n sharedFiles.push(newFile);\n }\n\n function _findFiles(\n address _user, \n bool _getSent\n ) private view returns (\n string[] memory,\n string[] memory,\n string[] memory,\n string[] memory,\n address[] memory,\n address[] memory\n ){\n //Destructure the return values.\n (\n string[] memory fileName,\n string[] memory ipfsHash,\n string[] memory senderEncryptedAESKey\n ) = _findFiles1(_user, _getSent);\n\n (\n string[] memory receiverEncryptedAESKey,\n address[] memory sender,\n address[] memory receiver\n ) = _findFiles2(_user, _getSent);\n\n return (\n fileName,\n ipfsHash,\n senderEncryptedAESKey,\n receiverEncryptedAESKey,\n sender,\n receiver\n );\n }\n\n //Divide the function into two to avoid 'stack too deep' errors.\n\n function _findFiles1(\n address _user, \n bool _getSent\n ) private view returns (\n string[] memory,\n string[] memory,\n string[] memory\n ) {\n\n uint arraySize = _calcArraySize(_user, _getSent);\n\n string[] memory fileName = new string[](arraySize);\n string[] memory ipfsHash = new string[](arraySize);\n string[] memory senderEncryptedAESKey = new string[](arraySize);\n\n uint j = 0;\n for(uint i = 0; i < sharedFiles.length; i++){\n if(_getSent){\n if(sharedFiles[i].sender == _user){\n fileName[j] = sharedFiles[i].fileName;\n ipfsHash[j] = sharedFiles[i].ipfsHash;\n senderEncryptedAESKey[j] = sharedFiles[i].senderEncryptedAESKey;\n j++;\n }\n }\n else {\n if(sharedFiles[i].receiver == _user){\n fileName[j] = sharedFiles[i].fileName;\n ipfsHash[j] = sharedFiles[i].ipfsHash;\n senderEncryptedAESKey[j] = sharedFiles[i].senderEncryptedAESKey;\n j++;\n }\n }\n }\n \n return (\n fileName, \n ipfsHash, \n senderEncryptedAESKey\n );\n }\n\n function _findFiles2(\n address _user, \n bool _getSent\n ) private view returns (\n string[] memory,\n address[] memory,\n address[] memory\n ) {\n uint arraySize = _calcArraySize(_user, _getSent);\n\n string[] memory receiverEncryptedAESKey = new string[](arraySize);\n address[] memory sender = new address[](arraySize);\n address[] memory receiver = new address[](arraySize);\n\n uint j = 0;\n for(uint i = 0; i < sharedFiles.length; i++){\n if(_getSent){\n if(sharedFiles[i].sender == _user){\n receiverEncryptedAESKey[j] = sharedFiles[i].receiverEncryptedAESKey;\n sender[j] = sharedFiles[i].sender;\n receiver[j] = sharedFiles[i].receiver;\n j++;\n }\n }\n else {\n if(sharedFiles[i].receiver == _user){\n receiverEncryptedAESKey[j] = sharedFiles[i].receiverEncryptedAESKey;\n sender[j] = sharedFiles[i].sender;\n receiver[j] = sharedFiles[i].receiver;\n j++;\n }\n }\n }\n\n return (\n receiverEncryptedAESKey,\n sender,\n receiver\n );\n }\n\n function _calcArraySize(address _user, bool _getSent) private view returns(uint){\n uint size = 0;\n for(uint i = 0; i < sharedFiles.length; i++){\n if(_getSent){\n if(sharedFiles[i].sender == _user){\n size++;\n }\n }\n else {\n if(sharedFiles[i].receiver == _user){\n size++;\n }\n }\n }\n return size;\n }\n\n}", - "sourcePath": "/home/ranasiddharth/ShareConnect/contracts/ShareChannel.sol", - "ast": { - "absolutePath": "project:/contracts/ShareChannel.sol", - "exportedSymbols": { - "ShareChannel": [ - 755 - ] - }, - "id": 756, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 136, - "literals": [ - "solidity", - ">=", - "0.4", - ".21", - "<=", - "0.8", - ".13" - ], - "nodeType": "PragmaDirective", - "src": "32:34:1" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "ShareChannel", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 755, - "linearizedBaseContracts": [ - 755 - ], - "name": "ShareChannel", - "nameLocation": "77:12:1", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "deb22e9a", - "id": 138, - "mutability": "mutable", - "name": "userA", - "nameLocation": "110:5:1", - "nodeType": "VariableDeclaration", - "scope": 755, - "src": "95:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 137, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "95:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "cb1a295f", - "id": 140, - "mutability": "mutable", - "name": "userB", - "nameLocation": "134:5:1", - "nodeType": "VariableDeclaration", - "scope": 755, - "src": "119:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 139, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "119:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 144, - "mutability": "mutable", - "name": "sharedFiles", - "nameLocation": "150:11:1", - "nodeType": "VariableDeclaration", - "scope": 755, - "src": "143:18:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file[]" - }, - "typeName": { - "baseType": { - "id": 142, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 141, - "name": "file", - "nodeType": "IdentifierPath", - "referencedDeclaration": 157, - "src": "143:4:1" - }, - "referencedDeclaration": 157, - "src": "143:4:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage_ptr", - "typeString": "struct ShareChannel.file" - } - }, - "id": 143, - "nodeType": "ArrayTypeName", - "src": "143:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage_ptr", - "typeString": "struct ShareChannel.file[]" - } - }, - "visibility": "internal" - }, - { - "canonicalName": "ShareChannel.file", - "id": 157, - "members": [ - { - "constant": false, - "id": 146, - "mutability": "mutable", - "name": "fileName", - "nameLocation": "191:8:1", - "nodeType": "VariableDeclaration", - "scope": 157, - "src": "184:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 145, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "184:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 148, - "mutability": "mutable", - "name": "ipfsHash", - "nameLocation": "212:8:1", - "nodeType": "VariableDeclaration", - "scope": 157, - "src": "205:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 147, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "205:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 150, - "mutability": "mutable", - "name": "senderEncryptedAESKey", - "nameLocation": "233:21:1", - "nodeType": "VariableDeclaration", - "scope": 157, - "src": "226:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 149, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "226:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 152, - "mutability": "mutable", - "name": "receiverEncryptedAESKey", - "nameLocation": "267:23:1", - "nodeType": "VariableDeclaration", - "scope": 157, - "src": "260:30:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 151, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "260:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 154, - "mutability": "mutable", - "name": "sender", - "nameLocation": "304:6:1", - "nodeType": "VariableDeclaration", - "scope": 157, - "src": "296:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "296:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 156, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "324:8:1", - "nodeType": "VariableDeclaration", - "scope": 157, - "src": "316:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 155, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "316:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "name": "file", - "nameLocation": "173:4:1", - "nodeType": "StructDefinition", - "scope": 755, - "src": "166:171:1", - "visibility": "public" + "src": "6851:935:6" }, { "body": { - "id": 172, - "nodeType": "Block", - "src": "385:45:1", + "nodeType": "YulBlock", + "src": "8410:1223:6", "statements": [ { - "expression": { - "id": 166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 164, - "name": "userA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "391:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "nodeType": "YulAssignment", + "src": "8420:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8432:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8443:3:6", + "type": "", + "value": "192" } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8428:3:6" }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 165, - "name": "_userA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 159, - "src": "399:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "391:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "nodeType": "YulFunctionCall", + "src": "8428:19:6" }, - "id": 167, - "nodeType": "ExpressionStatement", - "src": "391:14:1" + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8420:4:6" + } + ] }, { "expression": { - "id": 170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 168, - "name": "userB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "411:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 169, - "name": "_userB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 161, - "src": "419:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8468:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8479:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8464:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8464:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8487:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8493:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8483:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8483:20:6" } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8457:6:6" }, - "src": "411:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "nodeType": "YulFunctionCall", + "src": "8457:47:6" }, - "id": 171, - "nodeType": "ExpressionStatement", - "src": "411:14:1" - } - ] - }, - "id": 173, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 162, - "nodeType": "ParameterList", - "parameters": [ + "nodeType": "YulExpressionStatement", + "src": "8457:47:6" + }, { - "constant": false, - "id": 159, - "mutability": "mutable", - "name": "_userA", - "nameLocation": "361:6:1", - "nodeType": "VariableDeclaration", - "scope": 173, - "src": "353:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "nodeType": "YulAssignment", + "src": "8513:136:6", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8635:6:6" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8644:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8521:113:6" + }, + "nodeType": "YulFunctionCall", + "src": "8521:128:6" }, - "typeName": { - "id": 158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8513:4:6" } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8670:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8681:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8666:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8666:18:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8690:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8696:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8686:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8686:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8659:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "8659:48:6" }, - "visibility": "internal" + "nodeType": "YulExpressionStatement", + "src": "8659:48:6" }, { - "constant": false, - "id": 161, - "mutability": "mutable", - "name": "_userB", - "nameLocation": "377:6:1", - "nodeType": "VariableDeclaration", - "scope": 173, - "src": "369:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "nodeType": "YulAssignment", + "src": "8716:136:6", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "8838:6:6" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8847:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8724:113:6" + }, + "nodeType": "YulFunctionCall", + "src": "8724:128:6" }, - "typeName": { - "id": 160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "369:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8716:4:6" } - }, - "visibility": "internal" - } - ], - "src": "352:32:1" - }, - "returnParameters": { - "id": 163, - "nodeType": "ParameterList", - "parameters": [], - "src": "385:0:1" - }, - "scope": 755, - "src": "341:89:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 190, - "nodeType": "Block", - "src": "461:73:1", - "statements": [ + ] + }, { "expression": { "arguments": [ { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 176, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967281, - "src": "476:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "476:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 178, - "name": "userA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "490:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 180, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "475:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8873:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8884:2:6", + "type": "", + "value": "64" } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8869:3:6" }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 181, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967281, - "src": "501:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "501:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 183, - "name": "userB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "515:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "501:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 185, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "500:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "nodeType": "YulFunctionCall", + "src": "8869:18:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8893:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8899:9:6" } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8889:3:6" }, - "src": "475:46:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "nodeType": "YulFunctionCall", + "src": "8889:20:6" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 175, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "467:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8862:6:6" }, - "id": 187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "467:55:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "nodeType": "YulFunctionCall", + "src": "8862:48:6" }, - "id": 188, - "nodeType": "ExpressionStatement", - "src": "467:55:1" + "nodeType": "YulExpressionStatement", + "src": "8862:48:6" }, { - "id": 189, - "nodeType": "PlaceholderStatement", - "src": "528:1:1" - } - ] - }, - "id": 191, - "name": "isPartOfChannel", - "nameLocation": "443:15:1", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 174, - "nodeType": "ParameterList", - "parameters": [], - "src": "458:2:1" - }, - "src": "434:100:1", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 216, - "nodeType": "Block", - "src": "750:114:1", - "statements": [ - { - "expression": { + "nodeType": "YulAssignment", + "src": "8919:136:6", + "value": { "arguments": [ { - "id": 207, - "name": "_fileName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 193, - "src": "765:9:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } + "name": "value2", + "nodeType": "YulIdentifier", + "src": "9041:6:6" }, { - "id": 208, - "name": "_ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 195, - "src": "776:9:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9050:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8927:113:6" + }, + "nodeType": "YulFunctionCall", + "src": "8927:128:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8919:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9076:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9087:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9072:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9072:18:6" }, { - "id": 209, - "name": "_senderEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "787:22:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9096:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9102:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9092:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9092:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9065:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "9065:48:6" + }, + "nodeType": "YulExpressionStatement", + "src": "9065:48:6" + }, + { + "nodeType": "YulAssignment", + "src": "9122:136:6", + "value": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "9244:6:6" }, { - "id": 210, - "name": "_receiverEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 199, - "src": "811:24:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9253:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9130:113:6" + }, + "nodeType": "YulFunctionCall", + "src": "9130:128:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9122:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9279:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9290:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9275:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9275:19:6" }, { - "expression": { - "id": 211, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967281, - "src": "837:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9300:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9306:9:6" } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9296:3:6" }, - "id": 212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "837:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "nodeType": "YulFunctionCall", + "src": "9296:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9268:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "9268:49:6" + }, + "nodeType": "YulExpressionStatement", + "src": "9268:49:6" + }, + { + "nodeType": "YulAssignment", + "src": "9326:116:6", + "value": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "9428:6:6" }, { - "id": 213, - "name": "_receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 201, - "src": "849:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9437:4:6" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "functionName": { + "name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9334:93:6" + }, + "nodeType": "YulFunctionCall", + "src": "9334:108:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9326:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9463:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9474:3:6", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9459:3:6" }, - { - "typeIdentifier": "t_address", - "typeString": "address" + "nodeType": "YulFunctionCall", + "src": "9459:19:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9484:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9490:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9480:3:6" }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 206, - "name": "_addFile", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 315, - "src": "756:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,string memory,string memory,address,address)" + "nodeType": "YulFunctionCall", + "src": "9480:20:6" } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9452:6:6" }, - "id": 214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "756:103:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "nodeType": "YulFunctionCall", + "src": "9452:49:6" }, - "id": 215, - "nodeType": "ExpressionStatement", - "src": "756:103:1" + "nodeType": "YulExpressionStatement", + "src": "9452:49:6" + }, + { + "nodeType": "YulAssignment", + "src": "9510:116:6", + "value": { + "arguments": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "9612:6:6" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9621:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9518:93:6" + }, + "nodeType": "YulFunctionCall", + "src": "9518:108:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9510:4:6" + } + ] } ] }, - "functionSelector": "a6aeff57", - "id": 217, - "implemented": true, - "kind": "function", - "modifiers": [ + "name": "abi_encode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ { - "id": 204, - "kind": "modifierInvocation", - "modifierName": { - "id": 203, - "name": "isPartOfChannel", - "nodeType": "IdentifierPath", - "referencedDeclaration": 191, - "src": "734:15:1" - }, - "nodeType": "ModifierInvocation", - "src": "734:15:1" + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8342:9:6", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "8354:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "8362:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "8370:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "8378:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8386:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8394:6:6", + "type": "" } ], - "name": "sendFile", - "nameLocation": "547:8:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 202, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 193, - "mutability": "mutable", - "name": "_fileName", - "nameLocation": "575:9:1", - "nodeType": "VariableDeclaration", - "scope": 217, - "src": "561:23:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 192, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "561:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 195, - "mutability": "mutable", - "name": "_ipfsHash", - "nameLocation": "604:9:1", - "nodeType": "VariableDeclaration", - "scope": 217, - "src": "590:23:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 194, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "590:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 197, - "mutability": "mutable", - "name": "_senderEncryptedAESKey", - "nameLocation": "633:22:1", - "nodeType": "VariableDeclaration", - "scope": 217, - "src": "619:36:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 196, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "619:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 199, - "mutability": "mutable", - "name": "_receiverEncryptedAESKey", - "nameLocation": "675:24:1", - "nodeType": "VariableDeclaration", - "scope": 217, - "src": "661:38:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 198, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "661:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "8405:4:6", + "type": "" + } + ], + "src": "7792:1841:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9728:28:6", + "statements": [ { - "constant": false, - "id": 201, - "mutability": "mutable", - "name": "_receiver", - "nameLocation": "713:9:1", - "nodeType": "VariableDeclaration", - "scope": 217, - "src": "705:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 200, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "705:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9745:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9748:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9738:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "9738:12:6" }, - "visibility": "internal" + "nodeType": "YulExpressionStatement", + "src": "9738:12:6" } - ], - "src": "555:171:1" - }, - "returnParameters": { - "id": 205, - "nodeType": "ParameterList", - "parameters": [], - "src": "750:0:1" + ] }, - "scope": 755, - "src": "538:326:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "9639:117:6" }, { "body": { - "id": 242, - "nodeType": "Block", - "src": "1080:112:1", + "nodeType": "YulBlock", + "src": "9851:28:6", "statements": [ { "expression": { "arguments": [ { - "id": 233, - "name": "_fileName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 219, - "src": "1095:9:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 234, - "name": "_ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "1106:9:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } + "kind": "number", + "nodeType": "YulLiteral", + "src": "9868:1:6", + "type": "", + "value": "0" }, { - "id": 235, - "name": "_senderEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 223, - "src": "1117:22:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, + "kind": "number", + "nodeType": "YulLiteral", + "src": "9871:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9861:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "9861:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "9861:12:6" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "9762:117:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9913:152:6", + "statements": [ + { + "expression": { + "arguments": [ { - "id": 236, - "name": "_receiverEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "1141:24:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } + "kind": "number", + "nodeType": "YulLiteral", + "src": "9930:1:6", + "type": "", + "value": "0" }, { - "id": 237, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "1167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "kind": "number", + "nodeType": "YulLiteral", + "src": "9933:77:6", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9923:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "9923:88:6" + }, + "nodeType": "YulExpressionStatement", + "src": "9923:88:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10027:1:6", + "type": "", + "value": "4" }, { - "expression": { - "id": 238, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967281, - "src": "1176:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1176:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "kind": "number", + "nodeType": "YulLiteral", + "src": "10030:4:6", + "type": "", + "value": "0x41" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 232, - "name": "_addFile", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 315, - "src": "1086:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,string memory,string memory,address,address)" + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10020:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "10020:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10020:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10051:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10054:4:6", + "type": "", + "value": "0x24" } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10044:6:6" }, - "id": 240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1086:101:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "nodeType": "YulFunctionCall", + "src": "10044:15:6" }, - "id": 241, - "nodeType": "ExpressionStatement", - "src": "1086:101:1" + "nodeType": "YulExpressionStatement", + "src": "10044:15:6" } ] }, - "functionSelector": "a73e7571", - "id": 243, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 230, - "kind": "modifierInvocation", - "modifierName": { - "id": 229, - "name": "isPartOfChannel", - "nodeType": "IdentifierPath", - "referencedDeclaration": 191, - "src": "1064:15:1" - }, - "nodeType": "ModifierInvocation", - "src": "1064:15:1" - } - ], - "name": "receiveFile", - "nameLocation": "876:11:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 228, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 219, - "mutability": "mutable", - "name": "_fileName", - "nameLocation": "907:9:1", - "nodeType": "VariableDeclaration", - "scope": 243, - "src": "893:23:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 218, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "893:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "9885:180:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10114:238:6", + "statements": [ { - "constant": false, - "id": 221, - "mutability": "mutable", - "name": "_ipfsHash", - "nameLocation": "936:9:1", - "nodeType": "VariableDeclaration", - "scope": 243, - "src": "922:23:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" + "nodeType": "YulVariableDeclaration", + "src": "10124:58:6", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "10146:6:6" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "10176:4:6" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "10154:21:6" + }, + "nodeType": "YulFunctionCall", + "src": "10154:27:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10142:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10142:40:6" }, - "typeName": { - "id": 220, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "922:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "10128:10:6", + "type": "" } - }, - "visibility": "internal" + ] }, { - "constant": false, - "id": 223, - "mutability": "mutable", - "name": "_senderEncryptedAESKey", - "nameLocation": "965:22:1", - "nodeType": "VariableDeclaration", - "scope": 243, - "src": "951:36:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 222, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "951:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } + "body": { + "nodeType": "YulBlock", + "src": "10293:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "10295:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "10295:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10295:18:6" + } + ] }, - "visibility": "internal" - }, - { - "constant": false, - "id": 225, - "mutability": "mutable", - "name": "_receiverEncryptedAESKey", - "nameLocation": "1007:24:1", - "nodeType": "VariableDeclaration", - "scope": 243, - "src": "993:38:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 224, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "993:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "10236:10:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10248:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10233:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "10233:34:6" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "10272:10:6" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "10284:6:6" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "10269:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "10269:22:6" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "10230:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "10230:62:6" }, - "visibility": "internal" + "nodeType": "YulIf", + "src": "10227:88:6" }, { - "constant": false, - "id": 227, - "mutability": "mutable", - "name": "_sender", - "nameLocation": "1045:7:1", - "nodeType": "VariableDeclaration", - "scope": 243, - "src": "1037:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 226, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1037:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10331:2:6", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "10335:10:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10324:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "10324:22:6" }, - "visibility": "internal" + "nodeType": "YulExpressionStatement", + "src": "10324:22:6" } - ], - "src": "887:169:1" - }, - "returnParameters": { - "id": 231, - "nodeType": "ParameterList", - "parameters": [], - "src": "1080:0:1" + ] }, - "scope": 755, - "src": "867:325:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "10100:6:6", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "10108:4:6", + "type": "" + } + ], + "src": "10071:281:6" }, { "body": { - "id": 255, - "nodeType": "Block", - "src": "1261:34:1", + "nodeType": "YulBlock", + "src": "10399:88:6", "statements": [ + { + "nodeType": "YulAssignment", + "src": "10409:30:6", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "10419:18:6" + }, + "nodeType": "YulFunctionCall", + "src": "10419:20:6" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "10409:6:6" + } + ] + }, { "expression": { "arguments": [ { - "id": 251, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 245, - "src": "1278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "10468:6:6" }, { - "hexValue": "74727565", - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1285:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" + "name": "size", + "nodeType": "YulIdentifier", + "src": "10476:4:6" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 250, - "name": "_findFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 381, - "src": "1267:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,bool) view returns (string memory[] memory,string memory[] memory,string memory[] memory,string memory[] memory,address[] memory,address[] memory)" - } + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "10448:19:6" }, - "id": 253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1267:23:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "tuple(string memory[] memory,string memory[] memory,string memory[] memory,string memory[] memory,address[] memory,address[] memory)" - } + "nodeType": "YulFunctionCall", + "src": "10448:33:6" }, - "id": 254, - "nodeType": "ExpressionStatement", - "src": "1267:23:1" + "nodeType": "YulExpressionStatement", + "src": "10448:33:6" } ] }, - "functionSelector": "4266f8c5", - "id": 256, - "implemented": true, - "kind": "function", - "modifiers": [ + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ { - "id": 248, - "kind": "modifierInvocation", - "modifierName": { - "id": 247, - "name": "isPartOfChannel", - "nodeType": "IdentifierPath", - "referencedDeclaration": 191, - "src": "1245:15:1" - }, - "nodeType": "ModifierInvocation", - "src": "1245:15:1" + "name": "size", + "nodeType": "YulTypedName", + "src": "10383:4:6", + "type": "" } ], - "name": "getSentFiles", - "nameLocation": "1205:12:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 246, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 245, - "mutability": "mutable", - "name": "_user", - "nameLocation": "1226:5:1", - "nodeType": "VariableDeclaration", - "scope": 256, - "src": "1218:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1218:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1217:15:1" - }, - "returnParameters": { - "id": 249, - "nodeType": "ParameterList", - "parameters": [], - "src": "1261:0:1" - }, - "scope": 755, - "src": "1196:99:1", - "stateMutability": "view", - "virtual": false, - "visibility": "public" + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "10392:6:6", + "type": "" + } + ], + "src": "10358:129:6" }, { "body": { - "id": 268, - "nodeType": "Block", - "src": "1368:35:1", + "nodeType": "YulBlock", + "src": "10560:241:6", "statements": [ { - "expression": { - "arguments": [ + "body": { + "nodeType": "YulBlock", + "src": "10665:22:6", + "statements": [ { - "id": 264, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 258, - "src": "1385:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "10667:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "10667:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10667:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10637:6:6" }, { - "hexValue": "66616c7365", - "id": 265, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1392:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" + "kind": "number", + "nodeType": "YulLiteral", + "src": "10645:18:6", + "type": "", + "value": "0xffffffffffffffff" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 263, - "name": "_findFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 381, - "src": "1374:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,bool) view returns (string memory[] memory,string memory[] memory,string memory[] memory,string memory[] memory,address[] memory,address[] memory)" + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10634:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "10634:30:6" + }, + "nodeType": "YulIf", + "src": "10631:56:6" + }, + { + "nodeType": "YulAssignment", + "src": "10697:37:6", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10727:6:6" } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "10705:21:6" }, - "id": 266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1374:24:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "tuple(string memory[] memory,string memory[] memory,string memory[] memory,string memory[] memory,address[] memory,address[] memory)" + "nodeType": "YulFunctionCall", + "src": "10705:29:6" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "10697:4:6" } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10771:23:6", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "10783:4:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10789:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10779:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10779:15:6" }, - "id": 267, - "nodeType": "ExpressionStatement", - "src": "1374:24:1" + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "10771:4:6" + } + ] } ] }, - "functionSelector": "93b0394c", - "id": 269, - "implemented": true, - "kind": "function", - "modifiers": [ + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ { - "id": 261, - "kind": "modifierInvocation", - "modifierName": { - "id": 260, - "name": "isPartOfChannel", - "nodeType": "IdentifierPath", - "referencedDeclaration": 191, - "src": "1352:15:1" - }, - "nodeType": "ModifierInvocation", - "src": "1352:15:1" + "name": "length", + "nodeType": "YulTypedName", + "src": "10544:6:6", + "type": "" } ], - "name": "getReceivedFiles", - "nameLocation": "1308:16:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 259, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 258, - "mutability": "mutable", - "name": "_user", - "nameLocation": "1333:5:1", - "nodeType": "VariableDeclaration", - "scope": 269, - "src": "1325:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 257, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1325:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1324:15:1" - }, - "returnParameters": { - "id": 262, - "nodeType": "ParameterList", - "parameters": [], - "src": "1368:0:1" - }, - "scope": 755, - "src": "1299:104:1", - "stateMutability": "view", - "virtual": false, - "visibility": "public" + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "10555:4:6", + "type": "" + } + ], + "src": "10493:308:6" }, { "body": { - "id": 280, - "nodeType": "Block", - "src": "1471:32:1", + "nodeType": "YulBlock", + "src": "10858:103:6", "statements": [ { "expression": { - "components": [ + "arguments": [ { - "id": 276, - "name": "userA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "1485:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "name": "dst", + "nodeType": "YulIdentifier", + "src": "10881:3:6" }, { - "id": 277, - "name": "userB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "1492:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "name": "src", + "nodeType": "YulIdentifier", + "src": "10886:3:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10891:6:6" } ], - "id": 278, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1484:14:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" - } + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "10868:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "10868:30:6" }, - "functionReturnParameters": 275, - "id": 279, - "nodeType": "Return", - "src": "1477:21:1" + "nodeType": "YulExpressionStatement", + "src": "10868:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "10939:3:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10944:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10935:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10935:16:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10953:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10928:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "10928:27:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10928:27:6" } ] }, - "functionSelector": "e9ad3239", - "id": 281, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getChannelUsers", - "nameLocation": "1416:15:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 270, - "nodeType": "ParameterList", - "parameters": [], - "src": "1431:2:1" - }, - "returnParameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 272, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1454:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 271, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1454:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 274, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1463:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1463:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1453:18:1" - }, - "scope": 755, - "src": "1407:96:1", - "stateMutability": "view", - "virtual": false, - "visibility": "public" + "name": "copy_calldata_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "10840:3:6", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "10845:3:6", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "10850:6:6", + "type": "" + } + ], + "src": "10807:154:6" }, { "body": { - "id": 314, - "nodeType": "Block", - "src": "1725:290:1", + "nodeType": "YulBlock", + "src": "11051:328:6", "statements": [ { - "assignments": [ - 298 - ], - "declarations": [ - { - "constant": false, - "id": 298, - "mutability": "mutable", - "name": "newFile", - "nameLocation": "1743:7:1", - "nodeType": "VariableDeclaration", - "scope": 314, - "src": "1731:19:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_memory_ptr", - "typeString": "struct ShareChannel.file" - }, - "typeName": { - "id": 297, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 296, - "name": "file", - "nodeType": "IdentifierPath", - "referencedDeclaration": 157, - "src": "1731:4:1" + "nodeType": "YulAssignment", + "src": "11061:75:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11128:6:6" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "11086:41:6" }, - "referencedDeclaration": 157, - "src": "1731:4:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage_ptr", - "typeString": "struct ShareChannel.file" - } - }, - "visibility": "internal" + "nodeType": "YulFunctionCall", + "src": "11086:49:6" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "11070:15:6" + }, + "nodeType": "YulFunctionCall", + "src": "11070:66:6" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "11061:5:6" } - ], - "id": 307, - "initialValue": { + ] + }, + { + "expression": { "arguments": [ { - "id": 300, - "name": "_fileName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "1776:9:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 301, - "name": "_ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "1803:9:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 302, - "name": "_senderEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 287, - "src": "1843:22:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 303, - "name": "_receiverEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "1898:24:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 304, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "1938:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "name": "array", + "nodeType": "YulIdentifier", + "src": "11152:5:6" }, { - "id": 305, - "name": "_receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 293, - "src": "1963:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "name": "length", + "nodeType": "YulIdentifier", + "src": "11159:6:6" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 299, - "name": "file", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 157, - "src": "1753:4:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_file_$157_storage_ptr_$", - "typeString": "type(struct ShareChannel.file storage pointer)" - } + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11145:6:6" }, - "id": 306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "fileName", - "ipfsHash", - "senderEncryptedAESKey", - "receiverEncryptedAESKey", - "sender", - "receiver" - ], - "nodeType": "FunctionCall", - "src": "1753:226:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_memory_ptr", - "typeString": "struct ShareChannel.file memory" - } + "nodeType": "YulFunctionCall", + "src": "11145:21:6" }, - "nodeType": "VariableDeclarationStatement", - "src": "1731:248:1" + "nodeType": "YulExpressionStatement", + "src": "11145:21:6" }, { - "expression": { + "nodeType": "YulVariableDeclaration", + "src": "11175:27:6", + "value": { "arguments": [ { - "id": 311, - "name": "newFile", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "2002:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_memory_ptr", - "typeString": "struct ShareChannel.file memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_file_$157_memory_ptr", - "typeString": "struct ShareChannel.file memory" - } - ], - "expression": { - "id": 308, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "1985:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } + "name": "array", + "nodeType": "YulIdentifier", + "src": "11190:5:6" }, - "id": 310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "src": "1985:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_file_$157_storage_$dyn_storage_ptr_$_t_struct$_file_$157_storage_$returns$__$bound_to$_t_array$_t_struct$_file_$157_storage_$dyn_storage_ptr_$", - "typeString": "function (struct ShareChannel.file storage ref[] storage pointer,struct ShareChannel.file storage ref)" + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11197:4:6", + "type": "", + "value": "0x20" } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11186:3:6" }, - "id": 312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1985:25:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 313, - "nodeType": "ExpressionStatement", - "src": "1985:25:1" - } - ] - }, - "id": 315, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addFile", - "nameLocation": "1516:8:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 294, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 283, - "mutability": "mutable", - "name": "_fileName", - "nameLocation": "1544:9:1", - "nodeType": "VariableDeclaration", - "scope": 315, - "src": "1530:23:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 282, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1530:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 285, - "mutability": "mutable", - "name": "_ipfsHash", - "nameLocation": "1573:9:1", - "nodeType": "VariableDeclaration", - "scope": 315, - "src": "1559:23:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 284, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1559:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 287, - "mutability": "mutable", - "name": "_senderEncryptedAESKey", - "nameLocation": "1602:22:1", - "nodeType": "VariableDeclaration", - "scope": 315, - "src": "1588:36:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 286, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1588:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 289, - "mutability": "mutable", - "name": "_receiverEncryptedAESKey", - "nameLocation": "1644:24:1", - "nodeType": "VariableDeclaration", - "scope": 315, - "src": "1630:38:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" + "nodeType": "YulFunctionCall", + "src": "11186:16:6" }, - "typeName": { - "id": 288, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1630:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "11179:3:6", + "type": "" } - }, - "visibility": "internal" + ] }, { - "constant": false, - "id": 291, - "mutability": "mutable", - "name": "_sender", - "nameLocation": "1682:7:1", - "nodeType": "VariableDeclaration", - "scope": 315, - "src": "1674:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "body": { + "nodeType": "YulBlock", + "src": "11240:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "11242:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "11242:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "11242:79:6" + } + ] }, - "typeName": { - "id": 290, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1674:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "11221:3:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11226:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11217:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11217:16:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11235:3:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11214:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "11214:25:6" }, - "visibility": "internal" + "nodeType": "YulIf", + "src": "11211:112:6" }, { - "constant": false, - "id": 293, - "mutability": "mutable", - "name": "_receiver", - "nameLocation": "1703:9:1", - "nodeType": "VariableDeclaration", - "scope": 315, - "src": "1695:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 292, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1695:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "11356:3:6" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "11361:3:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11366:6:6" + } + ], + "functionName": { + "name": "copy_calldata_to_memory", + "nodeType": "YulIdentifier", + "src": "11332:23:6" + }, + "nodeType": "YulFunctionCall", + "src": "11332:41:6" }, - "visibility": "internal" + "nodeType": "YulExpressionStatement", + "src": "11332:41:6" } - ], - "src": "1524:192:1" - }, - "returnParameters": { - "id": 295, - "nodeType": "ParameterList", - "parameters": [], - "src": "1725:0:1" + ] }, - "scope": 755, - "src": "1507:508:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 380, - "nodeType": "Block", - "src": "2235:491:1", + "name": "abi_decode_available_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "11024:3:6", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "11029:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11037:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "11045:5:6", + "type": "" + } + ], + "src": "10967:412:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11461:278:6", "statements": [ { - "assignments": [ - 344, - 347, - 350 - ], - "declarations": [ - { - "constant": false, - "id": 344, - "mutability": "mutable", - "name": "fileName", - "nameLocation": "2302:8:1", - "nodeType": "VariableDeclaration", - "scope": 380, - "src": "2286:24:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2286:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } + "body": { + "nodeType": "YulBlock", + "src": "11510:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "11512:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "11512:79:6" }, - "id": 343, - "nodeType": "ArrayTypeName", - "src": "2286:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 347, - "mutability": "mutable", - "name": "ipfsHash", - "nameLocation": "2334:8:1", - "nodeType": "VariableDeclaration", - "scope": 380, - "src": "2318:24:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 345, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2318:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "nodeType": "YulExpressionStatement", + "src": "11512:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11489:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11497:4:6", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11485:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11485:17:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11504:3:6" } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "11481:3:6" }, - "id": 346, - "nodeType": "ArrayTypeName", - "src": "2318:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - }, - "visibility": "internal" + "nodeType": "YulFunctionCall", + "src": "11481:27:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11474:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "11474:35:6" + }, + "nodeType": "YulIf", + "src": "11471:122:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "11602:34:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11629:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "11616:12:6" }, + "nodeType": "YulFunctionCall", + "src": "11616:20:6" + }, + "variables": [ { - "constant": false, - "id": 350, - "mutability": "mutable", - "name": "senderEncryptedAESKey", - "nameLocation": "2366:21:1", - "nodeType": "VariableDeclaration", - "scope": 380, - "src": "2350:37:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 348, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2350:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "name": "length", + "nodeType": "YulTypedName", + "src": "11606:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11645:88:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11706:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11714:4:6", + "type": "", + "value": "0x20" } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11702:3:6" }, - "id": 349, - "nodeType": "ArrayTypeName", - "src": "2350:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } + "nodeType": "YulFunctionCall", + "src": "11702:17:6" }, - "visibility": "internal" - } - ], - "id": 355, - "initialValue": { - "arguments": [ { - "id": 352, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 317, - "src": "2408:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "name": "length", + "nodeType": "YulIdentifier", + "src": "11721:6:6" }, { - "id": 353, - "name": "_getSent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "2415:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "name": "end", + "nodeType": "YulIdentifier", + "src": "11729:3:6" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 351, - "name": "_findFiles1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 540, - "src": "2396:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (address,bool) view returns (string memory[] memory,string memory[] memory,string memory[] memory)" - } + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "11654:47:6" }, - "id": 354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2396:28:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", - "typeString": "tuple(string memory[] memory,string memory[] memory,string memory[] memory)" + "nodeType": "YulFunctionCall", + "src": "11654:79:6" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "11645:5:6" } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11439:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11447:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "11455:5:6", + "type": "" + } + ], + "src": "11399:340:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11919:1457:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11966:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "11968:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "11968:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "11968:79:6" + } + ] }, - "nodeType": "VariableDeclarationStatement", - "src": "2278:146:1" + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11940:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11949:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11936:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11936:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11961:3:6", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "11932:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11932:33:6" + }, + "nodeType": "YulIf", + "src": "11929:120:6" }, { - "assignments": [ - 360, - 363, - 366 - ], - "declarations": [ + "nodeType": "YulBlock", + "src": "12059:287:6", + "statements": [ { - "constant": false, - "id": 360, - "mutability": "mutable", - "name": "receiverEncryptedAESKey", - "nameLocation": "2455:23:1", - "nodeType": "VariableDeclaration", - "scope": 380, - "src": "2439:39:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 358, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2439:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "nodeType": "YulVariableDeclaration", + "src": "12074:45:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12105:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12116:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12101:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12101:17:6" } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "12088:12:6" }, - "id": 359, - "nodeType": "ArrayTypeName", - "src": "2439:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } + "nodeType": "YulFunctionCall", + "src": "12088:31:6" }, - "visibility": "internal" + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12078:6:6", + "type": "" + } + ] }, { - "constant": false, - "id": 363, - "mutability": "mutable", - "name": "sender", - "nameLocation": "2503:6:1", - "nodeType": "VariableDeclaration", - "scope": 380, - "src": "2486:23:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" + "body": { + "nodeType": "YulBlock", + "src": "12166:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "12168:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "12168:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "12168:79:6" + } + ] }, - "typeName": { - "baseType": { - "id": 361, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2486:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12138:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12146:18:6", + "type": "", + "value": "0xffffffffffffffff" } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "12135:2:6" }, - "id": 362, - "nodeType": "ArrayTypeName", - "src": "2486:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } + "nodeType": "YulFunctionCall", + "src": "12135:30:6" }, - "visibility": "internal" + "nodeType": "YulIf", + "src": "12132:117:6" }, { - "constant": false, - "id": 366, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "2534:8:1", - "nodeType": "VariableDeclaration", - "scope": 380, - "src": "2517:25:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 364, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2517:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "nodeType": "YulAssignment", + "src": "12263:73:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12308:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12319:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12304:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12304:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12328:7:6" } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "12273:30:6" }, - "id": 365, - "nodeType": "ArrayTypeName", - "src": "2517:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } + "nodeType": "YulFunctionCall", + "src": "12273:63:6" }, - "visibility": "internal" - } - ], - "id": 371, - "initialValue": { - "arguments": [ - { - "id": 368, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 317, - "src": "2563:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 369, - "name": "_getSent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "2570:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, + "variableNames": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12263:6:6" } - ], - "id": 367, - "name": "_findFiles2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 699, - "src": "2551:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,bool) view returns (string memory[] memory,address[] memory,address[] memory)" - } - }, - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2551:28:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "tuple(string memory[] memory,address[] memory,address[] memory)" + ] } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2431:148:1" + ] }, { - "expression": { - "components": [ - { - "id": 372, - "name": "fileName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 344, - "src": "2601:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - { - "id": 373, - "name": "ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "2617:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } + "nodeType": "YulBlock", + "src": "12356:288:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12371:46:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12402:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12413:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12398:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12398:18:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "12385:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "12385:32:6" }, - { - "id": 374, - "name": "senderEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 350, - "src": "2633:21:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12375:6:6", + "type": "" } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12464:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "12466:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "12466:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "12466:79:6" + } + ] }, - { - "id": 375, - "name": "receiverEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 360, - "src": "2662:23:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12436:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12444:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "12433:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "12433:30:6" }, - { - "id": 376, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 363, - "src": "2693:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } + "nodeType": "YulIf", + "src": "12430:117:6" + }, + { + "nodeType": "YulAssignment", + "src": "12561:73:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12606:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12617:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12602:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12602:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12626:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "12571:30:6" + }, + "nodeType": "YulFunctionCall", + "src": "12571:63:6" }, - { - "id": 377, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "2707:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "12561:6:6" } - } - ], - "id": 378, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2593:128:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "tuple(string memory[] memory,string memory[] memory,string memory[] memory,string memory[] memory,address[] memory,address[] memory)" + ] } - }, - "functionReturnParameters": 339, - "id": 379, - "nodeType": "Return", - "src": "2586:135:1" - } - ] - }, - "id": 381, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_findFiles", - "nameLocation": "2028:10:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 320, - "nodeType": "ParameterList", - "parameters": [ + ] + }, { - "constant": false, - "id": 317, - "mutability": "mutable", - "name": "_user", - "nameLocation": "2052:5:1", - "nodeType": "VariableDeclaration", - "scope": 381, - "src": "2044:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 316, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 319, - "mutability": "mutable", - "name": "_getSent", - "nameLocation": "2069:8:1", - "nodeType": "VariableDeclaration", - "scope": 381, - "src": "2064:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 318, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2064:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "2038:43:1" - }, - "returnParameters": { - "id": 339, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 323, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 381, - "src": "2109:15:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 321, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2109:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } + "nodeType": "YulBlock", + "src": "12654:288:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12669:46:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12700:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12711:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12696:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12696:18:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "12683:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "12683:32:6" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12673:6:6", + "type": "" + } + ] }, - "id": 322, - "nodeType": "ArrayTypeName", - "src": "2109:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 326, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 381, - "src": "2130:15:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 324, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2130:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } + { + "body": { + "nodeType": "YulBlock", + "src": "12762:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "12764:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "12764:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "12764:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12734:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12742:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "12731:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "12731:30:6" + }, + "nodeType": "YulIf", + "src": "12728:117:6" }, - "id": 325, - "nodeType": "ArrayTypeName", - "src": "2130:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" + { + "nodeType": "YulAssignment", + "src": "12859:73:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12904:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12915:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12900:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12900:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12924:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "12869:30:6" + }, + "nodeType": "YulFunctionCall", + "src": "12869:63:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "12859:6:6" + } + ] } - }, - "visibility": "internal" + ] }, { - "constant": false, - "id": 329, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 381, - "src": "2151:15:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 327, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2151:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } + "nodeType": "YulBlock", + "src": "12952:288:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12967:46:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12998:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13009:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12994:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12994:18:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "12981:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "12981:32:6" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12971:6:6", + "type": "" + } + ] }, - "id": 328, - "nodeType": "ArrayTypeName", - "src": "2151:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 332, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 381, - "src": "2172:15:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 330, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2172:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 331, - "nodeType": "ArrayTypeName", - "src": "2172:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 335, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 381, - "src": "2193:16:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 333, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2193:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 334, - "nodeType": "ArrayTypeName", - "src": "2193:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 338, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 381, - "src": "2215:16:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 336, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2215:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 337, - "nodeType": "ArrayTypeName", - "src": "2215:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - } - ], - "src": "2103:132:1" - }, - "scope": 755, - "src": "2019:707:1", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 539, - "nodeType": "Block", - "src": "2951:935:1", - "statements": [ - { - "assignments": [ - 398 - ], - "declarations": [ { - "constant": false, - "id": 398, - "mutability": "mutable", - "name": "arraySize", - "nameLocation": "2963:9:1", - "nodeType": "VariableDeclaration", - "scope": 539, - "src": "2958:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 397, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2958:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "body": { + "nodeType": "YulBlock", + "src": "13060:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "13062:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "13062:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "13062:79:6" + } + ] }, - "visibility": "internal" - } - ], - "id": 403, - "initialValue": { - "arguments": [ - { - "id": 400, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "2990:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13032:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13040:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "13029:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "13029:30:6" }, - { - "id": 401, - "name": "_getSent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "2997:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" + "nodeType": "YulIf", + "src": "13026:117:6" + }, + { + "nodeType": "YulAssignment", + "src": "13157:73:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13202:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13213:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13198:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13198:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13222:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "13167:30:6" }, + "nodeType": "YulFunctionCall", + "src": "13167:63:6" + }, + "variableNames": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "name": "value3", + "nodeType": "YulIdentifier", + "src": "13157:6:6" } - ], - "id": 399, - "name": "_calcArraySize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 754, - "src": "2975:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$returns$_t_uint256_$", - "typeString": "function (address,bool) view returns (uint256)" - } - }, - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2975:31:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + ] } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2958:48:1" + ] }, { - "assignments": [ - 408 - ], - "declarations": [ + "nodeType": "YulBlock", + "src": "13250:119:6", + "statements": [ { - "constant": false, - "id": 408, - "mutability": "mutable", - "name": "fileName", - "nameLocation": "3029:8:1", - "nodeType": "VariableDeclaration", - "scope": 539, - "src": "3013:24:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" + "nodeType": "YulVariableDeclaration", + "src": "13265:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13279:3:6", + "type": "", + "value": "128" }, - "typeName": { - "baseType": { - "id": 406, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3013:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13269:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13296:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13331:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13342:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13327:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13327:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13351:7:6" } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "13306:20:6" }, - "id": 407, - "nodeType": "ArrayTypeName", - "src": "3013:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } + "nodeType": "YulFunctionCall", + "src": "13306:53:6" }, - "visibility": "internal" + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "13296:6:6" + } + ] } - ], - "id": 414, - "initialValue": { + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11857:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "11868:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11880:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "11888:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "11896:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "11904:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "11912:6:6", + "type": "" + } + ], + "src": "11745:1631:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13447:53:6", + "statements": [ + { + "expression": { "arguments": [ { - "id": 412, - "name": "arraySize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "3053:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 411, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "3040:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (string memory[] memory)" + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13464:3:6" }, - "typeName": { - "baseType": { - "id": 409, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3044:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "13487:5:6" } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "13469:17:6" }, - "id": 410, - "nodeType": "ArrayTypeName", - "src": "3044:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } + "nodeType": "YulFunctionCall", + "src": "13469:24:6" } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13457:6:6" }, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3040:23:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } + "nodeType": "YulFunctionCall", + "src": "13457:37:6" }, - "nodeType": "VariableDeclarationStatement", - "src": "3013:50:1" - }, + "nodeType": "YulExpressionStatement", + "src": "13457:37:6" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "13435:5:6", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13442:3:6", + "type": "" + } + ], + "src": "13382:118:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13604:124:6", + "statements": [ { - "assignments": [ - 419 - ], - "declarations": [ - { - "constant": false, - "id": 419, - "mutability": "mutable", - "name": "ipfsHash", - "nameLocation": "3085:8:1", - "nodeType": "VariableDeclaration", - "scope": 539, - "src": "3069:24:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 417, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3069:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 418, - "nodeType": "ArrayTypeName", - "src": "3069:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - }, - "visibility": "internal" - } - ], - "id": 425, - "initialValue": { + "nodeType": "YulAssignment", + "src": "13614:26:6", + "value": { "arguments": [ { - "id": 423, - "name": "arraySize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "3109:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 422, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "3096:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (string memory[] memory)" + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13626:9:6" }, - "typeName": { - "baseType": { - "id": 420, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3100:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 421, - "nodeType": "ArrayTypeName", - "src": "3100:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13637:2:6", + "type": "", + "value": "32" } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13622:3:6" }, - "id": 424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3096:23:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } + "nodeType": "YulFunctionCall", + "src": "13622:18:6" }, - "nodeType": "VariableDeclarationStatement", - "src": "3069:50:1" + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13614:4:6" + } + ] }, { - "assignments": [ - 430 - ], - "declarations": [ - { - "constant": false, - "id": 430, - "mutability": "mutable", - "name": "senderEncryptedAESKey", - "nameLocation": "3141:21:1", - "nodeType": "VariableDeclaration", - "scope": 539, - "src": "3125:37:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13694:6:6" }, - "typeName": { - "baseType": { - "id": 428, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3125:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13707:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13718:1:6", + "type": "", + "value": "0" } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13703:3:6" }, - "id": 429, - "nodeType": "ArrayTypeName", - "src": "3125:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - }, - "visibility": "internal" - } - ], - "id": 436, - "initialValue": { + "nodeType": "YulFunctionCall", + "src": "13703:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "13650:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "13650:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "13650:71:6" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13576:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13588:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13599:4:6", + "type": "" + } + ], + "src": "13506:222:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13860:206:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13870:26:6", + "value": { "arguments": [ { - "id": 434, - "name": "arraySize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "3178:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13882:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13893:2:6", + "type": "", + "value": "64" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 433, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "3165:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (string memory[] memory)" + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13878:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13878:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13870:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13950:6:6" }, - "typeName": { - "baseType": { - "id": 431, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3169:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13963:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13974:1:6", + "type": "", + "value": "0" } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13959:3:6" }, - "id": 432, - "nodeType": "ArrayTypeName", - "src": "3169:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } + "nodeType": "YulFunctionCall", + "src": "13959:17:6" } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "13906:43:6" }, - "id": 435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3165:23:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } + "nodeType": "YulFunctionCall", + "src": "13906:71:6" }, - "nodeType": "VariableDeclarationStatement", - "src": "3125:63:1" + "nodeType": "YulExpressionStatement", + "src": "13906:71:6" }, { - "assignments": [ - 438 - ], - "declarations": [ - { - "constant": false, - "id": 438, - "mutability": "mutable", - "name": "j", - "nameLocation": "3200:1:1", - "nodeType": "VariableDeclaration", - "scope": 539, - "src": "3195:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14031:6:6" }, - "typeName": { - "id": 437, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3195:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14044:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14055:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14040:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14040:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "13987:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "13987:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "13987:72:6" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13824:9:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "13836:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13844:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13855:4:6", + "type": "" + } + ], + "src": "13734:332:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14100:152:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14117:1:6", + "type": "", + "value": "0" }, - "visibility": "internal" - } - ], - "id": 440, - "initialValue": { - "hexValue": "30", - "id": 439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3204:1:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14120:77:6", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14110:6:6" }, - "value": "0" + "nodeType": "YulFunctionCall", + "src": "14110:88:6" }, - "nodeType": "VariableDeclarationStatement", - "src": "3195:10:1" + "nodeType": "YulExpressionStatement", + "src": "14110:88:6" }, { - "body": { - "id": 532, - "nodeType": "Block", - "src": "3255:542:1", - "statements": [ + "expression": { + "arguments": [ { - "condition": { - "id": 452, - "name": "_getSent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "3266:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 530, - "nodeType": "Block", - "src": "3538:253:1", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 492, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3551:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 494, - "indexExpression": { - "id": 493, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3563:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3551:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 495, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiver", - "nodeType": "MemberAccess", - "referencedDeclaration": 156, - "src": "3551:23:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 496, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "3578:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3551:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 529, - "nodeType": "IfStatement", - "src": "3548:235:1", - "trueBody": { - "id": 528, - "nodeType": "Block", - "src": "3584:199:1", - "statements": [ - { - "expression": { - "id": 505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 498, - "name": "fileName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "3596:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "id": 500, - "indexExpression": { - "id": 499, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "3605:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3596:11:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 501, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 503, - "indexExpression": { - "id": 502, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3622:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3610:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 504, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fileName", - "nodeType": "MemberAccess", - "referencedDeclaration": 146, - "src": "3610:23:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "3596:37:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "id": 506, - "nodeType": "ExpressionStatement", - "src": "3596:37:1" - }, - { - "expression": { - "id": 514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 507, - "name": "ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 419, - "src": "3645:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "id": 509, - "indexExpression": { - "id": 508, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "3654:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3645:11:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 510, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3659:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 512, - "indexExpression": { - "id": 511, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3671:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3659:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 513, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ipfsHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 148, - "src": "3659:23:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "3645:37:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "id": 515, - "nodeType": "ExpressionStatement", - "src": "3645:37:1" - }, - { - "expression": { - "id": 523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 516, - "name": "senderEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "3694:21:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "id": 518, - "indexExpression": { - "id": 517, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "3716:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3694:24:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 519, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3721:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 521, - "indexExpression": { - "id": 520, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3733:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3721:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 522, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "senderEncryptedAESKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 150, - "src": "3721:36:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "3694:63:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "id": 524, - "nodeType": "ExpressionStatement", - "src": "3694:63:1" - }, - { - "expression": { - "id": 526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3769:3:1", - "subExpression": { - "id": 525, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "3769:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 527, - "nodeType": "ExpressionStatement", - "src": "3769:3:1" - } - ] - } - } - ] - }, - "id": 531, - "nodeType": "IfStatement", - "src": "3263:528:1", - "trueBody": { - "id": 491, - "nodeType": "Block", - "src": "3275:251:1", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 453, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3288:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 455, - "indexExpression": { - "id": 454, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3300:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3288:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 456, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": 154, - "src": "3288:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 457, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "3313:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3288:30:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 490, - "nodeType": "IfStatement", - "src": "3285:233:1", - "trueBody": { - "id": 489, - "nodeType": "Block", - "src": "3319:199:1", - "statements": [ - { - "expression": { - "id": 466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 459, - "name": "fileName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "3331:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "id": 461, - "indexExpression": { - "id": 460, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "3340:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3331:11:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 462, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3345:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 464, - "indexExpression": { - "id": 463, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3357:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3345:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 465, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fileName", - "nodeType": "MemberAccess", - "referencedDeclaration": 146, - "src": "3345:23:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "3331:37:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "id": 467, - "nodeType": "ExpressionStatement", - "src": "3331:37:1" - }, - { - "expression": { - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 468, - "name": "ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 419, - "src": "3380:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "id": 470, - "indexExpression": { - "id": 469, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "3389:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3380:11:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 471, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3394:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 473, - "indexExpression": { - "id": 472, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3406:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3394:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 474, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ipfsHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 148, - "src": "3394:23:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "3380:37:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "3380:37:1" - }, - { - "expression": { - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 477, - "name": "senderEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "3429:21:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "id": 479, - "indexExpression": { - "id": 478, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "3451:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3429:24:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 480, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 482, - "indexExpression": { - "id": 481, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3468:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3456:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 483, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "senderEncryptedAESKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 150, - "src": "3456:36:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "3429:63:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "id": 485, - "nodeType": "ExpressionStatement", - "src": "3429:63:1" - }, - { - "expression": { - "id": 487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3504:3:1", - "subExpression": { - "id": 486, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "3504:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 488, - "nodeType": "ExpressionStatement", - "src": "3504:3:1" - } - ] - } - } - ] - } - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 445, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3227:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 446, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3231:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } + "kind": "number", + "nodeType": "YulLiteral", + "src": "14214:1:6", + "type": "", + "value": "4" }, - "id": 447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "3231:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14217:4:6", + "type": "", + "value": "0x32" } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14207:6:6" }, - "src": "3227:22:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "nodeType": "YulFunctionCall", + "src": "14207:15:6" }, - "id": 533, - "initializationExpression": { - "assignments": [ - 442 - ], - "declarations": [ + "nodeType": "YulExpressionStatement", + "src": "14207:15:6" + }, + { + "expression": { + "arguments": [ { - "constant": false, - "id": 442, - "mutability": "mutable", - "name": "i", - "nameLocation": "3220:1:1", - "nodeType": "VariableDeclaration", - "scope": 533, - "src": "3215:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 441, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3215:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" + "kind": "number", + "nodeType": "YulLiteral", + "src": "14238:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14241:4:6", + "type": "", + "value": "0x24" } ], - "id": 444, - "initialValue": { - "hexValue": "30", - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3224:1:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14231:6:6" }, - "nodeType": "VariableDeclarationStatement", - "src": "3215:10:1" + "nodeType": "YulFunctionCall", + "src": "14231:15:6" }, - "loopExpression": { - "expression": { - "id": 450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3251:3:1", - "subExpression": { - "id": 449, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3251:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "nodeType": "YulExpressionStatement", + "src": "14231:15:6" + } + ] + }, + "name": "panic_error_0x32", + "nodeType": "YulFunctionDefinition", + "src": "14072:180:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14286:152:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14303:1:6", + "type": "", + "value": "0" }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14306:77:6", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14296:6:6" }, - "id": 451, - "nodeType": "ExpressionStatement", - "src": "3251:3:1" + "nodeType": "YulFunctionCall", + "src": "14296:88:6" }, - "nodeType": "ForStatement", - "src": "3211:586:1" + "nodeType": "YulExpressionStatement", + "src": "14296:88:6" }, { "expression": { - "components": [ + "arguments": [ { - "id": 534, - "name": "fileName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "3820:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } + "kind": "number", + "nodeType": "YulLiteral", + "src": "14400:1:6", + "type": "", + "value": "4" }, { - "id": 535, - "name": "ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 419, - "src": "3837:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } + "kind": "number", + "nodeType": "YulLiteral", + "src": "14403:4:6", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14393:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "14393:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14393:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14424:1:6", + "type": "", + "value": "0" }, { - "id": 536, - "name": "senderEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "3854:21:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } + "kind": "number", + "nodeType": "YulLiteral", + "src": "14427:4:6", + "type": "", + "value": "0x24" } ], - "id": 537, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3812:69:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", - "typeString": "tuple(string memory[] memory,string memory[] memory,string memory[] memory)" - } + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14417:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "14417:15:6" }, - "functionReturnParameters": 396, - "id": 538, - "nodeType": "Return", - "src": "3805:76:1" + "nodeType": "YulExpressionStatement", + "src": "14417:15:6" } ] }, - "id": 540, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_findFiles1", - "nameLocation": "2807:11:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 386, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 383, - "mutability": "mutable", - "name": "_user", - "nameLocation": "2832:5:1", - "nodeType": "VariableDeclaration", - "scope": 540, - "src": "2824:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 382, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2824:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "14258:180:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14489:32:6", + "statements": [ { - "constant": false, - "id": 385, - "mutability": "mutable", - "name": "_getSent", - "nameLocation": "2849:8:1", - "nodeType": "VariableDeclaration", - "scope": 540, - "src": "2844:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "nodeType": "YulAssignment", + "src": "14499:16:6", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14510:5:6" }, - "typeName": { - "id": 384, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2844:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "14499:7:6" } - }, - "visibility": "internal" + ] } - ], - "src": "2818:43:1" + ] }, - "returnParameters": { - "id": 396, - "nodeType": "ParameterList", - "parameters": [ + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "14471:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "14481:7:6", + "type": "" + } + ], + "src": "14444:77:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14570:190:6", + "statements": [ { - "constant": false, - "id": 389, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 540, - "src": "2889:15:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 387, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2889:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "nodeType": "YulAssignment", + "src": "14580:33:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14607:5:6" } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "14589:17:6" }, - "id": 388, - "nodeType": "ArrayTypeName", - "src": "2889:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } + "nodeType": "YulFunctionCall", + "src": "14589:24:6" }, - "visibility": "internal" + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14580:5:6" + } + ] }, { - "constant": false, - "id": 392, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 540, - "src": "2910:15:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" + "body": { + "nodeType": "YulBlock", + "src": "14703:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "14705:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "14705:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14705:18:6" + } + ] }, - "typeName": { - "baseType": { - "id": 390, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2910:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14628:5:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14635:66:6", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "14625:2:6" }, - "id": 391, - "nodeType": "ArrayTypeName", - "src": "2910:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } + "nodeType": "YulFunctionCall", + "src": "14625:77:6" }, - "visibility": "internal" + "nodeType": "YulIf", + "src": "14622:103:6" }, { - "constant": false, - "id": 395, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 540, - "src": "2931:15:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 393, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2931:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "nodeType": "YulAssignment", + "src": "14734:20:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14745:5:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14752:1:6", + "type": "", + "value": "1" } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14741:3:6" }, - "id": 394, - "nodeType": "ArrayTypeName", - "src": "2931:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } + "nodeType": "YulFunctionCall", + "src": "14741:13:6" }, - "visibility": "internal" + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "14734:3:6" + } + ] } - ], - "src": "2883:67:1" + ] }, - "scope": 755, - "src": "2798:1088:1", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 698, - "nodeType": "Block", - "src": "4045:934:1", - "statements": [ + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "14556:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "14566:3:6", + "type": "" + } + ], + "src": "14527:233:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14794:152:6", + "statements": [ { - "assignments": [ - 557 - ], - "declarations": [ - { - "constant": false, - "id": 557, - "mutability": "mutable", - "name": "arraySize", - "nameLocation": "4056:9:1", - "nodeType": "VariableDeclaration", - "scope": 698, - "src": "4051:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4051:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 562, - "initialValue": { + "expression": { "arguments": [ { - "id": 559, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 542, - "src": "4083:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "kind": "number", + "nodeType": "YulLiteral", + "src": "14811:1:6", + "type": "", + "value": "0" }, { - "id": 560, - "name": "_getSent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 544, - "src": "4090:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "kind": "number", + "nodeType": "YulLiteral", + "src": "14814:77:6", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 558, - "name": "_calcArraySize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 754, - "src": "4068:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$returns$_t_uint256_$", - "typeString": "function (address,bool) view returns (uint256)" - } + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14804:6:6" }, - "id": 561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4068:31:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "nodeType": "YulFunctionCall", + "src": "14804:88:6" }, - "nodeType": "VariableDeclarationStatement", - "src": "4051:48:1" + "nodeType": "YulExpressionStatement", + "src": "14804:88:6" }, { - "assignments": [ - 567 - ], - "declarations": [ - { - "constant": false, - "id": 567, - "mutability": "mutable", - "name": "receiverEncryptedAESKey", - "nameLocation": "4122:23:1", - "nodeType": "VariableDeclaration", - "scope": 698, - "src": "4106:39:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 565, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4106:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 566, - "nodeType": "ArrayTypeName", - "src": "4106:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - }, - "visibility": "internal" - } - ], - "id": 573, - "initialValue": { + "expression": { "arguments": [ { - "id": 571, - "name": "arraySize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 557, - "src": "4161:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 570, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "4148:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (string memory[] memory)" + "kind": "number", + "nodeType": "YulLiteral", + "src": "14908:1:6", + "type": "", + "value": "4" }, - "typeName": { - "baseType": { - "id": 568, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4152:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 569, - "nodeType": "ArrayTypeName", - "src": "4152:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14911:4:6", + "type": "", + "value": "0x22" } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14901:6:6" }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4148:23:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } + "nodeType": "YulFunctionCall", + "src": "14901:15:6" }, - "nodeType": "VariableDeclarationStatement", - "src": "4106:65:1" + "nodeType": "YulExpressionStatement", + "src": "14901:15:6" }, { - "assignments": [ - 578 - ], - "declarations": [ - { - "constant": false, - "id": 578, - "mutability": "mutable", - "name": "sender", - "nameLocation": "4194:6:1", - "nodeType": "VariableDeclaration", - "scope": 698, - "src": "4177:23:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 576, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4177:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 577, - "nodeType": "ArrayTypeName", - "src": "4177:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - } - ], - "id": 584, - "initialValue": { + "expression": { "arguments": [ { - "id": 582, - "name": "arraySize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 557, - "src": "4217:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "kind": "number", + "nodeType": "YulLiteral", + "src": "14932:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14935:4:6", + "type": "", + "value": "0x24" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 581, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "4203:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4207:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 580, - "nodeType": "ArrayTypeName", - "src": "4207:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14925:6:6" }, - "id": 583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4203:24:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } + "nodeType": "YulFunctionCall", + "src": "14925:15:6" }, - "nodeType": "VariableDeclarationStatement", - "src": "4177:50:1" - }, + "nodeType": "YulExpressionStatement", + "src": "14925:15:6" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "14766:180:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15003:269:6", + "statements": [ { - "assignments": [ - 589 - ], - "declarations": [ - { - "constant": false, - "id": 589, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "4250:8:1", - "nodeType": "VariableDeclaration", - "scope": 698, - "src": "4233:25:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 587, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4233:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 588, - "nodeType": "ArrayTypeName", - "src": "4233:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - } - ], - "id": 595, - "initialValue": { + "nodeType": "YulAssignment", + "src": "15013:22:6", + "value": { "arguments": [ { - "id": 593, - "name": "arraySize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 557, - "src": "4275:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "4261:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (address[] memory)" + "name": "data", + "nodeType": "YulIdentifier", + "src": "15027:4:6" }, - "typeName": { - "baseType": { - "id": 590, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4265:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 591, - "nodeType": "ArrayTypeName", - "src": "4265:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15033:1:6", + "type": "", + "value": "2" } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "15023:3:6" }, - "id": 594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4261:24:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } + "nodeType": "YulFunctionCall", + "src": "15023:12:6" }, - "nodeType": "VariableDeclarationStatement", - "src": "4233:52:1" + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15013:6:6" + } + ] }, { - "assignments": [ - 597 - ], - "declarations": [ - { - "constant": false, - "id": 597, - "mutability": "mutable", - "name": "j", - "nameLocation": "4297:1:1", - "nodeType": "VariableDeclaration", - "scope": 698, - "src": "4292:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 596, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4292:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "nodeType": "YulVariableDeclaration", + "src": "15044:38:6", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "15074:4:6" }, - "visibility": "internal" - } - ], - "id": 599, - "initialValue": { - "hexValue": "30", - "id": 598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4301:1:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15080:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "15070:3:6" }, - "value": "0" + "nodeType": "YulFunctionCall", + "src": "15070:12:6" }, - "nodeType": "VariableDeclarationStatement", - "src": "4292:10:1" + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "15048:18:6", + "type": "" + } + ] }, { "body": { - "id": 691, - "nodeType": "Block", - "src": "4352:542:1", + "nodeType": "YulBlock", + "src": "15121:51:6", "statements": [ { - "condition": { - "id": 611, - "name": "_getSent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 544, - "src": "4363:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 689, - "nodeType": "Block", - "src": "4635:253:1", - "statements": [ + "nodeType": "YulAssignment", + "src": "15135:27:6", + "value": { + "arguments": [ { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 651, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4648:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 653, - "indexExpression": { - "id": 652, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4660:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4648:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 654, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiver", - "nodeType": "MemberAccess", - "referencedDeclaration": 156, - "src": "4648:23:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 655, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 542, - "src": "4675:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4648:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 688, - "nodeType": "IfStatement", - "src": "4645:235:1", - "trueBody": { - "id": 687, - "nodeType": "Block", - "src": "4681:199:1", - "statements": [ - { - "expression": { - "id": 664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 657, - "name": "receiverEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 567, - "src": "4693:23:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "id": 659, - "indexExpression": { - "id": 658, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "4717:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4693:26:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 660, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4722:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 662, - "indexExpression": { - "id": 661, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4734:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4722:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 663, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiverEncryptedAESKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 152, - "src": "4722:38:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "4693:67:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "id": 665, - "nodeType": "ExpressionStatement", - "src": "4693:67:1" - }, - { - "expression": { - "id": 673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 666, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 578, - "src": "4772:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 668, - "indexExpression": { - "id": 667, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "4779:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4772:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 669, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4784:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 671, - "indexExpression": { - "id": 670, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4796:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4784:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 672, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": 154, - "src": "4784:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4772:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 674, - "nodeType": "ExpressionStatement", - "src": "4772:33:1" - }, - { - "expression": { - "id": 682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 675, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "4817:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 677, - "indexExpression": { - "id": 676, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "4826:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4817:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 678, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4831:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 680, - "indexExpression": { - "id": 679, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4843:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4831:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 681, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiver", - "nodeType": "MemberAccess", - "referencedDeclaration": 156, - "src": "4831:23:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4817:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 683, - "nodeType": "ExpressionStatement", - "src": "4817:37:1" - }, - { - "expression": { - "id": 685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4866:3:1", - "subExpression": { - "id": 684, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "4866:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 686, - "nodeType": "ExpressionStatement", - "src": "4866:3:1" - } - ] - } - } - ] - }, - "id": 690, - "nodeType": "IfStatement", - "src": "4360:528:1", - "trueBody": { - "id": 650, - "nodeType": "Block", - "src": "4372:251:1", - "statements": [ + "name": "length", + "nodeType": "YulIdentifier", + "src": "15149:6:6" + }, { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 612, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4385:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 614, - "indexExpression": { - "id": 613, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4397:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4385:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 615, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": 154, - "src": "4385:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 616, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 542, - "src": "4410:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4385:30:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 649, - "nodeType": "IfStatement", - "src": "4382:233:1", - "trueBody": { - "id": 648, - "nodeType": "Block", - "src": "4416:199:1", - "statements": [ - { - "expression": { - "id": 625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 618, - "name": "receiverEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 567, - "src": "4428:23:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "id": 620, - "indexExpression": { - "id": 619, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "4452:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4428:26:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 621, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4457:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 623, - "indexExpression": { - "id": 622, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4469:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4457:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 624, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiverEncryptedAESKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 152, - "src": "4457:38:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "4428:67:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "id": 626, - "nodeType": "ExpressionStatement", - "src": "4428:67:1" - }, - { - "expression": { - "id": 634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 627, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 578, - "src": "4507:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 629, - "indexExpression": { - "id": 628, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "4514:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4507:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 630, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4519:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 632, - "indexExpression": { - "id": 631, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4531:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4519:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 633, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": 154, - "src": "4519:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4507:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 635, - "nodeType": "ExpressionStatement", - "src": "4507:33:1" - }, - { - "expression": { - "id": 643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 636, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "4552:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 638, - "indexExpression": { - "id": 637, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "4561:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4552:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 639, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4566:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 641, - "indexExpression": { - "id": 640, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4578:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4566:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 642, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiver", - "nodeType": "MemberAccess", - "referencedDeclaration": 156, - "src": "4566:23:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4552:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 644, - "nodeType": "ExpressionStatement", - "src": "4552:37:1" - }, - { - "expression": { - "id": 646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4601:3:1", - "subExpression": { - "id": 645, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "4601:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 647, - "nodeType": "ExpressionStatement", - "src": "4601:3:1" - } - ] - } + "kind": "number", + "nodeType": "YulLiteral", + "src": "15157:4:6", + "type": "", + "value": "0x7f" } - ] - } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "15145:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15145:17:6" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15135:6:6" + } + ] } ] }, "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 604, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4324:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 605, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4328:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "4328:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "15101:18:6" } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "15094:6:6" }, - "src": "4324:22:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "nodeType": "YulFunctionCall", + "src": "15094:26:6" }, - "id": 692, - "initializationExpression": { - "assignments": [ - 601 - ], - "declarations": [ + "nodeType": "YulIf", + "src": "15091:81:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15224:42:6", + "statements": [ { - "constant": false, - "id": 601, - "mutability": "mutable", - "name": "i", - "nameLocation": "4317:1:1", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "4312:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 600, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4312:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "15238:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "15238:18:6" }, - "visibility": "internal" + "nodeType": "YulExpressionStatement", + "src": "15238:18:6" } - ], - "id": 603, - "initialValue": { - "hexValue": "30", - "id": 602, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4321:1:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "4312:10:1" - }, - "loopExpression": { - "expression": { - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4348:3:1", - "subExpression": { - "id": 608, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4348:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 610, - "nodeType": "ExpressionStatement", - "src": "4348:3:1" + ] }, - "nodeType": "ForStatement", - "src": "4308:586:1" - }, - { - "expression": { - "components": [ - { - "id": 693, - "name": "receiverEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 567, - "src": "4915:23:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, + "condition": { + "arguments": [ { - "id": 694, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 578, - "src": "4946:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "15188:18:6" }, { - "id": 695, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "4960:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15211:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15219:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "15208:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "15208:14:6" } ], - "id": 696, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4907:67:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "tuple(string memory[] memory,address[] memory,address[] memory)" - } + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "15185:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "15185:38:6" }, - "functionReturnParameters": 555, - "id": 697, - "nodeType": "Return", - "src": "4900:74:1" + "nodeType": "YulIf", + "src": "15182:84:6" } ] }, - "id": 699, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_findFiles2", - "nameLocation": "3899:11:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 545, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 542, - "mutability": "mutable", - "name": "_user", - "nameLocation": "3924:5:1", - "nodeType": "VariableDeclaration", - "scope": 699, - "src": "3916:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 541, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3916:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 544, - "mutability": "mutable", - "name": "_getSent", - "nameLocation": "3941:8:1", - "nodeType": "VariableDeclaration", - "scope": 699, - "src": "3936:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 543, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3936:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "3910:43:1" - }, - "returnParameters": { - "id": 555, - "nodeType": "ParameterList", - "parameters": [ + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "14987:4:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "14996:6:6", + "type": "" + } + ], + "src": "14952:320:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15322:261:6", + "statements": [ { - "constant": false, - "id": 548, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 699, - "src": "3981:15:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 546, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3981:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "nodeType": "YulAssignment", + "src": "15332:25:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15355:1:6" } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15337:17:6" }, - "id": 547, - "nodeType": "ArrayTypeName", - "src": "3981:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } + "nodeType": "YulFunctionCall", + "src": "15337:20:6" }, - "visibility": "internal" + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15332:1:6" + } + ] }, { - "constant": false, - "id": 551, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 699, - "src": "4002:16:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 549, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4002:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "nodeType": "YulAssignment", + "src": "15366:25:6", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15389:1:6" } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15371:17:6" }, - "id": 550, - "nodeType": "ArrayTypeName", - "src": "4002:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } + "nodeType": "YulFunctionCall", + "src": "15371:20:6" }, - "visibility": "internal" + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15366:1:6" + } + ] }, { - "constant": false, - "id": 554, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 699, - "src": "4024:16:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" + "body": { + "nodeType": "YulBlock", + "src": "15529:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "15531:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "15531:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15531:18:6" + } + ] }, - "typeName": { - "baseType": { - "id": 552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4024:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15450:1:6" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15457:66:6", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15525:1:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15453:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15453:74:6" } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "15447:2:6" }, - "id": 553, - "nodeType": "ArrayTypeName", - "src": "4024:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } + "nodeType": "YulFunctionCall", + "src": "15447:81:6" }, - "visibility": "internal" - } - ], - "src": "3975:69:1" - }, - "scope": 755, - "src": "3890:1089:1", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 753, - "nodeType": "Block", - "src": "5063:292:1", - "statements": [ + "nodeType": "YulIf", + "src": "15444:107:6" + }, { - "assignments": [ - 709 - ], - "declarations": [ - { - "constant": false, - "id": 709, - "mutability": "mutable", - "name": "size", - "nameLocation": "5074:4:1", - "nodeType": "VariableDeclaration", - "scope": 753, - "src": "5069:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 708, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5069:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "nodeType": "YulAssignment", + "src": "15561:16:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15572:1:6" }, - "visibility": "internal" - } - ], - "id": 711, - "initialValue": { - "hexValue": "30", - "id": 710, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5081:1:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15575:1:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15568:3:6" }, - "value": "0" + "nodeType": "YulFunctionCall", + "src": "15568:9:6" }, - "nodeType": "VariableDeclarationStatement", - "src": "5069:13:1" + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "15561:3:6" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "15309:1:6", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "15312:1:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "15318:3:6", + "type": "" + } + ], + "src": "15278:305:6" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_string_memory_ptr_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encodeUpdatedPos_t_string_memory_ptr_to_t_string_memory_ptr(value0, pos) -> updatedPos {\n updatedPos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value0, pos)\n }\n\n function array_nextElement_t_array$_t_string_memory_ptr_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // string[] -> string[]\n function abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(pos, length)\n let headStart := pos\n let tail := add(pos, mul(length, 0x20))\n let baseRef := array_dataslot_t_array$_t_string_memory_ptr_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, sub(tail, headStart))\n let elementValue0 := mload(srcPtr)\n tail := abi_encodeUpdatedPos_t_string_memory_ptr_to_t_string_memory_ptr(elementValue0, tail)\n srcPtr := array_nextElement_t_array$_t_string_memory_ptr_$dyn_memory_ptr(srcPtr)\n pos := add(pos, 0x20)\n }\n pos := tail\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr__to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(value1, tail)\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(value2, tail)\n\n }\n\n function array_length_t_array$_t_address_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_address_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encodeUpdatedPos_t_address_to_t_address(value0, pos) -> updatedPos {\n abi_encode_t_address_to_t_address(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_address_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // address[] -> address[]\n function abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_address_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_address_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_address_to_t_address(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_address_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value1, tail)\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value2, tail)\n\n }\n\n function abi_encode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart , value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 192)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(value1, tail)\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value4, tail)\n\n mstore(add(headStart, 160), sub(tail, headStart))\n tail := abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value5, tail)\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_string_memory_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n}\n", + "id": 6, + "language": "Yul", + "name": "#utility.yul" + } + ], + "sourceMap": "68:4857:3:-:0;;;342:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;400:6;392:5;;:14;;;;;;;;;;;;;;;;;;420:6;412:5;;:14;;;;;;;;;;;;;;;;;;342:89;;68:4857;;88:117:6;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:507::-;924:6;932;981:2;969:9;960:7;956:23;952:32;949:119;;;987:79;;:::i;:::-;949:119;1107:1;1132:64;1188:7;1179:6;1168:9;1164:22;1132:64;:::i;:::-;1122:74;;1078:128;1245:2;1271:64;1327:7;1318:6;1307:9;1303:22;1271:64;:::i;:::-;1261:74;;1216:129;845:507;;;;;:::o;68:4857:3:-;;;;;;;", + "deployedSourceMap": "68:4857:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1285:963;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;2250:969;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;3323:1087;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;539:326;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;119:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3223:96;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1285:963;1366:15;1387;1408;1435:14;1463:6;1459:166;1479:11;:18;;;;1475:1;:22;1459:166;;;1541:6;1516:31;;:11;1528:1;1516:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:21;;;;;;;;;;;;:31;;;:68;;;;;1578:6;1551:33;;:11;1563:1;1551:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;;;;;;;;;;:33;;;1516:68;1513:106;;;1597:11;;;;;:::i;:::-;;;;1513:106;1499:3;;;;;:::i;:::-;;;;1459:166;;;;1631:24;1671:9;1658:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:50;;1687:24;1727:9;1714:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1687:50;;1743:37;1796:9;1783:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1743:63;;1813:6;1833;1829:334;1849:11;:18;;;;1845:1;:22;1829:334;;;1911:6;1886:31;;:11;1898:1;1886:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:21;;;;;;;;;;;;:31;;;:68;;;;;1948:6;1921:33;;:11;1933:1;1921:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;;;;;;;;;;:33;;;1886:68;1883:274;;;1981:11;1993:1;1981:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;1967:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:8;1976:1;1967:11;;;;;;;;:::i;:::-;;;;;;;:37;;;;2030:11;2042:1;2030:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;2016:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:8;2025:1;2016:11;;;;;;;;:::i;:::-;;;;;;;:37;;;;2092:11;2104:1;2092:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;2065:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;2087:1;2065:24;;;;;;;;:::i;:::-;;;;;;;:63;;;;2145:1;2140:6;;;;;:::i;:::-;;;1883:274;1869:3;;;;;:::i;:::-;;;;1829:334;;;;2184:8;2200;2216:21;2169:74;;;;;;;;;;;1285:963;;;;;:::o;2250:969::-;2331:15;2352:16;2374;2402:14;2430:6;2426:166;2446:11;:18;;;;2442:1;:22;2426:166;;;2508:6;2483:31;;:11;2495:1;2483:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:21;;;;;;;;;;;;:31;;;:68;;;;;2545:6;2518:33;;:11;2530:1;2518:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;;;;;;;;;;:33;;;2483:68;2480:106;;;2564:11;;;;;:::i;:::-;;;;2480:106;2466:3;;;;;:::i;:::-;;;;2426:166;;;;2598:39;2653:9;2640:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2598:65;;2669:23;2709:9;2695:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2669:50;;2725:25;2767:9;2753:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2725:52;;2784:6;2804;2800:334;2820:11;:18;;;;2816:1;:22;2800:334;;;2882:6;2857:31;;:11;2869:1;2857:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:21;;;;;;;;;;;;:31;;;:68;;;;;2919:6;2892:33;;:11;2904:1;2892:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;;;;;;;;;;:33;;;2857:68;2854:274;;;2967:11;2979:1;2967:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;2938:67;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;2962:1;2938:26;;;;;;;;:::i;:::-;;;;;;;:67;;;;3029:11;3041:1;3029:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:21;;;;;;;;;;;;3017:6;3024:1;3017:9;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;3076:11;3088:1;3076:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;;;;;;;;;;3062:8;3071:1;3062:11;;;;;;;;:::i;:::-;;;;;;;:37;;;;;;;;;;;3116:1;3111:6;;;;;:::i;:::-;;;2854:274;2840:3;;;;;:::i;:::-;;;;2800:334;;;;3155:23;3186:6;3200:8;3140:74;;;;;;;;;;;2250:969;;;;;:::o;3323:1087::-;3370:15;3391;3412;3433;3454:16;3476;3502:24;3542:11;:18;;;;3529:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3502:59;;3567:24;3607:11;:18;;;;3594:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3567:59;;3632:37;3685:11;:18;;;;3672:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3632:72;;3710:39;3765:11;:18;;;;3752:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3710:74;;3790:23;3830:11;:18;;;;3816:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3790:59;;3855:25;3897:11;:18;;;;3883:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3855:61;;3927:6;3922:387;3943:11;:18;;;;3939:1;:22;3922:387;;;3992:11;4004:1;3992:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;3978:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:8;3987:1;3978:11;;;;;;;;:::i;:::-;;;;;;;:37;;;;4039:11;4051:1;4039:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;4025:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:8;4034:1;4025:11;;;;;;;;:::i;:::-;;;;;;;:37;;;;4099:11;4111:1;4099:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;4072:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;4094:1;4072:24;;;;;;;;:::i;:::-;;;;;;;:63;;;;4174:11;4186:1;4174:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;4145:67;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;4169:1;4145:26;;;;;;;;:::i;:::-;;;;;;;:67;;;;4234:11;4246:1;4234:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:21;;;;;;;;;;;;4222:6;4229:1;4222:9;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;4279:11;4291:1;4279:14;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;;;;;;;;;;4265:8;4274:1;4265:11;;;;;;;;:::i;:::-;;;;;;;:37;;;;;;;;;;;3963:3;;;;;:::i;:::-;;;;3922:387;;;;4322:8;4332;4341:21;4364:23;4388:6;4396:8;4314:91;;;;;;;;;;;;;;;;;;3323:1087;;;;;;:::o;539:326::-;491:5;;;;;;;;;;477:19;;:10;:19;;;476:46;;;;516:5;;;;;;;;;;;502:19;;:10;:19;;;476:46;468:55;;;;;;757:103:::1;766:9;777;788:22;812:24;838:10;850:9;757:8;:103::i;:::-;539:326:::0;;;;;:::o;119:20::-;;;;;;;;;;;;;:::o;95:::-;;;;;;;;;;;;:::o;3223:96::-;3270:7;3279;3301:5;;;;;;;;;;3308;;;;;;;;;;;3293:21;;;;3223:96;;:::o;4414:508::-;4638:19;4660:226;;;;;;;;4683:9;4660:226;;;;4710:9;4660:226;;;;4750:22;4660:226;;;;4805:24;4660:226;;;;4845:7;4660:226;;;;;;4870:9;4660:226;;;;;4638:248;;4892:11;4909:7;4892:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4632:290;4414:508;;;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:6:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:474::-;909:6;917;966:2;954:9;945:7;941:23;937:32;934:119;;;972:79;;:::i;:::-;934:119;1092:1;1117:53;1162:7;1153:6;1142:9;1138:22;1117:53;:::i;:::-;1107:63;;1063:117;1219:2;1245:53;1290:7;1281:6;1270:9;1266:22;1245:53;:::i;:::-;1235:63;;1190:118;841:474;;;;;:::o;1321:124::-;1398:6;1432:5;1426:12;1416:22;;1321:124;;;:::o;1451:194::-;1560:11;1594:6;1589:3;1582:19;1634:4;1629:3;1625:14;1610:29;;1451:194;;;;:::o;1651:142::-;1728:4;1751:3;1743:11;;1781:4;1776:3;1772:14;1764:22;;1651:142;;;:::o;1799:99::-;1851:6;1885:5;1879:12;1869:22;;1799:99;;;:::o;1904:159::-;1978:11;2012:6;2007:3;2000:19;2052:4;2047:3;2043:14;2028:29;;1904:159;;;;:::o;2069:307::-;2137:1;2147:113;2161:6;2158:1;2155:13;2147:113;;;2246:1;2241:3;2237:11;2231:18;2227:1;2222:3;2218:11;2211:39;2183:2;2180:1;2176:10;2171:15;;2147:113;;;2278:6;2275:1;2272:13;2269:101;;;2358:1;2349:6;2344:3;2340:16;2333:27;2269:101;2118:258;2069:307;;;:::o;2382:102::-;2423:6;2474:2;2470:7;2465:2;2458:5;2454:14;2450:28;2440:38;;2382:102;;;:::o;2490:344::-;2568:3;2596:39;2629:5;2596:39;:::i;:::-;2651:61;2705:6;2700:3;2651:61;:::i;:::-;2644:68;;2721:52;2766:6;2761:3;2754:4;2747:5;2743:16;2721:52;:::i;:::-;2798:29;2820:6;2798:29;:::i;:::-;2793:3;2789:39;2782:46;;2572:262;2490:344;;;;:::o;2840:196::-;2929:10;2964:66;3026:3;3018:6;2964:66;:::i;:::-;2950:80;;2840:196;;;;:::o;3042:123::-;3122:4;3154;3149:3;3145:14;3137:22;;3042:123;;;:::o;3199:991::-;3338:3;3367:64;3425:5;3367:64;:::i;:::-;3447:96;3536:6;3531:3;3447:96;:::i;:::-;3440:103;;3569:3;3614:4;3606:6;3602:17;3597:3;3593:27;3644:66;3704:5;3644:66;:::i;:::-;3733:7;3764:1;3749:396;3774:6;3771:1;3768:13;3749:396;;;3845:9;3839:4;3835:20;3830:3;3823:33;3896:6;3890:13;3924:84;4003:4;3988:13;3924:84;:::i;:::-;3916:92;;4031:70;4094:6;4031:70;:::i;:::-;4021:80;;4130:4;4125:3;4121:14;4114:21;;3809:336;3796:1;3793;3789:9;3784:14;;3749:396;;;3753:14;4161:4;4154:11;;4181:3;4174:10;;3343:847;;;;;3199:991;;;;:::o;4196:1015::-;4555:4;4593:2;4582:9;4578:18;4570:26;;4642:9;4636:4;4632:20;4628:1;4617:9;4613:17;4606:47;4670:128;4793:4;4784:6;4670:128;:::i;:::-;4662:136;;4845:9;4839:4;4835:20;4830:2;4819:9;4815:18;4808:48;4873:128;4996:4;4987:6;4873:128;:::i;:::-;4865:136;;5048:9;5042:4;5038:20;5033:2;5022:9;5018:18;5011:48;5076:128;5199:4;5190:6;5076:128;:::i;:::-;5068:136;;4196:1015;;;;;;:::o;5217:114::-;5284:6;5318:5;5312:12;5302:22;;5217:114;;;:::o;5337:184::-;5436:11;5470:6;5465:3;5458:19;5510:4;5505:3;5501:14;5486:29;;5337:184;;;;:::o;5527:132::-;5594:4;5617:3;5609:11;;5647:4;5642:3;5638:14;5630:22;;5527:132;;;:::o;5665:108::-;5742:24;5760:5;5742:24;:::i;:::-;5737:3;5730:37;5665:108;;:::o;5779:179::-;5848:10;5869:46;5911:3;5903:6;5869:46;:::i;:::-;5947:4;5942:3;5938:14;5924:28;;5779:179;;;;:::o;5964:113::-;6034:4;6066;6061:3;6057:14;6049:22;;5964:113;;;:::o;6113:732::-;6232:3;6261:54;6309:5;6261:54;:::i;:::-;6331:86;6410:6;6405:3;6331:86;:::i;:::-;6324:93;;6441:56;6491:5;6441:56;:::i;:::-;6520:7;6551:1;6536:284;6561:6;6558:1;6555:13;6536:284;;;6637:6;6631:13;6664:63;6723:3;6708:13;6664:63;:::i;:::-;6657:70;;6750:60;6803:6;6750:60;:::i;:::-;6740:70;;6596:224;6583:1;6580;6576:9;6571:14;;6536:284;;;6540:14;6836:3;6829:10;;6237:608;;;6113:732;;;;:::o;6851:935::-;7170:4;7208:2;7197:9;7193:18;7185:26;;7257:9;7251:4;7247:20;7243:1;7232:9;7228:17;7221:47;7285:128;7408:4;7399:6;7285:128;:::i;:::-;7277:136;;7460:9;7454:4;7450:20;7445:2;7434:9;7430:18;7423:48;7488:108;7591:4;7582:6;7488:108;:::i;:::-;7480:116;;7643:9;7637:4;7633:20;7628:2;7617:9;7613:18;7606:48;7671:108;7774:4;7765:6;7671:108;:::i;:::-;7663:116;;6851:935;;;;;;:::o;7792:1841::-;8405:4;8443:3;8432:9;8428:19;8420:27;;8493:9;8487:4;8483:20;8479:1;8468:9;8464:17;8457:47;8521:128;8644:4;8635:6;8521:128;:::i;:::-;8513:136;;8696:9;8690:4;8686:20;8681:2;8670:9;8666:18;8659:48;8724:128;8847:4;8838:6;8724:128;:::i;:::-;8716:136;;8899:9;8893:4;8889:20;8884:2;8873:9;8869:18;8862:48;8927:128;9050:4;9041:6;8927:128;:::i;:::-;8919:136;;9102:9;9096:4;9092:20;9087:2;9076:9;9072:18;9065:48;9130:128;9253:4;9244:6;9130:128;:::i;:::-;9122:136;;9306:9;9300:4;9296:20;9290:3;9279:9;9275:19;9268:49;9334:108;9437:4;9428:6;9334:108;:::i;:::-;9326:116;;9490:9;9484:4;9480:20;9474:3;9463:9;9459:19;9452:49;9518:108;9621:4;9612:6;9518:108;:::i;:::-;9510:116;;7792:1841;;;;;;;;;:::o;9639:117::-;9748:1;9745;9738:12;9762:117;9871:1;9868;9861:12;9885:180;9933:77;9930:1;9923:88;10030:4;10027:1;10020:15;10054:4;10051:1;10044:15;10071:281;10154:27;10176:4;10154:27;:::i;:::-;10146:6;10142:40;10284:6;10272:10;10269:22;10248:18;10236:10;10233:34;10230:62;10227:88;;;10295:18;;:::i;:::-;10227:88;10335:10;10331:2;10324:22;10114:238;10071:281;;:::o;10358:129::-;10392:6;10419:20;;:::i;:::-;10409:30;;10448:33;10476:4;10468:6;10448:33;:::i;:::-;10358:129;;;:::o;10493:308::-;10555:4;10645:18;10637:6;10634:30;10631:56;;;10667:18;;:::i;:::-;10631:56;10705:29;10727:6;10705:29;:::i;:::-;10697:37;;10789:4;10783;10779:15;10771:23;;10493:308;;;:::o;10807:154::-;10891:6;10886:3;10881;10868:30;10953:1;10944:6;10939:3;10935:16;10928:27;10807:154;;;:::o;10967:412::-;11045:5;11070:66;11086:49;11128:6;11086:49;:::i;:::-;11070:66;:::i;:::-;11061:75;;11159:6;11152:5;11145:21;11197:4;11190:5;11186:16;11235:3;11226:6;11221:3;11217:16;11214:25;11211:112;;;11242:79;;:::i;:::-;11211:112;11332:41;11366:6;11361:3;11356;11332:41;:::i;:::-;11051:328;10967:412;;;;;:::o;11399:340::-;11455:5;11504:3;11497:4;11489:6;11485:17;11481:27;11471:122;;11512:79;;:::i;:::-;11471:122;11629:6;11616:20;11654:79;11729:3;11721:6;11714:4;11706:6;11702:17;11654:79;:::i;:::-;11645:88;;11461:278;11399:340;;;;:::o;11745:1631::-;11880:6;11888;11896;11904;11912;11961:3;11949:9;11940:7;11936:23;11932:33;11929:120;;;11968:79;;:::i;:::-;11929:120;12116:1;12105:9;12101:17;12088:31;12146:18;12138:6;12135:30;12132:117;;;12168:79;;:::i;:::-;12132:117;12273:63;12328:7;12319:6;12308:9;12304:22;12273:63;:::i;:::-;12263:73;;12059:287;12413:2;12402:9;12398:18;12385:32;12444:18;12436:6;12433:30;12430:117;;;12466:79;;:::i;:::-;12430:117;12571:63;12626:7;12617:6;12606:9;12602:22;12571:63;:::i;:::-;12561:73;;12356:288;12711:2;12700:9;12696:18;12683:32;12742:18;12734:6;12731:30;12728:117;;;12764:79;;:::i;:::-;12728:117;12869:63;12924:7;12915:6;12904:9;12900:22;12869:63;:::i;:::-;12859:73;;12654:288;13009:2;12998:9;12994:18;12981:32;13040:18;13032:6;13029:30;13026:117;;;13062:79;;:::i;:::-;13026:117;13167:63;13222:7;13213:6;13202:9;13198:22;13167:63;:::i;:::-;13157:73;;12952:288;13279:3;13306:53;13351:7;13342:6;13331:9;13327:22;13306:53;:::i;:::-;13296:63;;13250:119;11745:1631;;;;;;;;:::o;13382:118::-;13469:24;13487:5;13469:24;:::i;:::-;13464:3;13457:37;13382:118;;:::o;13506:222::-;13599:4;13637:2;13626:9;13622:18;13614:26;;13650:71;13718:1;13707:9;13703:17;13694:6;13650:71;:::i;:::-;13506:222;;;;:::o;13734:332::-;13855:4;13893:2;13882:9;13878:18;13870:26;;13906:71;13974:1;13963:9;13959:17;13950:6;13906:71;:::i;:::-;13987:72;14055:2;14044:9;14040:18;14031:6;13987:72;:::i;:::-;13734:332;;;;;:::o;14072:180::-;14120:77;14117:1;14110:88;14217:4;14214:1;14207:15;14241:4;14238:1;14231:15;14258:180;14306:77;14303:1;14296:88;14403:4;14400:1;14393:15;14427:4;14424:1;14417:15;14444:77;14481:7;14510:5;14499:16;;14444:77;;;:::o;14527:233::-;14566:3;14589:24;14607:5;14589:24;:::i;:::-;14580:33;;14635:66;14628:5;14625:77;14622:103;;;14705:18;;:::i;:::-;14622:103;14752:1;14745:5;14741:13;14734:20;;14527:233;;;:::o;14766:180::-;14814:77;14811:1;14804:88;14911:4;14908:1;14901:15;14935:4;14932:1;14925:15;14952:320;14996:6;15033:1;15027:4;15023:12;15013:22;;15080:1;15074:4;15070:12;15101:18;15091:81;;15157:4;15149:6;15145:17;15135:27;;15091:81;15219:2;15211:6;15208:14;15188:18;15185:38;15182:84;;;15238:18;;:::i;:::-;15182:84;15003:269;14952:320;;;:::o;15278:305::-;15318:3;15337:20;15355:1;15337:20;:::i;:::-;15332:25;;15371:20;15389:1;15371:20;:::i;:::-;15366:25;;15525:1;15457:66;15453:74;15450:1;15447:81;15444:107;;;15531:18;;:::i;:::-;15444:107;15575:1;15572;15568:9;15561:16;;15278:305;;;;:::o", + "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.21 <=0.8.13;\n\ncontract ShareChannel {\n\n address public userA;\n address public userB;\n\n struct file {\n string fileName;\n string ipfsHash;\n string senderEncryptedAESKey;\n string receiverEncryptedAESKey;\n address sender;\n address receiver;\n }\n\n file[] sharedFiles;\n\n constructor(address _userA, address _userB) {\n userA = _userA;\n userB = _userB;\n }\n\n modifier isPartOfChannel() {\n require((msg.sender == userA) || (msg.sender == userB));\n _;\n }\n\n function sendFile(\n string memory _fileName,\n string memory _ipfsHash,\n string memory _senderEncryptedAESKey,\n string memory _receiverEncryptedAESKey,\n address _receiver\n ) public isPartOfChannel {\n _addFile(_fileName, _ipfsHash, _senderEncryptedAESKey, _receiverEncryptedAESKey, msg.sender, _receiver);\n }\n\n //COMMENTED FOR NOW AS I THINK THIS IS REDUNDANT: VISHWA\n\n // function receiveFile(\n // string memory _fileName,\n // string memory _ipfsHash,\n // string memory _senderEncryptedAESKey,\n // string memory _receiverEncryptedAESKey,\n // address _sender\n // ) public isPartOfChannel {\n // _addFile(_fileName, _ipfsHash, _senderEncryptedAESKey, _receiverEncryptedAESKey, _sender, msg.sender);\n // }\n\n function getSentFiles1(address _user1, address _user2) public view returns (\n string[] memory,\n string[] memory,\n string[] memory\n ) {\n uint arraySize = 0;\n for(uint i = 0; i < sharedFiles.length; i++){\n if(sharedFiles[i].sender == _user1 && sharedFiles[i].receiver == _user2){\n arraySize++;\n }\n }\n\n string[] memory fileName = new string[](arraySize);\n string[] memory ipfsHash = new string[](arraySize);\n string[] memory senderEncryptedAESKey = new string[](arraySize);\n\n uint j = 0;\n for(uint i = 0; i < sharedFiles.length; i++){\n if(sharedFiles[i].sender == _user1 && sharedFiles[i].receiver == _user2){\n fileName[j] = sharedFiles[i].fileName;\n ipfsHash[j] = sharedFiles[i].ipfsHash;\n senderEncryptedAESKey[j] = sharedFiles[i].senderEncryptedAESKey;\n j += 1;\n }\n }\n\n return (\n fileName,\n ipfsHash,\n senderEncryptedAESKey\n );\n }\n\nfunction getSentFiles2(address _user1, address _user2) public view returns (\n string[] memory,\n address[] memory,\n address[] memory\n ) {\n uint arraySize = 0;\n for(uint i = 0; i < sharedFiles.length; i++){\n if(sharedFiles[i].sender == _user1 && sharedFiles[i].receiver == _user2){\n arraySize++;\n }\n }\n\n string[] memory receiverEncryptedAESKey = new string[](arraySize);\n address[] memory sender = new address[](arraySize);\n address[] memory receiver = new address[](arraySize);\n\n uint j = 0;\n for(uint i = 0; i < sharedFiles.length; i++){\n if(sharedFiles[i].sender == _user1 && sharedFiles[i].receiver == _user2){\n receiverEncryptedAESKey[j] = sharedFiles[i].receiverEncryptedAESKey;\n sender[j] = sharedFiles[i].sender;\n receiver[j] = sharedFiles[i].receiver;\n j += 1;\n }\n }\n\n return (\n receiverEncryptedAESKey,\n sender,\n receiver\n );\n }\n\n function getChannelUsers() public view returns(address, address){\n return (userA, userB);\n }\n\n function getSharedFiles() public view returns (string[] memory,\n string[] memory,\n string[] memory,\n string[] memory,\n address[] memory,\n address[] memory\n ){\n string[] memory fileName = new string[](sharedFiles.length);\n string[] memory ipfsHash = new string[](sharedFiles.length);\n string[] memory senderEncryptedAESKey = new string[](sharedFiles.length);\n string[] memory receiverEncryptedAESKey = new string[](sharedFiles.length);\n address[] memory sender = new address[](sharedFiles.length);\n address[] memory receiver = new address[](sharedFiles.length);\n for (uint i = 0; i < sharedFiles.length; i++) {\n fileName[i] = sharedFiles[i].fileName;\n ipfsHash[i] = sharedFiles[i].ipfsHash;\n senderEncryptedAESKey[i] = sharedFiles[i].senderEncryptedAESKey;\n receiverEncryptedAESKey[i] = sharedFiles[i].receiverEncryptedAESKey;\n sender[i] = sharedFiles[i].sender;\n receiver[i] = sharedFiles[i].receiver;\n }\n return (fileName, ipfsHash,senderEncryptedAESKey, receiverEncryptedAESKey,sender, receiver);\n }\n\n function _addFile(\n string memory _fileName,\n string memory _ipfsHash,\n string memory _senderEncryptedAESKey,\n string memory _receiverEncryptedAESKey,\n address _sender,\n address _receiver\n ) private {\n file memory newFile = file({\n fileName: _fileName,\n ipfsHash: _ipfsHash,\n senderEncryptedAESKey: _senderEncryptedAESKey,\n receiverEncryptedAESKey: _receiverEncryptedAESKey,\n sender: _sender,\n receiver: _receiver\n });\n sharedFiles.push(newFile);\n }\n\n}\n", + "sourcePath": "/home/ranasiddharth/ShareConnect/contracts/ShareChannel.sol", + "ast": { + "absolutePath": "project:/contracts/ShareChannel.sol", + "exportedSymbols": { + "ShareChannel": [ + 925 + ] + }, + "id": 926, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 322, + "literals": [ + "solidity", + ">=", + "0.4", + ".21", + "<=", + "0.8", + ".13" + ], + "nodeType": "PragmaDirective", + "src": "32:34:3" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ShareChannel", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 925, + "linearizedBaseContracts": [ + 925 + ], + "name": "ShareChannel", + "nameLocation": "77:12:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "deb22e9a", + "id": 324, + "mutability": "mutable", + "name": "userA", + "nameLocation": "110:5:3", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "95:20:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 323, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "95:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "cb1a295f", + "id": 326, + "mutability": "mutable", + "name": "userB", + "nameLocation": "134:5:3", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "119:20:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 325, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "119:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "canonicalName": "ShareChannel.file", + "id": 339, + "members": [ + { + "constant": false, + "id": 328, + "mutability": "mutable", + "name": "fileName", + "nameLocation": "169:8:3", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "162:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" }, - { - "body": { - "id": 749, - "nodeType": "Block", - "src": "5132:202:1", + "typeName": { + "id": 327, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "162:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 330, + "mutability": "mutable", + "name": "ipfsHash", + "nameLocation": "190:8:3", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "183:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 329, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "183:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 332, + "mutability": "mutable", + "name": "senderEncryptedAESKey", + "nameLocation": "211:21:3", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "204:28:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 331, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "204:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 334, + "mutability": "mutable", + "name": "receiverEncryptedAESKey", + "nameLocation": "245:23:3", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "238:30:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 333, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "238:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 336, + "mutability": "mutable", + "name": "sender", + "nameLocation": "282:6:3", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "274:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 335, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "274:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 338, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "302:8:3", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "294:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 337, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "294:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "name": "file", + "nameLocation": "151:4:3", + "nodeType": "StructDefinition", + "scope": 925, + "src": "144:171:3", + "visibility": "public" + }, + { + "constant": false, + "id": 343, + "mutability": "mutable", + "name": "sharedFiles", + "nameLocation": "326:11:3", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "319:18:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file[]" + }, + "typeName": { + "baseType": { + "id": 341, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 340, + "name": "file", + "nodeType": "IdentifierPath", + "referencedDeclaration": 339, + "src": "319:4:3" + }, + "referencedDeclaration": 339, + "src": "319:4:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage_ptr", + "typeString": "struct ShareChannel.file" + } + }, + "id": 342, + "nodeType": "ArrayTypeName", + "src": "319:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage_ptr", + "typeString": "struct ShareChannel.file[]" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 358, + "nodeType": "Block", + "src": "386:45:3", + "statements": [ + { + "expression": { + "id": 352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 350, + "name": "userA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 324, + "src": "392:5:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 351, + "name": "_userA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "400:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "392:14:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 353, + "nodeType": "ExpressionStatement", + "src": "392:14:3" + }, + { + "expression": { + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 354, + "name": "userB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 326, + "src": "412:5:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 355, + "name": "_userB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 347, + "src": "420:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "412:14:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 357, + "nodeType": "ExpressionStatement", + "src": "412:14:3" + } + ] + }, + "id": 359, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 345, + "mutability": "mutable", + "name": "_userA", + "nameLocation": "362:6:3", + "nodeType": "VariableDeclaration", + "scope": 359, + "src": "354:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 344, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "354:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 347, + "mutability": "mutable", + "name": "_userB", + "nameLocation": "378:6:3", + "nodeType": "VariableDeclaration", + "scope": 359, + "src": "370:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 346, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "370:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "353:32:3" + }, + "returnParameters": { + "id": 349, + "nodeType": "ParameterList", + "parameters": [], + "src": "386:0:3" + }, + "scope": 925, + "src": "342:89:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 376, + "nodeType": "Block", + "src": "462:73:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 362, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "477:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "477:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 364, + "name": "userA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 324, + "src": "491:5:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "477:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 366, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "476:21:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 367, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "502:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "502:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 369, + "name": "userB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 326, + "src": "516:5:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "502:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 371, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "501:21:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "476:46:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 361, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "468:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "468:55:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 374, + "nodeType": "ExpressionStatement", + "src": "468:55:3" + }, + { + "id": 375, + "nodeType": "PlaceholderStatement", + "src": "529:1:3" + } + ] + }, + "id": 377, + "name": "isPartOfChannel", + "nameLocation": "444:15:3", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 360, + "nodeType": "ParameterList", + "parameters": [], + "src": "459:2:3" + }, + "src": "435:100:3", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 402, + "nodeType": "Block", + "src": "751:114:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 393, + "name": "_fileName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 379, + "src": "766:9:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 394, + "name": "_ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "777:9:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 395, + "name": "_senderEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 383, + "src": "788:22:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 396, + "name": "_receiverEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 385, + "src": "812:24:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "id": 397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "838:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "838:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 399, + "name": "_receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "850:9:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 392, + "name": "_addFile", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 924, + "src": "757:8:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", + "typeString": "function (string memory,string memory,string memory,string memory,address,address)" + } + }, + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "757:103:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 401, + "nodeType": "ExpressionStatement", + "src": "757:103:3" + } + ] + }, + "functionSelector": "a6aeff57", + "id": 403, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 390, + "kind": "modifierInvocation", + "modifierName": { + "id": 389, + "name": "isPartOfChannel", + "nodeType": "IdentifierPath", + "referencedDeclaration": 377, + "src": "735:15:3" + }, + "nodeType": "ModifierInvocation", + "src": "735:15:3" + } + ], + "name": "sendFile", + "nameLocation": "548:8:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 388, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 379, + "mutability": "mutable", + "name": "_fileName", + "nameLocation": "576:9:3", + "nodeType": "VariableDeclaration", + "scope": 403, + "src": "562:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 378, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "562:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 381, + "mutability": "mutable", + "name": "_ipfsHash", + "nameLocation": "605:9:3", + "nodeType": "VariableDeclaration", + "scope": 403, + "src": "591:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 380, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "591:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 383, + "mutability": "mutable", + "name": "_senderEncryptedAESKey", + "nameLocation": "634:22:3", + "nodeType": "VariableDeclaration", + "scope": 403, + "src": "620:36:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 382, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "620:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 385, + "mutability": "mutable", + "name": "_receiverEncryptedAESKey", + "nameLocation": "676:24:3", + "nodeType": "VariableDeclaration", + "scope": 403, + "src": "662:38:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 384, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "662:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 387, + "mutability": "mutable", + "name": "_receiver", + "nameLocation": "714:9:3", + "nodeType": "VariableDeclaration", + "scope": 403, + "src": "706:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 386, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "706:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "556:171:3" + }, + "returnParameters": { + "id": 391, + "nodeType": "ParameterList", + "parameters": [], + "src": "751:0:3" + }, + "scope": 925, + "src": "539:326:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 555, + "nodeType": "Block", + "src": "1429:819:3", + "statements": [ + { + "assignments": [ + 420 + ], + "declarations": [ + { + "constant": false, + "id": 420, + "mutability": "mutable", + "name": "arraySize", + "nameLocation": "1440:9:3", + "nodeType": "VariableDeclaration", + "scope": 555, + "src": "1435:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 419, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1435:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 422, + "initialValue": { + "hexValue": "30", + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1452:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1435:18:3" + }, + { + "body": { + "id": 452, + "nodeType": "Block", + "src": "1503:122:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 434, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "1516:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 436, + "indexExpression": { + "id": 435, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 424, + "src": "1528:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1516:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 437, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 336, + "src": "1516:21:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 438, + "name": "_user1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 405, + "src": "1541:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1516:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 440, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "1551:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 442, + "indexExpression": { + "id": 441, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 424, + "src": "1563:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1551:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 443, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 338, + "src": "1551:23:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 444, + "name": "_user2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 407, + "src": "1578:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1551:33:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1516:68:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 451, + "nodeType": "IfStatement", + "src": "1513:106:3", + "trueBody": { + "id": 450, + "nodeType": "Block", + "src": "1585:34:3", + "statements": [ + { + "expression": { + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1597:11:3", + "subExpression": { + "id": 447, + "name": "arraySize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "1597:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 449, + "nodeType": "ExpressionStatement", + "src": "1597:11:3" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 427, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 424, + "src": "1475:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 428, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "1479:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1479:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1475:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 453, + "initializationExpression": { + "assignments": [ + 424 + ], + "declarations": [ + { + "constant": false, + "id": 424, + "mutability": "mutable", + "name": "i", + "nameLocation": "1468:1:3", + "nodeType": "VariableDeclaration", + "scope": 453, + "src": "1463:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 423, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1463:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 426, + "initialValue": { + "hexValue": "30", + "id": 425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1472:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1463:10:3" + }, + "loopExpression": { + "expression": { + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1499:3:3", + "subExpression": { + "id": 431, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 424, + "src": "1499:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 433, + "nodeType": "ExpressionStatement", + "src": "1499:3:3" + }, + "nodeType": "ForStatement", + "src": "1459:166:3" + }, + { + "assignments": [ + 458 + ], + "declarations": [ + { + "constant": false, + "id": 458, + "mutability": "mutable", + "name": "fileName", + "nameLocation": "1647:8:3", + "nodeType": "VariableDeclaration", + "scope": 555, + "src": "1631:24:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 456, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1631:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 457, + "nodeType": "ArrayTypeName", + "src": "1631:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + } + ], + "id": 464, + "initialValue": { + "arguments": [ + { + "id": 462, + "name": "arraySize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "1671:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1658:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 459, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1662:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 460, + "nodeType": "ArrayTypeName", + "src": "1662:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + } + }, + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1658:23:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1631:50:3" + }, + { + "assignments": [ + 469 + ], + "declarations": [ + { + "constant": false, + "id": 469, + "mutability": "mutable", + "name": "ipfsHash", + "nameLocation": "1703:8:3", + "nodeType": "VariableDeclaration", + "scope": 555, + "src": "1687:24:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 467, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1687:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 468, + "nodeType": "ArrayTypeName", + "src": "1687:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + } + ], + "id": 475, + "initialValue": { + "arguments": [ + { + "id": 473, + "name": "arraySize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "1727:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1714:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 470, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1718:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 471, + "nodeType": "ArrayTypeName", + "src": "1718:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + } + }, + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1714:23:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1687:50:3" + }, + { + "assignments": [ + 480 + ], + "declarations": [ + { + "constant": false, + "id": 480, + "mutability": "mutable", + "name": "senderEncryptedAESKey", + "nameLocation": "1759:21:3", + "nodeType": "VariableDeclaration", + "scope": 555, + "src": "1743:37:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 478, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1743:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 479, + "nodeType": "ArrayTypeName", + "src": "1743:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + } + ], + "id": 486, + "initialValue": { + "arguments": [ + { + "id": 484, + "name": "arraySize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "1796:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1783:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 481, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1787:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 482, + "nodeType": "ArrayTypeName", + "src": "1787:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + } + }, + "id": 485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1783:23:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1743:63:3" + }, + { + "assignments": [ + 488 + ], + "declarations": [ + { + "constant": false, + "id": 488, + "mutability": "mutable", + "name": "j", + "nameLocation": "1818:1:3", + "nodeType": "VariableDeclaration", + "scope": 555, + "src": "1813:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 487, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1813:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 490, + "initialValue": { + "hexValue": "30", + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1822:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1813:10:3" + }, + { + "body": { + "id": 548, + "nodeType": "Block", + "src": "1873:290:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 502, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "1886:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 504, + "indexExpression": { + "id": 503, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 492, + "src": "1898:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1886:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 505, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 336, + "src": "1886:21:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 506, + "name": "_user1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 405, + "src": "1911:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1886:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 508, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "1921:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 510, + "indexExpression": { + "id": 509, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 492, + "src": "1933:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1921:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 511, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 338, + "src": "1921:23:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 512, + "name": "_user2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 407, + "src": "1948:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1921:33:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1886:68:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 547, + "nodeType": "IfStatement", + "src": "1883:274:3", + "trueBody": { + "id": 546, + "nodeType": "Block", + "src": "1955:202:3", + "statements": [ + { + "expression": { + "id": 522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 515, + "name": "fileName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "1967:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 517, + "indexExpression": { + "id": 516, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 488, + "src": "1976:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1967:11:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 518, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "1981:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 520, + "indexExpression": { + "id": 519, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 492, + "src": "1993:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1981:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 521, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fileName", + "nodeType": "MemberAccess", + "referencedDeclaration": 328, + "src": "1981:23:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "src": "1967:37:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 523, + "nodeType": "ExpressionStatement", + "src": "1967:37:3" + }, + { + "expression": { + "id": 531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 524, + "name": "ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 469, + "src": "2016:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 526, + "indexExpression": { + "id": 525, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 488, + "src": "2025:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2016:11:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 527, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "2030:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 529, + "indexExpression": { + "id": 528, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 492, + "src": "2042:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2030:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 530, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ipfsHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 330, + "src": "2030:23:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "src": "2016:37:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 532, + "nodeType": "ExpressionStatement", + "src": "2016:37:3" + }, + { + "expression": { + "id": 540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 533, + "name": "senderEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "2065:21:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 535, + "indexExpression": { + "id": 534, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 488, + "src": "2087:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2065:24:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 536, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "2092:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 538, + "indexExpression": { + "id": 537, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 492, + "src": "2104:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2092:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 539, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "senderEncryptedAESKey", + "nodeType": "MemberAccess", + "referencedDeclaration": 332, + "src": "2092:36:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "src": "2065:63:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 541, + "nodeType": "ExpressionStatement", + "src": "2065:63:3" + }, + { + "expression": { + "id": 544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 542, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 488, + "src": "2140:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2145:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2140:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 545, + "nodeType": "ExpressionStatement", + "src": "2140:6:3" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 495, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 492, + "src": "1845:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 496, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "1849:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1849:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1845:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 549, + "initializationExpression": { + "assignments": [ + 492 + ], + "declarations": [ + { + "constant": false, + "id": 492, + "mutability": "mutable", + "name": "i", + "nameLocation": "1838:1:3", + "nodeType": "VariableDeclaration", + "scope": 549, + "src": "1833:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 491, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1833:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 494, + "initialValue": { + "hexValue": "30", + "id": 493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1842:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1833:10:3" + }, + "loopExpression": { + "expression": { + "id": 500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1869:3:3", + "subExpression": { + "id": 499, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 492, + "src": "1869:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 501, + "nodeType": "ExpressionStatement", + "src": "1869:3:3" + }, + "nodeType": "ForStatement", + "src": "1829:334:3" + }, + { + "expression": { + "components": [ + { + "id": 550, + "name": "fileName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "2184:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + { + "id": 551, + "name": "ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 469, + "src": "2200:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + { + "id": 552, + "name": "senderEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "2216:21:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + } + ], + "id": 553, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2176:67:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", + "typeString": "tuple(string memory[] memory,string memory[] memory,string memory[] memory)" + } + }, + "functionReturnParameters": 418, + "id": 554, + "nodeType": "Return", + "src": "2169:74:3" + } + ] + }, + "functionSelector": "1a936e9e", + "id": 556, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSentFiles1", + "nameLocation": "1294:13:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 408, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 405, + "mutability": "mutable", + "name": "_user1", + "nameLocation": "1316:6:3", + "nodeType": "VariableDeclaration", + "scope": 556, + "src": "1308:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 404, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1308:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 407, + "mutability": "mutable", + "name": "_user2", + "nameLocation": "1332:6:3", + "nodeType": "VariableDeclaration", + "scope": 556, + "src": "1324:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1324:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1307:32:3" + }, + "returnParameters": { + "id": 418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 411, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 556, + "src": "1366:15:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 409, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1366:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 410, + "nodeType": "ArrayTypeName", + "src": "1366:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 414, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 556, + "src": "1387:15:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 412, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1387:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 413, + "nodeType": "ArrayTypeName", + "src": "1387:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 417, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 556, + "src": "1408:15:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 415, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1408:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 416, + "nodeType": "ArrayTypeName", + "src": "1408:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + } + ], + "src": "1360:68:3" + }, + "scope": 925, + "src": "1285:963:3", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 708, + "nodeType": "Block", + "src": "2396:823:3", + "statements": [ + { + "assignments": [ + 573 + ], + "declarations": [ + { + "constant": false, + "id": 573, + "mutability": "mutable", + "name": "arraySize", + "nameLocation": "2407:9:3", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "2402:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 572, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2402:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 575, + "initialValue": { + "hexValue": "30", + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2419:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2402:18:3" + }, + { + "body": { + "id": 605, + "nodeType": "Block", + "src": "2470:122:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 587, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "2483:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 589, + "indexExpression": { + "id": 588, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "2495:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2483:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 590, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 336, + "src": "2483:21:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 591, + "name": "_user1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 558, + "src": "2508:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2483:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 593, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "2518:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 595, + "indexExpression": { + "id": 594, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "2530:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2518:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 596, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 338, + "src": "2518:23:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 597, + "name": "_user2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 560, + "src": "2545:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2518:33:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2483:68:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 604, + "nodeType": "IfStatement", + "src": "2480:106:3", + "trueBody": { + "id": 603, + "nodeType": "Block", + "src": "2552:34:3", + "statements": [ + { + "expression": { + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2564:11:3", + "subExpression": { + "id": 600, + "name": "arraySize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 573, + "src": "2564:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 602, + "nodeType": "ExpressionStatement", + "src": "2564:11:3" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 580, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "2442:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 581, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "2446:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2446:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2442:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 606, + "initializationExpression": { + "assignments": [ + 577 + ], + "declarations": [ + { + "constant": false, + "id": 577, + "mutability": "mutable", + "name": "i", + "nameLocation": "2435:1:3", + "nodeType": "VariableDeclaration", + "scope": 606, + "src": "2430:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 576, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2430:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 579, + "initialValue": { + "hexValue": "30", + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2439:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2430:10:3" + }, + "loopExpression": { + "expression": { + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2466:3:3", + "subExpression": { + "id": 584, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "2466:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 586, + "nodeType": "ExpressionStatement", + "src": "2466:3:3" + }, + "nodeType": "ForStatement", + "src": "2426:166:3" + }, + { + "assignments": [ + 611 + ], + "declarations": [ + { + "constant": false, + "id": 611, + "mutability": "mutable", + "name": "receiverEncryptedAESKey", + "nameLocation": "2614:23:3", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "2598:39:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 609, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2598:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 610, + "nodeType": "ArrayTypeName", + "src": "2598:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + } + ], + "id": 617, + "initialValue": { + "arguments": [ + { + "id": 615, + "name": "arraySize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 573, + "src": "2653:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2640:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 612, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2644:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 613, + "nodeType": "ArrayTypeName", + "src": "2644:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + } + }, + "id": 616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2640:23:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2598:65:3" + }, + { + "assignments": [ + 622 + ], + "declarations": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "sender", + "nameLocation": "2686:6:3", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "2669:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 620, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2669:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 621, + "nodeType": "ArrayTypeName", + "src": "2669:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "id": 628, + "initialValue": { + "arguments": [ + { + "id": 626, + "name": "arraySize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 573, + "src": "2709:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2695:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2699:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 624, + "nodeType": "ArrayTypeName", + "src": "2699:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2695:24:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2669:50:3" + }, + { + "assignments": [ + 633 + ], + "declarations": [ + { + "constant": false, + "id": 633, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "2742:8:3", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "2725:25:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2725:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 632, + "nodeType": "ArrayTypeName", + "src": "2725:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "id": 639, + "initialValue": { + "arguments": [ + { + "id": 637, + "name": "arraySize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 573, + "src": "2767:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 636, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2753:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2757:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 635, + "nodeType": "ArrayTypeName", + "src": "2757:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2753:24:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2725:52:3" + }, + { + "assignments": [ + 641 + ], + "declarations": [ + { + "constant": false, + "id": 641, + "mutability": "mutable", + "name": "j", + "nameLocation": "2789:1:3", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "2784:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 640, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2784:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 643, + "initialValue": { + "hexValue": "30", + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2793:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2784:10:3" + }, + { + "body": { + "id": 701, + "nodeType": "Block", + "src": "2844:290:3", "statements": [ { - "condition": { - "id": 723, - "name": "_getSent", + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 655, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "2857:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 657, + "indexExpression": { + "id": 656, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "2869:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2857:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 658, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 336, + "src": "2857:21:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 659, + "name": "_user1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 558, + "src": "2882:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2857:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 661, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "2892:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 663, + "indexExpression": { + "id": 662, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "2904:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2892:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 664, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 338, + "src": "2892:23:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 665, + "name": "_user2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 560, + "src": "2919:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2892:33:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2857:68:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 700, + "nodeType": "IfStatement", + "src": "2854:274:3", + "trueBody": { + "id": 699, + "nodeType": "Block", + "src": "2926:202:3", + "statements": [ + { + "expression": { + "id": 675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 668, + "name": "receiverEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 611, + "src": "2938:23:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 670, + "indexExpression": { + "id": 669, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "2962:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2938:26:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 671, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "2967:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 673, + "indexExpression": { + "id": 672, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "2979:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2967:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 674, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receiverEncryptedAESKey", + "nodeType": "MemberAccess", + "referencedDeclaration": 334, + "src": "2967:38:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "src": "2938:67:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 676, + "nodeType": "ExpressionStatement", + "src": "2938:67:3" + }, + { + "expression": { + "id": 684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 677, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 622, + "src": "3017:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 679, + "indexExpression": { + "id": 678, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "3024:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3017:9:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 680, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3029:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 682, + "indexExpression": { + "id": 681, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "3041:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3029:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 683, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 336, + "src": "3029:21:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3017:33:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 685, + "nodeType": "ExpressionStatement", + "src": "3017:33:3" + }, + { + "expression": { + "id": 693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 686, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "3062:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 688, + "indexExpression": { + "id": 687, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "3071:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3062:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 689, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3076:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 691, + "indexExpression": { + "id": 690, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "3088:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3076:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 692, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 338, + "src": "3076:23:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3062:37:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 694, + "nodeType": "ExpressionStatement", + "src": "3062:37:3" + }, + { + "expression": { + "id": 697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 695, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "3111:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3116:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3111:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 698, + "nodeType": "ExpressionStatement", + "src": "3111:6:3" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 648, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "2816:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 649, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "2820:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2820:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2816:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 702, + "initializationExpression": { + "assignments": [ + 645 + ], + "declarations": [ + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "i", + "nameLocation": "2809:1:3", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "2804:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 644, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2804:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 647, + "initialValue": { + "hexValue": "30", + "id": 646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2813:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2804:10:3" + }, + "loopExpression": { + "expression": { + "id": 653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2840:3:3", + "subExpression": { + "id": 652, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "2840:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 654, + "nodeType": "ExpressionStatement", + "src": "2840:3:3" + }, + "nodeType": "ForStatement", + "src": "2800:334:3" + }, + { + "expression": { + "components": [ + { + "id": 703, + "name": "receiverEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 611, + "src": "3155:23:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + { + "id": 704, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 622, + "src": "3186:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "id": 705, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "3200:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + } + ], + "id": 706, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3147:67:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "tuple(string memory[] memory,address[] memory,address[] memory)" + } + }, + "functionReturnParameters": 571, + "id": 707, + "nodeType": "Return", + "src": "3140:74:3" + } + ] + }, + "functionSelector": "77e371e6", + "id": 709, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSentFiles2", + "nameLocation": "2259:13:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 561, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 558, + "mutability": "mutable", + "name": "_user1", + "nameLocation": "2281:6:3", + "nodeType": "VariableDeclaration", + "scope": 709, + "src": "2273:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 557, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2273:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 560, + "mutability": "mutable", + "name": "_user2", + "nameLocation": "2297:6:3", + "nodeType": "VariableDeclaration", + "scope": 709, + "src": "2289:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 559, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2289:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2272:32:3" + }, + "returnParameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 564, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 709, + "src": "2331:15:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 562, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2331:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 563, + "nodeType": "ArrayTypeName", + "src": "2331:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 567, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 709, + "src": "2352:16:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2352:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 566, + "nodeType": "ArrayTypeName", + "src": "2352:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 570, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 709, + "src": "2374:16:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2374:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 569, + "nodeType": "ArrayTypeName", + "src": "2374:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "2325:70:3" + }, + "scope": 925, + "src": "2250:969:3", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 720, + "nodeType": "Block", + "src": "3287:32:3", + "statements": [ + { + "expression": { + "components": [ + { + "id": 716, + "name": "userA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 324, + "src": "3301:5:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 717, + "name": "userB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 326, + "src": "3308:5:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 718, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3300:14:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "functionReturnParameters": 715, + "id": 719, + "nodeType": "Return", + "src": "3293:21:3" + } + ] + }, + "functionSelector": "e9ad3239", + "id": 721, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getChannelUsers", + "nameLocation": "3232:15:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 710, + "nodeType": "ParameterList", + "parameters": [], + "src": "3247:2:3" + }, + "returnParameters": { + "id": 715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 712, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 721, + "src": "3270:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 711, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3270:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 721, + "src": "3279:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3279:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3269:18:3" + }, + "scope": 925, + "src": "3223:96:3", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 889, + "nodeType": "Block", + "src": "3496:914:3", + "statements": [ + { + "assignments": [ + 746 + ], + "declarations": [ + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "fileName", + "nameLocation": "3518:8:3", + "nodeType": "VariableDeclaration", + "scope": 889, + "src": "3502:24:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3502:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 745, + "nodeType": "ArrayTypeName", + "src": "3502:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + } + ], + "id": 753, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 750, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3542:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3542:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3529:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 747, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3533:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 748, + "nodeType": "ArrayTypeName", + "src": "3533:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + } + }, + "id": 752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3529:32:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3502:59:3" + }, + { + "assignments": [ + 758 + ], + "declarations": [ + { + "constant": false, + "id": 758, + "mutability": "mutable", + "name": "ipfsHash", + "nameLocation": "3583:8:3", + "nodeType": "VariableDeclaration", + "scope": 889, + "src": "3567:24:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 756, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3567:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 757, + "nodeType": "ArrayTypeName", + "src": "3567:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + } + ], + "id": 765, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 762, + "name": "sharedFiles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "5143:8:1", + "referencedDeclaration": 343, + "src": "3607:11:3", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" } }, - "falseBody": { - "id": 747, - "nodeType": "Block", - "src": "5245:83:1", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 736, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5258:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 738, - "indexExpression": { - "id": 737, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "5270:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5258:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 739, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiver", - "nodeType": "MemberAccess", - "referencedDeclaration": 156, - "src": "5258:23:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 740, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "5285:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5258:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 746, - "nodeType": "IfStatement", - "src": "5255:65:1", - "trueBody": { - "id": 745, - "nodeType": "Block", - "src": "5291:29:1", - "statements": [ - { - "expression": { - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5303:6:1", - "subExpression": { - "id": 742, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "5303:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 744, - "nodeType": "ExpressionStatement", - "src": "5303:6:1" - } - ] - } - } - ] - }, - "id": 748, - "nodeType": "IfStatement", - "src": "5140:188:1", - "trueBody": { - "id": 735, - "nodeType": "Block", - "src": "5152:81:1", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 724, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5165:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 726, - "indexExpression": { - "id": 725, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "5177:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5165:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 727, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": 154, - "src": "5165:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 728, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "5190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5165:30:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 734, - "nodeType": "IfStatement", - "src": "5162:63:1", - "trueBody": { - "id": 733, - "nodeType": "Block", - "src": "5196:29:1", - "statements": [ - { - "expression": { - "id": 731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5208:6:1", - "subExpression": { - "id": 730, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "5208:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 732, - "nodeType": "ExpressionStatement", - "src": "5208:6:1" - } - ] - } - } - ] + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3607:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3594:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 759, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3598:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 760, + "nodeType": "ArrayTypeName", + "src": "3598:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" } } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" }, - "id": 719, + "id": 764, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "id": 716, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "5104:1:1", + "names": [], + "nodeType": "FunctionCall", + "src": "3594:32:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3567:59:3" + }, + { + "assignments": [ + 770 + ], + "declarations": [ + { + "constant": false, + "id": 770, + "mutability": "mutable", + "name": "senderEncryptedAESKey", + "nameLocation": "3648:21:3", + "nodeType": "VariableDeclaration", + "scope": 889, + "src": "3632:37:3", + "stateVariable": false, + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 717, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5108:11:1", + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 768, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3632:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 769, + "nodeType": "ArrayTypeName", + "src": "3632:8:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" } }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "5108:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5104:22:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "visibility": "internal" } - }, - "id": 750, - "initializationExpression": { - "assignments": [ - 713 - ], - "declarations": [ + ], + "id": 777, + "initialValue": { + "arguments": [ { - "constant": false, - "id": 713, - "mutability": "mutable", - "name": "i", - "nameLocation": "5097:1:1", - "nodeType": "VariableDeclaration", - "scope": 750, - "src": "5092:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 712, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5092:4:1", + "expression": { + "id": 774, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3685:11:3", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" } }, - "visibility": "internal" + "id": 775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3685:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], - "id": 715, - "initialValue": { - "hexValue": "30", - "id": 714, + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 773, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", "lValueRequested": false, - "nodeType": "Literal", - "src": "5101:1:1", + "nodeType": "NewExpression", + "src": "3672:12:3", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory[] memory)" }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5092:10:1" - }, - "loopExpression": { - "expression": { - "id": 721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5128:3:1", - "subExpression": { - "id": 720, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "5128:1:1", + "typeName": { + "baseType": { + "id": 771, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3676:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 772, + "nodeType": "ArrayTypeName", + "src": "3676:8:3", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 722, - "nodeType": "ExpressionStatement", - "src": "5128:3:1" - }, - "nodeType": "ForStatement", - "src": "5088:246:1" - }, - { - "expression": { - "id": 751, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "5346:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 707, - "id": 752, - "nodeType": "Return", - "src": "5339:11:1" - } - ] - }, - "id": 754, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_calcArraySize", - "nameLocation": "4992:14:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 704, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 701, - "mutability": "mutable", - "name": "_user", - "nameLocation": "5015:5:1", - "nodeType": "VariableDeclaration", - "scope": 754, - "src": "5007:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5007:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 703, - "mutability": "mutable", - "name": "_getSent", - "nameLocation": "5027:8:1", - "nodeType": "VariableDeclaration", - "scope": 754, - "src": "5022:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 702, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5022:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "5006:30:1" - }, - "returnParameters": { - "id": 707, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 706, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 754, - "src": "5058:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 705, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5058:4:1", + } + }, + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3672:32:3", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" } }, - "visibility": "internal" - } - ], - "src": "5057:6:1" - }, - "scope": 755, - "src": "4983:372:1", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - } - ], - "scope": 756, - "src": "68:5290:1", - "usedErrors": [] - } - ], - "src": "32:5326:1" - }, - "legacyAST": { - "absolutePath": "project:/contracts/ShareChannel.sol", - "exportedSymbols": { - "ShareChannel": [ - 755 - ] - }, - "id": 756, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 136, - "literals": [ - "solidity", - ">=", - "0.4", - ".21", - "<=", - "0.8", - ".13" - ], - "nodeType": "PragmaDirective", - "src": "32:34:1" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "ShareChannel", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 755, - "linearizedBaseContracts": [ - 755 - ], - "name": "ShareChannel", - "nameLocation": "77:12:1", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "deb22e9a", - "id": 138, - "mutability": "mutable", - "name": "userA", - "nameLocation": "110:5:1", - "nodeType": "VariableDeclaration", - "scope": 755, - "src": "95:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 137, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "95:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "cb1a295f", - "id": 140, - "mutability": "mutable", - "name": "userB", - "nameLocation": "134:5:1", - "nodeType": "VariableDeclaration", - "scope": 755, - "src": "119:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 139, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "119:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 144, - "mutability": "mutable", - "name": "sharedFiles", - "nameLocation": "150:11:1", - "nodeType": "VariableDeclaration", - "scope": 755, - "src": "143:18:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file[]" - }, - "typeName": { - "baseType": { - "id": 142, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 141, - "name": "file", - "nodeType": "IdentifierPath", - "referencedDeclaration": 157, - "src": "143:4:1" - }, - "referencedDeclaration": 157, - "src": "143:4:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage_ptr", - "typeString": "struct ShareChannel.file" - } - }, - "id": 143, - "nodeType": "ArrayTypeName", - "src": "143:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage_ptr", - "typeString": "struct ShareChannel.file[]" - } - }, - "visibility": "internal" - }, - { - "canonicalName": "ShareChannel.file", - "id": 157, - "members": [ - { - "constant": false, - "id": 146, - "mutability": "mutable", - "name": "fileName", - "nameLocation": "191:8:1", - "nodeType": "VariableDeclaration", - "scope": 157, - "src": "184:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 145, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "184:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 148, - "mutability": "mutable", - "name": "ipfsHash", - "nameLocation": "212:8:1", - "nodeType": "VariableDeclaration", - "scope": 157, - "src": "205:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 147, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "205:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 150, - "mutability": "mutable", - "name": "senderEncryptedAESKey", - "nameLocation": "233:21:1", - "nodeType": "VariableDeclaration", - "scope": 157, - "src": "226:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 149, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "226:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 152, - "mutability": "mutable", - "name": "receiverEncryptedAESKey", - "nameLocation": "267:23:1", - "nodeType": "VariableDeclaration", - "scope": 157, - "src": "260:30:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 151, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "260:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 154, - "mutability": "mutable", - "name": "sender", - "nameLocation": "304:6:1", - "nodeType": "VariableDeclaration", - "scope": 157, - "src": "296:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "nodeType": "VariableDeclarationStatement", + "src": "3632:72:3" }, - "typeName": { - "id": 153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "296:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + { + "assignments": [ + 782 + ], + "declarations": [ + { + "constant": false, + "id": 782, + "mutability": "mutable", + "name": "receiverEncryptedAESKey", + "nameLocation": "3726:23:3", + "nodeType": "VariableDeclaration", + "scope": 889, + "src": "3710:39:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 780, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3710:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 781, + "nodeType": "ArrayTypeName", + "src": "3710:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + } + ], + "id": 789, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 786, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3765:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3765:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3752:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 783, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3756:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 784, + "nodeType": "ArrayTypeName", + "src": "3756:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + } + }, + "id": 788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3752:32:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3710:74:3" }, - "visibility": "internal" - }, - { - "constant": false, - "id": 156, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "324:8:1", - "nodeType": "VariableDeclaration", - "scope": 157, - "src": "316:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + { + "assignments": [ + 794 + ], + "declarations": [ + { + "constant": false, + "id": 794, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3807:6:3", + "nodeType": "VariableDeclaration", + "scope": 889, + "src": "3790:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 792, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3790:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 793, + "nodeType": "ArrayTypeName", + "src": "3790:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "id": 801, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 798, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3830:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3830:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3816:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3820:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 796, + "nodeType": "ArrayTypeName", + "src": "3820:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3816:33:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3790:59:3" }, - "typeName": { - "id": 155, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "316:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + { + "assignments": [ + 806 + ], + "declarations": [ + { + "constant": false, + "id": 806, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3872:8:3", + "nodeType": "VariableDeclaration", + "scope": 889, + "src": "3855:25:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3855:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 805, + "nodeType": "ArrayTypeName", + "src": "3855:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "id": 813, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 810, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3897:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3897:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3883:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3887:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 808, + "nodeType": "ArrayTypeName", + "src": "3887:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3883:33:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3855:61:3" }, - "visibility": "internal" - } - ], - "name": "file", - "nameLocation": "173:4:1", - "nodeType": "StructDefinition", - "scope": 755, - "src": "166:171:1", - "visibility": "public" - }, - { - "body": { - "id": 172, - "nodeType": "Block", - "src": "385:45:1", - "statements": [ { - "expression": { - "id": 166, + "body": { + "id": 879, + "nodeType": "Block", + "src": "3968:341:3", + "statements": [ + { + "expression": { + "id": 832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 825, + "name": "fileName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "3978:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 827, + "indexExpression": { + "id": 826, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "3987:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3978:11:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 828, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3992:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 830, + "indexExpression": { + "id": 829, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4004:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3992:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 831, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fileName", + "nodeType": "MemberAccess", + "referencedDeclaration": 328, + "src": "3992:23:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "src": "3978:37:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 833, + "nodeType": "ExpressionStatement", + "src": "3978:37:3" + }, + { + "expression": { + "id": 841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 834, + "name": "ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 758, + "src": "4025:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 836, + "indexExpression": { + "id": 835, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4034:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4025:11:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 837, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "4039:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 839, + "indexExpression": { + "id": 838, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4051:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4039:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 840, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ipfsHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 330, + "src": "4039:23:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "src": "4025:37:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 842, + "nodeType": "ExpressionStatement", + "src": "4025:37:3" + }, + { + "expression": { + "id": 850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 843, + "name": "senderEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 770, + "src": "4072:21:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 845, + "indexExpression": { + "id": 844, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4094:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4072:24:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 846, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "4099:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 848, + "indexExpression": { + "id": 847, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4111:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4099:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 849, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "senderEncryptedAESKey", + "nodeType": "MemberAccess", + "referencedDeclaration": 332, + "src": "4099:36:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "src": "4072:63:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 851, + "nodeType": "ExpressionStatement", + "src": "4072:63:3" + }, + { + "expression": { + "id": 859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 852, + "name": "receiverEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 782, + "src": "4145:23:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 854, + "indexExpression": { + "id": 853, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4169:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4145:26:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 855, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "4174:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 857, + "indexExpression": { + "id": 856, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4186:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4174:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receiverEncryptedAESKey", + "nodeType": "MemberAccess", + "referencedDeclaration": 334, + "src": "4174:38:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "src": "4145:67:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 860, + "nodeType": "ExpressionStatement", + "src": "4145:67:3" + }, + { + "expression": { + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 861, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 794, + "src": "4222:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 863, + "indexExpression": { + "id": 862, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4229:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4222:9:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 864, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "4234:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 866, + "indexExpression": { + "id": 865, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4246:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4234:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 867, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 336, + "src": "4234:21:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4222:33:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 869, + "nodeType": "ExpressionStatement", + "src": "4222:33:3" + }, + { + "expression": { + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 870, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "4265:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 872, + "indexExpression": { + "id": 871, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4274:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4265:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 873, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "4279:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 875, + "indexExpression": { + "id": 874, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4291:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4279:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 876, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 338, + "src": "4279:23:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4265:37:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 878, + "nodeType": "ExpressionStatement", + "src": "4265:37:3" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 821, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "id": 164, - "name": "userA", + "leftExpression": { + "id": 818, + "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "391:5:1", + "referencedDeclaration": 815, + "src": "3939:1:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 165, - "name": "_userA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 159, - "src": "399:6:1", + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 819, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3943:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3943:18:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "391:14:1", + "src": "3939:22:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 167, - "nodeType": "ExpressionStatement", - "src": "391:14:1" + "id": 880, + "initializationExpression": { + "assignments": [ + 815 + ], + "declarations": [ + { + "constant": false, + "id": 815, + "mutability": "mutable", + "name": "i", + "nameLocation": "3932:1:3", + "nodeType": "VariableDeclaration", + "scope": 880, + "src": "3927:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 814, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3927:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 817, + "initialValue": { + "hexValue": "30", + "id": 816, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3936:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3927:10:3" + }, + "loopExpression": { + "expression": { + "id": 823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3963:3:3", + "subExpression": { + "id": 822, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "3963:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 824, + "nodeType": "ExpressionStatement", + "src": "3963:3:3" + }, + "nodeType": "ForStatement", + "src": "3922:387:3" }, { "expression": { - "id": 170, + "components": [ + { + "id": 881, + "name": "fileName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "4322:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + { + "id": 882, + "name": "ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 758, + "src": "4332:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + { + "id": 883, + "name": "senderEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 770, + "src": "4341:21:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + { + "id": 884, + "name": "receiverEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 782, + "src": "4364:23:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + { + "id": 885, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 794, + "src": "4388:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "id": 886, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "4396:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + } + ], + "id": 887, "isConstant": false, + "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "id": 168, - "name": "userB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "411:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 169, - "name": "_userB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 161, - "src": "419:6:1", + "nodeType": "TupleExpression", + "src": "4321:84:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "tuple(string memory[] memory,string memory[] memory,string memory[] memory,string memory[] memory,address[] memory,address[] memory)" + } + }, + "functionReturnParameters": 741, + "id": 888, + "nodeType": "Return", + "src": "4314:91:3" + } + ] + }, + "functionSelector": "914e3144", + "id": 890, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSharedFiles", + "nameLocation": "3332:14:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 722, + "nodeType": "ParameterList", + "parameters": [], + "src": "3346:2:3" + }, + "returnParameters": { + "id": 741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 725, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 890, + "src": "3370:15:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 723, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3370:6:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, - "src": "411:14:1", + "id": 724, + "nodeType": "ArrayTypeName", + "src": "3370:8:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" } }, - "id": 171, - "nodeType": "ExpressionStatement", - "src": "411:14:1" - } - ] - }, - "id": 173, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 162, - "nodeType": "ParameterList", - "parameters": [ + "visibility": "internal" + }, { "constant": false, - "id": 159, + "id": 728, "mutability": "mutable", - "name": "_userA", - "nameLocation": "361:6:1", + "name": "", + "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 173, - "src": "353:14:1", + "scope": 890, + "src": "3391:15:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" }, "typeName": { - "id": 158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "353:7:1", - "stateMutability": "nonpayable", + "baseType": { + "id": 726, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3391:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 727, + "nodeType": "ArrayTypeName", + "src": "3391:8:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" } }, "visibility": "internal" }, { "constant": false, - "id": 161, + "id": 731, "mutability": "mutable", - "name": "_userB", - "nameLocation": "377:6:1", + "name": "", + "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 173, - "src": "369:14:1", + "scope": 890, + "src": "3412:15:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" }, "typeName": { - "id": 160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "369:7:1", - "stateMutability": "nonpayable", + "baseType": { + "id": 729, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3412:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 730, + "nodeType": "ArrayTypeName", + "src": "3412:8:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" } }, "visibility": "internal" - } - ], - "src": "352:32:1" - }, - "returnParameters": { - "id": 163, - "nodeType": "ParameterList", - "parameters": [], - "src": "385:0:1" - }, - "scope": 755, - "src": "341:89:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 190, - "nodeType": "Block", - "src": "461:73:1", - "statements": [ + }, { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 176, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967281, - "src": "476:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "476:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 178, - "name": "userA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "490:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 180, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "475:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 181, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967281, - "src": "501:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "501:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 183, - "name": "userB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "515:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "501:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 185, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "500:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "475:46:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 175, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "467:7:1", + "constant": false, + "id": 734, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 890, + "src": "3433:15:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 732, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3433:6:3", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, - "id": 187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "467:55:1", - "tryCall": false, + "id": 733, + "nodeType": "ArrayTypeName", + "src": "3433:8:3", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" } }, - "id": 188, - "nodeType": "ExpressionStatement", - "src": "467:55:1" + "visibility": "internal" }, { - "id": 189, - "nodeType": "PlaceholderStatement", - "src": "528:1:1" + "constant": false, + "id": 737, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 890, + "src": "3454:16:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3454:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 736, + "nodeType": "ArrayTypeName", + "src": "3454:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 740, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 890, + "src": "3476:16:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 738, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3476:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 739, + "nodeType": "ArrayTypeName", + "src": "3476:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" } - ] - }, - "id": 191, - "name": "isPartOfChannel", - "nameLocation": "443:15:1", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 174, - "nodeType": "ParameterList", - "parameters": [], - "src": "458:2:1" + ], + "src": "3369:127:3" }, - "src": "434:100:1", + "scope": 925, + "src": "3323:1087:3", + "stateMutability": "view", "virtual": false, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 216, + "id": 923, "nodeType": "Block", - "src": "750:114:1", + "src": "4632:290:3", "statements": [ { - "expression": { + "assignments": [ + 907 + ], + "declarations": [ + { + "constant": false, + "id": 907, + "mutability": "mutable", + "name": "newFile", + "nameLocation": "4650:7:3", + "nodeType": "VariableDeclaration", + "scope": 923, + "src": "4638:19:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_memory_ptr", + "typeString": "struct ShareChannel.file" + }, + "typeName": { + "id": 906, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 905, + "name": "file", + "nodeType": "IdentifierPath", + "referencedDeclaration": 339, + "src": "4638:4:3" + }, + "referencedDeclaration": 339, + "src": "4638:4:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage_ptr", + "typeString": "struct ShareChannel.file" + } + }, + "visibility": "internal" + } + ], + "id": 916, + "initialValue": { "arguments": [ { - "id": 207, + "id": 909, "name": "_fileName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 193, - "src": "765:9:1", + "referencedDeclaration": 892, + "src": "4683:9:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 208, + "id": 910, "name": "_ipfsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 195, - "src": "776:9:1", + "referencedDeclaration": 894, + "src": "4710:9:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 209, + "id": 911, "name": "_senderEncryptedAESKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "787:22:1", + "referencedDeclaration": 896, + "src": "4750:22:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "id": 210, + "id": 912, "name": "_receiverEncryptedAESKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 199, - "src": "811:24:1", + "referencedDeclaration": 898, + "src": "4805:24:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { - "expression": { - "id": 211, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967281, - "src": "837:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "837:10:1", + "id": 913, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 900, + "src": "4845:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 213, + "id": 914, "name": "_receiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 201, - "src": "849:9:1", + "referencedDeclaration": 902, + "src": "4870:9:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12630,18 +15174,91 @@ "typeString": "address" } ], - "id": 206, - "name": "_addFile", + "id": 908, + "name": "file", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 315, - "src": "756:8:1", + "referencedDeclaration": 339, + "src": "4660:4:3", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,string memory,string memory,address,address)" + "typeIdentifier": "t_type$_t_struct$_file_$339_storage_ptr_$", + "typeString": "type(struct ShareChannel.file storage pointer)" + } + }, + "id": 915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "fileName", + "ipfsHash", + "senderEncryptedAESKey", + "receiverEncryptedAESKey", + "sender", + "receiver" + ], + "nodeType": "FunctionCall", + "src": "4660:226:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_memory_ptr", + "typeString": "struct ShareChannel.file memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4638:248:3" + }, + { + "expression": { + "arguments": [ + { + "id": 920, + "name": "newFile", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "4909:7:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_memory_ptr", + "typeString": "struct ShareChannel.file memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_file_$339_memory_ptr", + "typeString": "struct ShareChannel.file memory" + } + ], + "expression": { + "id": 917, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "4892:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "4892:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_file_$339_storage_$dyn_storage_ptr_$_t_struct$_file_$339_storage_$returns$__$bound_to$_t_array$_t_struct$_file_$339_storage_$dyn_storage_ptr_$", + "typeString": "function (struct ShareChannel.file storage ref[] storage pointer,struct ShareChannel.file storage ref)" } }, - "id": 214, + "id": 921, "isConstant": false, "isLValue": false, "isPure": false, @@ -12649,54 +15266,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "756:103:1", + "src": "4892:25:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 215, + "id": 922, "nodeType": "ExpressionStatement", - "src": "756:103:1" + "src": "4892:25:3" } ] }, - "functionSelector": "a6aeff57", - "id": 217, + "id": 924, "implemented": true, "kind": "function", - "modifiers": [ - { - "id": 204, - "kind": "modifierInvocation", - "modifierName": { - "id": 203, - "name": "isPartOfChannel", - "nodeType": "IdentifierPath", - "referencedDeclaration": 191, - "src": "734:15:1" - }, - "nodeType": "ModifierInvocation", - "src": "734:15:1" - } - ], - "name": "sendFile", - "nameLocation": "547:8:1", + "modifiers": [], + "name": "_addFile", + "nameLocation": "4423:8:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 202, + "id": 903, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 193, + "id": 892, "mutability": "mutable", "name": "_fileName", - "nameLocation": "575:9:1", + "nameLocation": "4451:9:3", "nodeType": "VariableDeclaration", - "scope": 217, - "src": "561:23:1", + "scope": 924, + "src": "4437:23:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -12704,10 +15306,10 @@ "typeString": "string" }, "typeName": { - "id": 192, + "id": 891, "name": "string", "nodeType": "ElementaryTypeName", - "src": "561:6:1", + "src": "4437:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -12717,13 +15319,13 @@ }, { "constant": false, - "id": 195, + "id": 894, "mutability": "mutable", "name": "_ipfsHash", - "nameLocation": "604:9:1", + "nameLocation": "4480:9:3", "nodeType": "VariableDeclaration", - "scope": 217, - "src": "590:23:1", + "scope": 924, + "src": "4466:23:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -12731,10 +15333,10 @@ "typeString": "string" }, "typeName": { - "id": 194, + "id": 893, "name": "string", "nodeType": "ElementaryTypeName", - "src": "590:6:1", + "src": "4466:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -12744,13 +15346,40 @@ }, { "constant": false, - "id": 197, + "id": 896, "mutability": "mutable", "name": "_senderEncryptedAESKey", - "nameLocation": "633:22:1", + "nameLocation": "4509:22:3", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "4495:36:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 895, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4495:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 898, + "mutability": "mutable", + "name": "_receiverEncryptedAESKey", + "nameLocation": "4551:24:3", "nodeType": "VariableDeclaration", - "scope": 217, - "src": "619:36:1", + "scope": 924, + "src": "4537:38:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -12758,10 +15387,10 @@ "typeString": "string" }, "typeName": { - "id": 196, + "id": 897, "name": "string", "nodeType": "ElementaryTypeName", - "src": "619:6:1", + "src": "4537:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -12771,372 +15400,542 @@ }, { "constant": false, - "id": 199, + "id": 900, + "mutability": "mutable", + "name": "_sender", + "nameLocation": "4589:7:3", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "4581:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 899, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4581:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 902, "mutability": "mutable", - "name": "_receiverEncryptedAESKey", - "nameLocation": "675:24:1", + "name": "_receiver", + "nameLocation": "4610:9:3", "nodeType": "VariableDeclaration", - "scope": 217, - "src": "661:38:1", + "scope": 924, + "src": "4602:17:3", "stateVariable": false, - "storageLocation": "memory", + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 198, - "name": "string", + "id": 901, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "661:6:1", + "src": "4602:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" + } + ], + "src": "4431:192:3" + }, + "returnParameters": { + "id": 904, + "nodeType": "ParameterList", + "parameters": [], + "src": "4632:0:3" + }, + "scope": 925, + "src": "4414:508:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 926, + "src": "68:4857:3", + "usedErrors": [] + } + ], + "src": "32:4894:3" + }, + "legacyAST": { + "absolutePath": "project:/contracts/ShareChannel.sol", + "exportedSymbols": { + "ShareChannel": [ + 925 + ] + }, + "id": 926, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 322, + "literals": [ + "solidity", + ">=", + "0.4", + ".21", + "<=", + "0.8", + ".13" + ], + "nodeType": "PragmaDirective", + "src": "32:34:3" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ShareChannel", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 925, + "linearizedBaseContracts": [ + 925 + ], + "name": "ShareChannel", + "nameLocation": "77:12:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "deb22e9a", + "id": 324, + "mutability": "mutable", + "name": "userA", + "nameLocation": "110:5:3", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "95:20:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 323, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "95:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "cb1a295f", + "id": 326, + "mutability": "mutable", + "name": "userB", + "nameLocation": "134:5:3", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "119:20:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 325, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "119:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "canonicalName": "ShareChannel.file", + "id": 339, + "members": [ + { + "constant": false, + "id": 328, + "mutability": "mutable", + "name": "fileName", + "nameLocation": "169:8:3", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "162:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 327, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "162:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 330, + "mutability": "mutable", + "name": "ipfsHash", + "nameLocation": "190:8:3", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "183:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 329, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "183:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 332, + "mutability": "mutable", + "name": "senderEncryptedAESKey", + "nameLocation": "211:21:3", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "204:28:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 331, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "204:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 334, + "mutability": "mutable", + "name": "receiverEncryptedAESKey", + "nameLocation": "245:23:3", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "238:30:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 333, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "238:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 336, + "mutability": "mutable", + "name": "sender", + "nameLocation": "282:6:3", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "274:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 335, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "274:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 338, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "302:8:3", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "294:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 337, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "294:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "name": "file", + "nameLocation": "151:4:3", + "nodeType": "StructDefinition", + "scope": 925, + "src": "144:171:3", + "visibility": "public" + }, + { + "constant": false, + "id": 343, + "mutability": "mutable", + "name": "sharedFiles", + "nameLocation": "326:11:3", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "319:18:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file[]" + }, + "typeName": { + "baseType": { + "id": 341, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 340, + "name": "file", + "nodeType": "IdentifierPath", + "referencedDeclaration": 339, + "src": "319:4:3" }, - { - "constant": false, - "id": 201, - "mutability": "mutable", - "name": "_receiver", - "nameLocation": "713:9:1", - "nodeType": "VariableDeclaration", - "scope": 217, - "src": "705:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 200, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "705:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" + "referencedDeclaration": 339, + "src": "319:4:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage_ptr", + "typeString": "struct ShareChannel.file" } - ], - "src": "555:171:1" - }, - "returnParameters": { - "id": 205, - "nodeType": "ParameterList", - "parameters": [], - "src": "750:0:1" + }, + "id": 342, + "nodeType": "ArrayTypeName", + "src": "319:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage_ptr", + "typeString": "struct ShareChannel.file[]" + } }, - "scope": 755, - "src": "538:326:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" + "visibility": "internal" }, { "body": { - "id": 242, + "id": 358, "nodeType": "Block", - "src": "1080:112:1", + "src": "386:45:3", "statements": [ { "expression": { - "arguments": [ - { - "id": 233, - "name": "_fileName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 219, - "src": "1095:9:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 234, - "name": "_ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "1106:9:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 235, - "name": "_senderEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 223, - "src": "1117:22:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 236, - "name": "_receiverEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "1141:24:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 237, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "1167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 238, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967281, - "src": "1176:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1176:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "id": 352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 350, + "name": "userA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 324, + "src": "392:5:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 232, - "name": "_addFile", + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 351, + "name": "_userA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 315, - "src": "1086:8:1", + "referencedDeclaration": 345, + "src": "400:6:3", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,string memory,string memory,address,address)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1086:101:1", - "tryCall": false, + "src": "392:14:3", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 241, + "id": 353, "nodeType": "ExpressionStatement", - "src": "1086:101:1" - } - ] - }, - "functionSelector": "a73e7571", - "id": 243, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 230, - "kind": "modifierInvocation", - "modifierName": { - "id": 229, - "name": "isPartOfChannel", - "nodeType": "IdentifierPath", - "referencedDeclaration": 191, - "src": "1064:15:1" - }, - "nodeType": "ModifierInvocation", - "src": "1064:15:1" - } - ], - "name": "receiveFile", - "nameLocation": "876:11:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 228, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 219, - "mutability": "mutable", - "name": "_fileName", - "nameLocation": "907:9:1", - "nodeType": "VariableDeclaration", - "scope": 243, - "src": "893:23:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 218, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "893:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 221, - "mutability": "mutable", - "name": "_ipfsHash", - "nameLocation": "936:9:1", - "nodeType": "VariableDeclaration", - "scope": 243, - "src": "922:23:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 220, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "922:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" + "src": "392:14:3" }, { - "constant": false, - "id": 223, - "mutability": "mutable", - "name": "_senderEncryptedAESKey", - "nameLocation": "965:22:1", - "nodeType": "VariableDeclaration", - "scope": 243, - "src": "951:36:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 222, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "951:6:1", + "expression": { + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 354, + "name": "userB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 326, + "src": "412:5:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 355, + "name": "_userB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 347, + "src": "420:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "412:14:3", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "visibility": "internal" - }, + "id": 357, + "nodeType": "ExpressionStatement", + "src": "412:14:3" + } + ] + }, + "id": 359, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 348, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 225, + "id": 345, "mutability": "mutable", - "name": "_receiverEncryptedAESKey", - "nameLocation": "1007:24:1", + "name": "_userA", + "nameLocation": "362:6:3", "nodeType": "VariableDeclaration", - "scope": 243, - "src": "993:38:1", + "scope": 359, + "src": "354:14:3", "stateVariable": false, - "storageLocation": "memory", + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 224, - "name": "string", + "id": 344, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "993:6:1", + "src": "354:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" }, { "constant": false, - "id": 227, + "id": 347, "mutability": "mutable", - "name": "_sender", - "nameLocation": "1045:7:1", + "name": "_userB", + "nameLocation": "378:6:3", "nodeType": "VariableDeclaration", - "scope": 243, - "src": "1037:15:1", + "scope": 359, + "src": "370:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13144,10 +15943,10 @@ "typeString": "address" }, "typeName": { - "id": 226, + "id": 346, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1037:7:1", + "src": "370:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13157,231 +15956,388 @@ "visibility": "internal" } ], - "src": "887:169:1" + "src": "353:32:3" }, "returnParameters": { - "id": 231, + "id": 349, "nodeType": "ParameterList", "parameters": [], - "src": "1080:0:1" + "src": "386:0:3" }, - "scope": 755, - "src": "867:325:1", + "scope": 925, + "src": "342:89:3", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 255, + "id": 376, "nodeType": "Block", - "src": "1261:34:1", + "src": "462:73:3", "statements": [ { "expression": { "arguments": [ { - "id": 251, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 245, - "src": "1278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "hexValue": "74727565", - "id": 252, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 372, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "bool", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "1285:4:1", + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 362, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "477:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "477:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 364, + "name": "userA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 324, + "src": "491:5:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "477:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 366, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "476:21:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 367, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "502:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "502:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 369, + "name": "userB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 326, + "src": "516:5:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "502:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 371, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "501:21:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "476:46:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" - }, - "value": "true" + } } ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], - "id": 250, - "name": "_findFiles", + "id": 361, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 381, - "src": "1267:10:1", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "468:7:3", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,bool) view returns (string memory[] memory,string memory[] memory,string memory[] memory,string memory[] memory,address[] memory,address[] memory)" - } - }, - "id": 253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1267:23:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "tuple(string memory[] memory,string memory[] memory,string memory[] memory,string memory[] memory,address[] memory,address[] memory)" - } - }, - "id": 254, - "nodeType": "ExpressionStatement", - "src": "1267:23:1" - } - ] - }, - "functionSelector": "4266f8c5", - "id": 256, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 248, - "kind": "modifierInvocation", - "modifierName": { - "id": 247, - "name": "isPartOfChannel", - "nodeType": "IdentifierPath", - "referencedDeclaration": 191, - "src": "1245:15:1" - }, - "nodeType": "ModifierInvocation", - "src": "1245:15:1" - } - ], - "name": "getSentFiles", - "nameLocation": "1205:12:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 246, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 245, - "mutability": "mutable", - "name": "_user", - "nameLocation": "1226:5:1", - "nodeType": "VariableDeclaration", - "scope": 256, - "src": "1218:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1218:7:1", - "stateMutability": "nonpayable", + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "468:55:3", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "visibility": "internal" + "id": 374, + "nodeType": "ExpressionStatement", + "src": "468:55:3" + }, + { + "id": 375, + "nodeType": "PlaceholderStatement", + "src": "529:1:3" } - ], - "src": "1217:15:1" + ] }, - "returnParameters": { - "id": 249, + "id": 377, + "name": "isPartOfChannel", + "nameLocation": "444:15:3", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 360, "nodeType": "ParameterList", "parameters": [], - "src": "1261:0:1" + "src": "459:2:3" }, - "scope": 755, - "src": "1196:99:1", - "stateMutability": "view", + "src": "435:100:3", "virtual": false, - "visibility": "public" + "visibility": "internal" }, { "body": { - "id": 268, + "id": 402, "nodeType": "Block", - "src": "1368:35:1", + "src": "751:114:3", "statements": [ { "expression": { "arguments": [ { - "id": 264, - "name": "_user", + "id": 393, + "name": "_fileName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 258, - "src": "1385:5:1", + "referencedDeclaration": 379, + "src": "766:9:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 394, + "name": "_ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "777:9:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 395, + "name": "_senderEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 383, + "src": "788:22:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 396, + "name": "_receiverEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 385, + "src": "812:24:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } }, { - "hexValue": "66616c7365", - "id": 265, + "expression": { + "id": 397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "838:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 398, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "bool", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "1392:5:1", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "838:10:3", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 399, + "name": "_receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "850:9:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, { "typeIdentifier": "t_address", "typeString": "address" }, { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 263, - "name": "_findFiles", + "id": 392, + "name": "_addFile", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 381, - "src": "1374:10:1", + "referencedDeclaration": 924, + "src": "757:8:3", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,bool) view returns (string memory[] memory,string memory[] memory,string memory[] memory,string memory[] memory,address[] memory,address[] memory)" + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", + "typeString": "function (string memory,string memory,string memory,string memory,address,address)" } }, - "id": 266, + "id": 400, "isConstant": false, "isLValue": false, "isPure": false, @@ -13389,197 +16345,162 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1374:24:1", + "src": "757:103:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "tuple(string memory[] memory,string memory[] memory,string memory[] memory,string memory[] memory,address[] memory,address[] memory)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 267, + "id": 401, "nodeType": "ExpressionStatement", - "src": "1374:24:1" + "src": "757:103:3" } ] }, - "functionSelector": "93b0394c", - "id": 269, + "functionSelector": "a6aeff57", + "id": 403, "implemented": true, "kind": "function", "modifiers": [ { - "id": 261, + "id": 390, "kind": "modifierInvocation", "modifierName": { - "id": 260, + "id": 389, "name": "isPartOfChannel", "nodeType": "IdentifierPath", - "referencedDeclaration": 191, - "src": "1352:15:1" + "referencedDeclaration": 377, + "src": "735:15:3" }, "nodeType": "ModifierInvocation", - "src": "1352:15:1" + "src": "735:15:3" } ], - "name": "getReceivedFiles", - "nameLocation": "1308:16:1", + "name": "sendFile", + "nameLocation": "548:8:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 259, + "id": 388, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 258, + "id": 379, "mutability": "mutable", - "name": "_user", - "nameLocation": "1333:5:1", + "name": "_fileName", + "nameLocation": "576:9:3", "nodeType": "VariableDeclaration", - "scope": 269, - "src": "1325:13:1", + "scope": 403, + "src": "562:23:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 257, - "name": "address", + "id": 378, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "1325:7:1", - "stateMutability": "nonpayable", + "src": "562:6:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "visibility": "internal" - } - ], - "src": "1324:15:1" - }, - "returnParameters": { - "id": 262, - "nodeType": "ParameterList", - "parameters": [], - "src": "1368:0:1" - }, - "scope": 755, - "src": "1299:104:1", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 280, - "nodeType": "Block", - "src": "1471:32:1", - "statements": [ + }, { - "expression": { - "components": [ - { - "id": 276, - "name": "userA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "1485:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 277, - "name": "userB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "1492:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 278, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1484:14:1", + "constant": false, + "id": 381, + "mutability": "mutable", + "name": "_ipfsHash", + "nameLocation": "605:9:3", + "nodeType": "VariableDeclaration", + "scope": 403, + "src": "591:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 380, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "591:6:3", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_address_$", - "typeString": "tuple(address,address)" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, - "functionReturnParameters": 275, - "id": 279, - "nodeType": "Return", - "src": "1477:21:1" - } - ] - }, - "functionSelector": "e9ad3239", - "id": 281, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getChannelUsers", - "nameLocation": "1416:15:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 270, - "nodeType": "ParameterList", - "parameters": [], - "src": "1431:2:1" - }, - "returnParameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ + "visibility": "internal" + }, { "constant": false, - "id": 272, + "id": 383, "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", + "name": "_senderEncryptedAESKey", + "nameLocation": "634:22:3", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1454:7:1", + "scope": 403, + "src": "620:36:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 271, - "name": "address", + "id": 382, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "1454:7:1", - "stateMutability": "nonpayable", + "src": "620:6:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 385, + "mutability": "mutable", + "name": "_receiverEncryptedAESKey", + "nameLocation": "676:24:3", + "nodeType": "VariableDeclaration", + "scope": 403, + "src": "662:38:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 384, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "662:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "visibility": "internal" }, { "constant": false, - "id": 274, + "id": 387, "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", + "name": "_receiver", + "nameLocation": "714:9:3", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1463:7:1", + "scope": 403, + "src": "706:17:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13587,10 +16508,10 @@ "typeString": "address" }, "typeName": { - "id": 273, + "id": 386, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1463:7:1", + "src": "706:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13600,480 +16521,472 @@ "visibility": "internal" } ], - "src": "1453:18:1" + "src": "556:171:3" }, - "scope": 755, - "src": "1407:96:1", - "stateMutability": "view", + "returnParameters": { + "id": 391, + "nodeType": "ParameterList", + "parameters": [], + "src": "751:0:3" + }, + "scope": 925, + "src": "539:326:3", + "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 314, + "id": 555, "nodeType": "Block", - "src": "1725:290:1", + "src": "1429:819:3", "statements": [ { "assignments": [ - 298 + 420 ], "declarations": [ { "constant": false, - "id": 298, + "id": 420, "mutability": "mutable", - "name": "newFile", - "nameLocation": "1743:7:1", + "name": "arraySize", + "nameLocation": "1440:9:3", "nodeType": "VariableDeclaration", - "scope": 314, - "src": "1731:19:1", + "scope": 555, + "src": "1435:14:3", "stateVariable": false, - "storageLocation": "memory", + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_memory_ptr", - "typeString": "struct ShareChannel.file" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 297, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 296, - "name": "file", - "nodeType": "IdentifierPath", - "referencedDeclaration": 157, - "src": "1731:4:1" - }, - "referencedDeclaration": 157, - "src": "1731:4:1", + "id": 419, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1435:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage_ptr", - "typeString": "struct ShareChannel.file" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "visibility": "internal" } ], - "id": 307, + "id": 422, "initialValue": { - "arguments": [ - { - "id": 300, - "name": "_fileName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "1776:9:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 301, - "name": "_ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "1803:9:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 302, - "name": "_senderEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 287, - "src": "1843:22:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 303, - "name": "_receiverEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "1898:24:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 304, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "1938:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 305, - "name": "_receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 293, - "src": "1963:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 299, - "name": "file", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 157, - "src": "1753:4:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_file_$157_storage_ptr_$", - "typeString": "type(struct ShareChannel.file storage pointer)" - } - }, - "id": 306, + "hexValue": "30", + "id": 421, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [ - "fileName", - "ipfsHash", - "senderEncryptedAESKey", - "receiverEncryptedAESKey", - "sender", - "receiver" - ], - "nodeType": "FunctionCall", - "src": "1753:226:1", - "tryCall": false, + "nodeType": "Literal", + "src": "1452:1:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_memory_ptr", - "typeString": "struct ShareChannel.file memory" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1731:248:1" + "src": "1435:18:3" }, { - "expression": { - "arguments": [ + "body": { + "id": 452, + "nodeType": "Block", + "src": "1503:122:3", + "statements": [ { - "id": 311, - "name": "newFile", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "2002:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_memory_ptr", - "typeString": "struct ShareChannel.file memory" + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 434, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "1516:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 436, + "indexExpression": { + "id": 435, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 424, + "src": "1528:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1516:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 437, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 336, + "src": "1516:21:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 438, + "name": "_user1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 405, + "src": "1541:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1516:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 440, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "1551:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 442, + "indexExpression": { + "id": 441, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 424, + "src": "1563:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1551:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 443, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 338, + "src": "1551:23:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 444, + "name": "_user2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 407, + "src": "1578:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1551:33:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1516:68:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 451, + "nodeType": "IfStatement", + "src": "1513:106:3", + "trueBody": { + "id": 450, + "nodeType": "Block", + "src": "1585:34:3", + "statements": [ + { + "expression": { + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1597:11:3", + "subExpression": { + "id": 447, + "name": "arraySize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "1597:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 449, + "nodeType": "ExpressionStatement", + "src": "1597:11:3" + } + ] } } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_file_$157_memory_ptr", - "typeString": "struct ShareChannel.file memory" - } - ], + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 427, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 424, + "src": "1475:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { "expression": { - "id": 308, + "id": 428, "name": "sharedFiles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "1985:11:1", + "referencedDeclaration": 343, + "src": "1479:11:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", "typeString": "struct ShareChannel.file storage ref[] storage ref" } }, - "id": 310, + "id": 429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "push", + "memberName": "length", "nodeType": "MemberAccess", - "src": "1985:16:1", + "src": "1479:18:3", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_file_$157_storage_$dyn_storage_ptr_$_t_struct$_file_$157_storage_$returns$__$bound_to$_t_array$_t_struct$_file_$157_storage_$dyn_storage_ptr_$", - "typeString": "function (struct ShareChannel.file storage ref[] storage pointer,struct ShareChannel.file storage ref)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1985:25:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 313, - "nodeType": "ExpressionStatement", - "src": "1985:25:1" - } - ] - }, - "id": 315, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addFile", - "nameLocation": "1516:8:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 294, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 283, - "mutability": "mutable", - "name": "_fileName", - "nameLocation": "1544:9:1", - "nodeType": "VariableDeclaration", - "scope": 315, - "src": "1530:23:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 282, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1530:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 285, - "mutability": "mutable", - "name": "_ipfsHash", - "nameLocation": "1573:9:1", - "nodeType": "VariableDeclaration", - "scope": 315, - "src": "1559:23:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 284, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1559:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 287, - "mutability": "mutable", - "name": "_senderEncryptedAESKey", - "nameLocation": "1602:22:1", - "nodeType": "VariableDeclaration", - "scope": 315, - "src": "1588:36:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 286, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1588:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 289, - "mutability": "mutable", - "name": "_receiverEncryptedAESKey", - "nameLocation": "1644:24:1", - "nodeType": "VariableDeclaration", - "scope": 315, - "src": "1630:38:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 288, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1630:6:1", + "src": "1475:22:3", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 291, - "mutability": "mutable", - "name": "_sender", - "nameLocation": "1682:7:1", - "nodeType": "VariableDeclaration", - "scope": 315, - "src": "1674:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 290, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1674:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "visibility": "internal" - }, - { - "constant": false, - "id": 293, - "mutability": "mutable", - "name": "_receiver", - "nameLocation": "1703:9:1", - "nodeType": "VariableDeclaration", - "scope": 315, - "src": "1695:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 292, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1695:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "id": 453, + "initializationExpression": { + "assignments": [ + 424 + ], + "declarations": [ + { + "constant": false, + "id": 424, + "mutability": "mutable", + "name": "i", + "nameLocation": "1468:1:3", + "nodeType": "VariableDeclaration", + "scope": 453, + "src": "1463:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 423, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1463:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 426, + "initialValue": { + "hexValue": "30", + "id": 425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1472:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1463:10:3" }, - "visibility": "internal" - } - ], - "src": "1524:192:1" - }, - "returnParameters": { - "id": 295, - "nodeType": "ParameterList", - "parameters": [], - "src": "1725:0:1" - }, - "scope": 755, - "src": "1507:508:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 380, - "nodeType": "Block", - "src": "2235:491:1", - "statements": [ + "loopExpression": { + "expression": { + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1499:3:3", + "subExpression": { + "id": 431, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 424, + "src": "1499:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 433, + "nodeType": "ExpressionStatement", + "src": "1499:3:3" + }, + "nodeType": "ForStatement", + "src": "1459:166:3" + }, { "assignments": [ - 344, - 347, - 350 + 458 ], "declarations": [ { "constant": false, - "id": 344, + "id": 458, "mutability": "mutable", "name": "fileName", - "nameLocation": "2302:8:1", + "nameLocation": "1647:8:3", "nodeType": "VariableDeclaration", - "scope": 380, - "src": "2286:24:1", + "scope": 555, + "src": "1631:24:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -14082,34 +16995,112 @@ }, "typeName": { "baseType": { - "id": 342, + "id": 456, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2286:6:1", + "src": "1631:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, - "id": 343, + "id": 457, "nodeType": "ArrayTypeName", - "src": "2286:8:1", + "src": "1631:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", "typeString": "string[]" } }, "visibility": "internal" + } + ], + "id": 464, + "initialValue": { + "arguments": [ + { + "id": 462, + "name": "arraySize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "1671:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1658:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 459, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1662:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 460, + "nodeType": "ArrayTypeName", + "src": "1662:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + } }, + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1658:23:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1631:50:3" + }, + { + "assignments": [ + 469 + ], + "declarations": [ { "constant": false, - "id": 347, + "id": 469, "mutability": "mutable", "name": "ipfsHash", - "nameLocation": "2334:8:1", + "nameLocation": "1703:8:3", "nodeType": "VariableDeclaration", - "scope": 380, - "src": "2318:24:1", + "scope": 555, + "src": "1687:24:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -14118,34 +17109,112 @@ }, "typeName": { "baseType": { - "id": 345, + "id": 467, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2318:6:1", + "src": "1687:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, - "id": 346, + "id": 468, "nodeType": "ArrayTypeName", - "src": "2318:8:1", + "src": "1687:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", "typeString": "string[]" } }, "visibility": "internal" + } + ], + "id": 475, + "initialValue": { + "arguments": [ + { + "id": 473, + "name": "arraySize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "1727:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1714:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 470, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1718:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 471, + "nodeType": "ArrayTypeName", + "src": "1718:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + } }, + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1714:23:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1687:50:3" + }, + { + "assignments": [ + 480 + ], + "declarations": [ { "constant": false, - "id": 350, + "id": 480, "mutability": "mutable", "name": "senderEncryptedAESKey", - "nameLocation": "2366:21:1", + "nameLocation": "1759:21:3", "nodeType": "VariableDeclaration", - "scope": 380, - "src": "2350:37:1", + "scope": 555, + "src": "1743:37:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -14154,396 +17223,950 @@ }, "typeName": { "baseType": { - "id": 348, + "id": 478, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1743:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 479, + "nodeType": "ArrayTypeName", + "src": "1743:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + } + ], + "id": 486, + "initialValue": { + "arguments": [ + { + "id": 484, + "name": "arraySize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "1796:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1783:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 481, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2350:6:1", + "src": "1787:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 482, + "nodeType": "ArrayTypeName", + "src": "1787:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + } + }, + "id": 485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1783:23:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1743:63:3" + }, + { + "assignments": [ + 488 + ], + "declarations": [ + { + "constant": false, + "id": 488, + "mutability": "mutable", + "name": "j", + "nameLocation": "1818:1:3", + "nodeType": "VariableDeclaration", + "scope": 555, + "src": "1813:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 487, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1813:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 490, + "initialValue": { + "hexValue": "30", + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1822:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1813:10:3" + }, + { + "body": { + "id": 548, + "nodeType": "Block", + "src": "1873:290:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 502, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "1886:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 504, + "indexExpression": { + "id": 503, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 492, + "src": "1898:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1886:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 505, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 336, + "src": "1886:21:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 506, + "name": "_user1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 405, + "src": "1911:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1886:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 508, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "1921:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 510, + "indexExpression": { + "id": 509, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 492, + "src": "1933:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1921:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 511, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 338, + "src": "1921:23:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 512, + "name": "_user2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 407, + "src": "1948:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1921:33:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1886:68:3", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 349, - "nodeType": "ArrayTypeName", - "src": "2350:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" + "id": 547, + "nodeType": "IfStatement", + "src": "1883:274:3", + "trueBody": { + "id": 546, + "nodeType": "Block", + "src": "1955:202:3", + "statements": [ + { + "expression": { + "id": 522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 515, + "name": "fileName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "1967:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 517, + "indexExpression": { + "id": 516, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 488, + "src": "1976:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1967:11:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 518, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "1981:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 520, + "indexExpression": { + "id": 519, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 492, + "src": "1993:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1981:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 521, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fileName", + "nodeType": "MemberAccess", + "referencedDeclaration": 328, + "src": "1981:23:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "src": "1967:37:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 523, + "nodeType": "ExpressionStatement", + "src": "1967:37:3" + }, + { + "expression": { + "id": 531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 524, + "name": "ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 469, + "src": "2016:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 526, + "indexExpression": { + "id": 525, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 488, + "src": "2025:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2016:11:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 527, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "2030:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 529, + "indexExpression": { + "id": 528, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 492, + "src": "2042:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2030:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 530, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ipfsHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 330, + "src": "2030:23:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "src": "2016:37:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 532, + "nodeType": "ExpressionStatement", + "src": "2016:37:3" + }, + { + "expression": { + "id": 540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 533, + "name": "senderEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "2065:21:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 535, + "indexExpression": { + "id": 534, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 488, + "src": "2087:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2065:24:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 536, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "2092:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 538, + "indexExpression": { + "id": 537, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 492, + "src": "2104:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2092:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 539, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "senderEncryptedAESKey", + "nodeType": "MemberAccess", + "referencedDeclaration": 332, + "src": "2092:36:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "src": "2065:63:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 541, + "nodeType": "ExpressionStatement", + "src": "2065:63:3" + }, + { + "expression": { + "id": 544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 542, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 488, + "src": "2140:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2145:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2140:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 545, + "nodeType": "ExpressionStatement", + "src": "2140:6:3" + } + ] } - }, - "visibility": "internal" - } - ], - "id": 355, - "initialValue": { - "arguments": [ - { - "id": 352, - "name": "_user", + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 495, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 492, + "src": "1845:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 496, + "name": "sharedFiles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 317, - "src": "2408:5:1", + "referencedDeclaration": 343, + "src": "1849:11:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" } }, - { - "id": 353, - "name": "_getSent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "2415:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 351, - "name": "_findFiles1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 540, - "src": "2396:11:1", + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1849:18:3", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (address,bool) view returns (string memory[] memory,string memory[] memory,string memory[] memory)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2396:28:1", - "tryCall": false, + "src": "1845:22:3", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", - "typeString": "tuple(string memory[] memory,string memory[] memory,string memory[] memory)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "2278:146:1" - }, - { - "assignments": [ - 360, - 363, - 366 - ], - "declarations": [ - { - "constant": false, - "id": 360, - "mutability": "mutable", - "name": "receiverEncryptedAESKey", - "nameLocation": "2455:23:1", - "nodeType": "VariableDeclaration", - "scope": 380, - "src": "2439:39:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 358, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2439:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 359, - "nodeType": "ArrayTypeName", - "src": "2439:8:1", + "id": 549, + "initializationExpression": { + "assignments": [ + 492 + ], + "declarations": [ + { + "constant": false, + "id": 492, + "mutability": "mutable", + "name": "i", + "nameLocation": "1838:1:3", + "nodeType": "VariableDeclaration", + "scope": 549, + "src": "1833:6:3", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 363, - "mutability": "mutable", - "name": "sender", - "nameLocation": "2503:6:1", - "nodeType": "VariableDeclaration", - "scope": 380, - "src": "2486:23:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 361, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2486:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 362, - "nodeType": "ArrayTypeName", - "src": "2486:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 366, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "2534:8:1", - "nodeType": "VariableDeclaration", - "scope": 380, - "src": "2517:25:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 364, - "name": "address", + "typeName": { + "id": 491, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2517:7:1", - "stateMutability": "nonpayable", + "src": "1833:4:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 365, - "nodeType": "ArrayTypeName", - "src": "2517:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } + "visibility": "internal" + } + ], + "id": 494, + "initialValue": { + "hexValue": "30", + "id": 493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1842:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "visibility": "internal" - } - ], - "id": 371, - "initialValue": { - "arguments": [ - { - "id": 368, - "name": "_user", + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1833:10:3" + }, + "loopExpression": { + "expression": { + "id": 500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1869:3:3", + "subExpression": { + "id": 499, + "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 317, - "src": "2563:5:1", + "referencedDeclaration": 492, + "src": "1869:1:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - { - "id": 369, - "name": "_getSent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "2570:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 367, - "name": "_findFiles2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 699, - "src": "2551:11:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,bool) view returns (string memory[] memory,address[] memory,address[] memory)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2551:28:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "tuple(string memory[] memory,address[] memory,address[] memory)" - } + "id": 501, + "nodeType": "ExpressionStatement", + "src": "1869:3:3" }, - "nodeType": "VariableDeclarationStatement", - "src": "2431:148:1" + "nodeType": "ForStatement", + "src": "1829:334:3" }, { "expression": { "components": [ { - "id": 372, + "id": 550, "name": "fileName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 344, - "src": "2601:8:1", + "referencedDeclaration": 458, + "src": "2184:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", "typeString": "string memory[] memory" } }, { - "id": 373, + "id": 551, "name": "ipfsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "2617:8:1", + "referencedDeclaration": 469, + "src": "2200:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", "typeString": "string memory[] memory" } }, { - "id": 374, + "id": 552, "name": "senderEncryptedAESKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 350, - "src": "2633:21:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - { - "id": 375, - "name": "receiverEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 360, - "src": "2662:23:1", + "referencedDeclaration": 480, + "src": "2216:21:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", "typeString": "string memory[] memory" } - }, - { - "id": 376, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 363, - "src": "2693:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "id": 377, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "2707:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } } ], - "id": 378, + "id": 553, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2593:128:1", + "src": "2176:67:3", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "tuple(string memory[] memory,string memory[] memory,string memory[] memory,string memory[] memory,address[] memory,address[] memory)" + "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", + "typeString": "tuple(string memory[] memory,string memory[] memory,string memory[] memory)" } }, - "functionReturnParameters": 339, - "id": 379, + "functionReturnParameters": 418, + "id": 554, "nodeType": "Return", - "src": "2586:135:1" + "src": "2169:74:3" } ] }, - "id": 381, + "functionSelector": "1a936e9e", + "id": 556, "implemented": true, "kind": "function", "modifiers": [], - "name": "_findFiles", - "nameLocation": "2028:10:1", + "name": "getSentFiles1", + "nameLocation": "1294:13:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 320, + "id": 408, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 317, + "id": 405, "mutability": "mutable", - "name": "_user", - "nameLocation": "2052:5:1", + "name": "_user1", + "nameLocation": "1316:6:3", "nodeType": "VariableDeclaration", - "scope": 381, - "src": "2044:13:1", + "scope": 556, + "src": "1308:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14551,10 +18174,10 @@ "typeString": "address" }, "typeName": { - "id": 316, + "id": 404, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2044:7:1", + "src": "1308:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14565,47 +18188,48 @@ }, { "constant": false, - "id": 319, + "id": 407, "mutability": "mutable", - "name": "_getSent", - "nameLocation": "2069:8:1", + "name": "_user2", + "nameLocation": "1332:6:3", "nodeType": "VariableDeclaration", - "scope": 381, - "src": "2064:13:1", + "scope": 556, + "src": "1324:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 318, - "name": "bool", + "id": 406, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "2064:4:1", + "src": "1324:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" } ], - "src": "2038:43:1" + "src": "1307:32:3" }, "returnParameters": { - "id": 339, + "id": 418, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 323, + "id": 411, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 381, - "src": "2109:15:1", + "scope": 556, + "src": "1366:15:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -14614,18 +18238,18 @@ }, "typeName": { "baseType": { - "id": 321, + "id": 409, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2109:6:1", + "src": "1366:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, - "id": 322, + "id": 410, "nodeType": "ArrayTypeName", - "src": "2109:8:1", + "src": "1366:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", "typeString": "string[]" @@ -14635,13 +18259,13 @@ }, { "constant": false, - "id": 326, + "id": 414, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 381, - "src": "2130:15:1", + "scope": 556, + "src": "1387:15:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -14650,18 +18274,18 @@ }, "typeName": { "baseType": { - "id": 324, + "id": 412, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2130:6:1", + "src": "1387:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, - "id": 325, + "id": 413, "nodeType": "ArrayTypeName", - "src": "2130:8:1", + "src": "1387:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", "typeString": "string[]" @@ -14671,13 +18295,13 @@ }, { "constant": false, - "id": 329, + "id": 417, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 381, - "src": "2151:15:1", + "scope": 556, + "src": "1408:15:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -14686,265 +18310,486 @@ }, "typeName": { "baseType": { - "id": 327, + "id": 415, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2151:6:1", + "src": "1408:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, - "id": 328, + "id": 416, "nodeType": "ArrayTypeName", - "src": "2151:8:1", + "src": "1408:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", "typeString": "string[]" } }, "visibility": "internal" - }, + } + ], + "src": "1360:68:3" + }, + "scope": 925, + "src": "1285:963:3", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 708, + "nodeType": "Block", + "src": "2396:823:3", + "statements": [ { - "constant": false, - "id": 332, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 381, - "src": "2172:15:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 330, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2172:6:1", + "assignments": [ + 573 + ], + "declarations": [ + { + "constant": false, + "id": 573, + "mutability": "mutable", + "name": "arraySize", + "nameLocation": "2407:9:3", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "2402:14:3", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 331, - "nodeType": "ArrayTypeName", - "src": "2172:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 572, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2402:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" } + ], + "id": 575, + "initialValue": { + "hexValue": "30", + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2419:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "visibility": "internal" + "nodeType": "VariableDeclarationStatement", + "src": "2402:18:3" }, { - "constant": false, - "id": 335, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 381, - "src": "2193:16:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" + "body": { + "id": 605, + "nodeType": "Block", + "src": "2470:122:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 587, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "2483:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 589, + "indexExpression": { + "id": 588, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "2495:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2483:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 590, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 336, + "src": "2483:21:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 591, + "name": "_user1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 558, + "src": "2508:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2483:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 593, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "2518:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 595, + "indexExpression": { + "id": 594, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "2530:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2518:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 596, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 338, + "src": "2518:23:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 597, + "name": "_user2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 560, + "src": "2545:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2518:33:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2483:68:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 604, + "nodeType": "IfStatement", + "src": "2480:106:3", + "trueBody": { + "id": 603, + "nodeType": "Block", + "src": "2552:34:3", + "statements": [ + { + "expression": { + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2564:11:3", + "subExpression": { + "id": 600, + "name": "arraySize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 573, + "src": "2564:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 602, + "nodeType": "ExpressionStatement", + "src": "2564:11:3" + } + ] + } + } + ] }, - "typeName": { - "baseType": { - "id": 333, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2193:7:1", - "stateMutability": "nonpayable", + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 580, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 577, + "src": "2442:1:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 334, - "nodeType": "ArrayTypeName", - "src": "2193:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 338, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 381, - "src": "2215:16:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 336, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2215:7:1", - "stateMutability": "nonpayable", + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 581, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "2446:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2446:18:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 337, - "nodeType": "ArrayTypeName", - "src": "2215:9:1", + "src": "2442:22:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "visibility": "internal" - } - ], - "src": "2103:132:1" - }, - "scope": 755, - "src": "2019:707:1", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 539, - "nodeType": "Block", - "src": "2951:935:1", - "statements": [ - { - "assignments": [ - 398 - ], - "declarations": [ - { - "constant": false, - "id": 398, - "mutability": "mutable", - "name": "arraySize", - "nameLocation": "2963:9:1", - "nodeType": "VariableDeclaration", - "scope": 539, - "src": "2958:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 397, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2958:4:1", + "id": 606, + "initializationExpression": { + "assignments": [ + 577 + ], + "declarations": [ + { + "constant": false, + "id": 577, + "mutability": "mutable", + "name": "i", + "nameLocation": "2435:1:3", + "nodeType": "VariableDeclaration", + "scope": 606, + "src": "2430:6:3", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } + }, + "typeName": { + "id": 576, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2430:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 579, + "initialValue": { + "hexValue": "30", + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2439:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "visibility": "internal" - } - ], - "id": 403, - "initialValue": { - "arguments": [ - { - "id": 400, - "name": "_user", + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2430:10:3" + }, + "loopExpression": { + "expression": { + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2466:3:3", + "subExpression": { + "id": 584, + "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "2990:5:1", + "referencedDeclaration": 577, + "src": "2466:1:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - { - "id": 401, - "name": "_getSent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "2997:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 399, - "name": "_calcArraySize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 754, - "src": "2975:14:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$returns$_t_uint256_$", - "typeString": "function (address,bool) view returns (uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2975:31:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 586, + "nodeType": "ExpressionStatement", + "src": "2466:3:3" }, - "nodeType": "VariableDeclarationStatement", - "src": "2958:48:1" + "nodeType": "ForStatement", + "src": "2426:166:3" }, { "assignments": [ - 408 + 611 ], "declarations": [ { "constant": false, - "id": 408, + "id": 611, "mutability": "mutable", - "name": "fileName", - "nameLocation": "3029:8:1", + "name": "receiverEncryptedAESKey", + "nameLocation": "2614:23:3", "nodeType": "VariableDeclaration", - "scope": 539, - "src": "3013:24:1", + "scope": 708, + "src": "2598:39:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -14953,18 +18798,18 @@ }, "typeName": { "baseType": { - "id": 406, + "id": 609, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3013:6:1", + "src": "2598:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, - "id": 407, + "id": 610, "nodeType": "ArrayTypeName", - "src": "3013:8:1", + "src": "2598:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", "typeString": "string[]" @@ -14973,16 +18818,16 @@ "visibility": "internal" } ], - "id": 414, + "id": 617, "initialValue": { "arguments": [ { - "id": 412, + "id": 615, "name": "arraySize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "3053:9:1", + "referencedDeclaration": 573, + "src": "2653:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14996,38 +18841,38 @@ "typeString": "uint256" } ], - "id": 411, + "id": 614, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3040:12:1", + "src": "2640:12:3", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (string memory[] memory)" }, "typeName": { "baseType": { - "id": 409, + "id": 612, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3044:6:1", + "src": "2644:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, - "id": 410, + "id": 613, "nodeType": "ArrayTypeName", - "src": "3044:8:1", + "src": "2644:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", "typeString": "string[]" } } }, - "id": 413, + "id": 616, "isConstant": false, "isLValue": false, "isPure": false, @@ -15035,7 +18880,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3040:23:1", + "src": "2640:23:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", @@ -15043,60 +18888,60 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3013:50:1" + "src": "2598:65:3" }, { "assignments": [ - 419 + 622 ], "declarations": [ { "constant": false, - "id": 419, + "id": 622, "mutability": "mutable", - "name": "ipfsHash", - "nameLocation": "3085:8:1", + "name": "sender", + "nameLocation": "2686:6:3", "nodeType": "VariableDeclaration", - "scope": 539, - "src": "3069:24:1", + "scope": 708, + "src": "2669:23:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" }, "typeName": { "baseType": { - "id": 417, - "name": "string", + "id": 620, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "3069:6:1", + "src": "2669:7:3", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 418, + "id": 621, "nodeType": "ArrayTypeName", - "src": "3069:8:1", + "src": "2669:9:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "visibility": "internal" } ], - "id": 425, + "id": 628, "initialValue": { "arguments": [ { - "id": 423, + "id": 626, "name": "arraySize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "3109:9:1", + "referencedDeclaration": 573, + "src": "2709:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15110,38 +18955,39 @@ "typeString": "uint256" } ], - "id": 422, + "id": 625, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3096:12:1", + "src": "2695:13:3", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (string memory[] memory)" + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { - "id": 420, - "name": "string", + "id": 623, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "3100:6:1", + "src": "2699:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 421, + "id": 624, "nodeType": "ArrayTypeName", - "src": "3100:8:1", + "src": "2699:9:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } } }, - "id": 424, + "id": 627, "isConstant": false, "isLValue": false, "isPure": false, @@ -15149,68 +18995,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3096:23:1", + "src": "2695:24:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "3069:50:1" + "src": "2669:50:3" }, { "assignments": [ - 430 + 633 ], "declarations": [ { "constant": false, - "id": 430, + "id": 633, "mutability": "mutable", - "name": "senderEncryptedAESKey", - "nameLocation": "3141:21:1", + "name": "receiver", + "nameLocation": "2742:8:3", "nodeType": "VariableDeclaration", - "scope": 539, - "src": "3125:37:1", + "scope": 708, + "src": "2725:25:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" }, "typeName": { "baseType": { - "id": 428, - "name": "string", + "id": 631, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "3125:6:1", + "src": "2725:7:3", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 429, + "id": 632, "nodeType": "ArrayTypeName", - "src": "3125:8:1", + "src": "2725:9:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "visibility": "internal" } ], - "id": 436, + "id": 639, "initialValue": { "arguments": [ { - "id": 434, + "id": 637, "name": "arraySize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "3178:9:1", + "referencedDeclaration": 573, + "src": "2767:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15224,38 +19070,39 @@ "typeString": "uint256" } ], - "id": 433, + "id": 636, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3165:12:1", + "src": "2753:13:3", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (string memory[] memory)" + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { - "id": 431, - "name": "string", + "id": 634, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "3169:6:1", + "src": "2757:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 432, + "id": 635, "nodeType": "ArrayTypeName", - "src": "3169:8:1", + "src": "2757:9:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } } }, - "id": 435, + "id": 638, "isConstant": false, "isLValue": false, "isPure": false, @@ -15263,30 +19110,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3165:23:1", + "src": "2753:24:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "3125:63:1" + "src": "2725:52:3" }, { "assignments": [ - 438 + 641 ], "declarations": [ { "constant": false, - "id": 438, + "id": 641, "mutability": "mutable", "name": "j", - "nameLocation": "3200:1:1", + "nameLocation": "2789:1:3", "nodeType": "VariableDeclaration", - "scope": 539, - "src": "3195:6:1", + "scope": 708, + "src": "2784:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15294,10 +19141,10 @@ "typeString": "uint256" }, "typeName": { - "id": 437, + "id": 640, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3195:4:1", + "src": "2784:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15306,17 +19153,17 @@ "visibility": "internal" } ], - "id": 440, + "id": 643, "initialValue": { "hexValue": "30", - "id": 439, + "id": 642, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3204:1:1", + "src": "2793:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -15324,65 +19171,273 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3195:10:1" + "src": "2784:10:3" }, { "body": { - "id": 532, + "id": 701, "nodeType": "Block", - "src": "3255:542:1", + "src": "2844:290:3", "statements": [ { "condition": { - "id": 452, - "name": "_getSent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "3266:8:1", + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 655, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "2857:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 657, + "indexExpression": { + "id": 656, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "2869:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2857:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 658, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 336, + "src": "2857:21:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 659, + "name": "_user1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 558, + "src": "2882:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2857:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 661, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "2892:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 663, + "indexExpression": { + "id": 662, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "2904:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2892:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 664, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 338, + "src": "2892:23:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 665, + "name": "_user2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 560, + "src": "2919:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2892:33:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2857:68:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": { - "id": 530, + "id": 700, + "nodeType": "IfStatement", + "src": "2854:274:3", + "trueBody": { + "id": 699, "nodeType": "Block", - "src": "3538:253:1", + "src": "2926:202:3", "statements": [ { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 497, + "expression": { + "id": 675, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { + "baseExpression": { + "id": 668, + "name": "receiverEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 611, + "src": "2938:23:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 670, + "indexExpression": { + "id": 669, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "2962:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2938:26:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "expression": { "baseExpression": { - "id": 492, + "id": 671, "name": "sharedFiles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3551:11:1", + "referencedDeclaration": 343, + "src": "2967:11:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", "typeString": "struct ShareChannel.file storage ref[] storage ref" } }, - "id": 494, + "id": 673, "indexExpression": { - "id": 493, + "id": 672, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3563:1:1", + "referencedDeclaration": 645, + "src": "2979:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15393,456 +19448,212 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3551:14:1", + "src": "2967:14:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", + "typeIdentifier": "t_struct$_file_$339_storage", "typeString": "struct ShareChannel.file storage ref" } }, - "id": 495, + "id": 674, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "receiver", + "memberName": "receiverEncryptedAESKey", "nodeType": "MemberAccess", - "referencedDeclaration": 156, - "src": "3551:23:1", + "referencedDeclaration": 334, + "src": "2967:38:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 496, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "3578:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" } }, - "src": "3551:32:1", + "src": "2938:67:3", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } }, - "id": 529, - "nodeType": "IfStatement", - "src": "3548:235:1", - "trueBody": { - "id": 528, - "nodeType": "Block", - "src": "3584:199:1", - "statements": [ - { - "expression": { - "id": 505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 498, - "name": "fileName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "3596:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "id": 500, - "indexExpression": { - "id": 499, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "3605:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3596:11:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 501, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 503, - "indexExpression": { - "id": 502, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3622:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3610:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 504, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fileName", - "nodeType": "MemberAccess", - "referencedDeclaration": 146, - "src": "3610:23:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "3596:37:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "id": 506, - "nodeType": "ExpressionStatement", - "src": "3596:37:1" + "id": 676, + "nodeType": "ExpressionStatement", + "src": "2938:67:3" + }, + { + "expression": { + "id": 684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 677, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 622, + "src": "3017:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } }, - { - "expression": { - "id": 514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 507, - "name": "ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 419, - "src": "3645:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "id": 509, - "indexExpression": { - "id": 508, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "3654:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3645:11:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 510, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3659:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 512, - "indexExpression": { - "id": 511, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3671:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3659:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 513, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ipfsHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 148, - "src": "3659:23:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "3645:37:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "id": 515, - "nodeType": "ExpressionStatement", - "src": "3645:37:1" + "id": 679, + "indexExpression": { + "id": 678, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "3024:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - { - "expression": { - "id": 523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 516, - "name": "senderEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "3694:21:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "id": 518, - "indexExpression": { - "id": 517, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "3716:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3694:24:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 519, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3721:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 521, - "indexExpression": { - "id": 520, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3733:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3721:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 522, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "senderEncryptedAESKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 150, - "src": "3721:36:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "3694:63:1", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3017:9:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 680, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3029:11:3", "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" } }, - "id": 524, - "nodeType": "ExpressionStatement", - "src": "3694:63:1" - }, - { - "expression": { - "id": 526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3769:3:1", - "subExpression": { - "id": 525, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "3769:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "id": 682, + "indexExpression": { + "id": 681, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "3041:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 527, - "nodeType": "ExpressionStatement", - "src": "3769:3:1" + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3029:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 683, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 336, + "src": "3029:21:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ] - } - } - ] - }, - "id": 531, - "nodeType": "IfStatement", - "src": "3263:528:1", - "trueBody": { - "id": 491, - "nodeType": "Block", - "src": "3275:251:1", - "statements": [ - { - "condition": { - "commonType": { + }, + "src": "3017:33:3", + "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - }, - "id": 458, + } + }, + "id": 685, + "nodeType": "ExpressionStatement", + "src": "3017:33:3" + }, + { + "expression": { + "id": 693, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { + "baseExpression": { + "id": 686, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "3062:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 688, + "indexExpression": { + "id": 687, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "3071:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3062:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "expression": { "baseExpression": { - "id": 453, + "id": 689, "name": "sharedFiles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3288:11:1", + "referencedDeclaration": 343, + "src": "3076:11:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", "typeString": "struct ShareChannel.file storage ref[] storage ref" } }, - "id": 455, + "id": 691, "indexExpression": { - "id": 454, + "id": 690, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3300:1:1", + "referencedDeclaration": 645, + "src": "3088:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15853,412 +19664,82 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3288:14:1", + "src": "3076:14:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", + "typeIdentifier": "t_struct$_file_$339_storage", "typeString": "struct ShareChannel.file storage ref" } }, - "id": 456, + "id": 692, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "sender", + "memberName": "receiver", "nodeType": "MemberAccess", - "referencedDeclaration": 154, - "src": "3288:21:1", + "referencedDeclaration": 338, + "src": "3076:23:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 457, - "name": "_user", + "src": "3062:37:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 694, + "nodeType": "ExpressionStatement", + "src": "3062:37:3" + }, + { + "expression": { + "id": 697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 695, + "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "3313:5:1", + "referencedDeclaration": 641, + "src": "3111:1:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "3288:30:1", + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3116:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3111:6:3", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 490, - "nodeType": "IfStatement", - "src": "3285:233:1", - "trueBody": { - "id": 489, - "nodeType": "Block", - "src": "3319:199:1", - "statements": [ - { - "expression": { - "id": 466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 459, - "name": "fileName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "3331:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "id": 461, - "indexExpression": { - "id": 460, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "3340:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3331:11:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 462, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3345:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 464, - "indexExpression": { - "id": 463, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3357:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3345:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 465, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fileName", - "nodeType": "MemberAccess", - "referencedDeclaration": 146, - "src": "3345:23:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "3331:37:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "id": 467, - "nodeType": "ExpressionStatement", - "src": "3331:37:1" - }, - { - "expression": { - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 468, - "name": "ipfsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 419, - "src": "3380:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "id": 470, - "indexExpression": { - "id": 469, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "3389:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3380:11:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 471, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3394:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 473, - "indexExpression": { - "id": 472, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3406:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3394:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 474, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ipfsHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 148, - "src": "3394:23:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "3380:37:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "3380:37:1" - }, - { - "expression": { - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 477, - "name": "senderEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "3429:21:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "id": 479, - "indexExpression": { - "id": 478, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "3451:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3429:24:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 480, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 482, - "indexExpression": { - "id": 481, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3468:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3456:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 483, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "senderEncryptedAESKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 150, - "src": "3456:36:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "3429:63:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "id": 485, - "nodeType": "ExpressionStatement", - "src": "3429:63:1" - }, - { - "expression": { - "id": 487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3504:3:1", - "subExpression": { - "id": 486, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "3504:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 488, - "nodeType": "ExpressionStatement", - "src": "3504:3:1" - } - ] - } + "id": 698, + "nodeType": "ExpressionStatement", + "src": "3111:6:3" } ] } @@ -16270,18 +19751,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 448, + "id": 651, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 445, + "id": 648, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3227:1:1", + "referencedDeclaration": 645, + "src": "2816:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16291,51 +19772,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 446, + "id": 649, "name": "sharedFiles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "3231:11:1", + "referencedDeclaration": 343, + "src": "2820:11:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", "typeString": "struct ShareChannel.file storage ref[] storage ref" } }, - "id": 447, + "id": 650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "3231:18:1", + "src": "2820:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3227:22:1", + "src": "2816:22:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 533, + "id": 702, "initializationExpression": { "assignments": [ - 442 + 645 ], "declarations": [ { "constant": false, - "id": 442, + "id": 645, "mutability": "mutable", "name": "i", - "nameLocation": "3220:1:1", + "nameLocation": "2809:1:3", "nodeType": "VariableDeclaration", - "scope": 533, - "src": "3215:6:1", + "scope": 702, + "src": "2804:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16343,10 +19824,10 @@ "typeString": "uint256" }, "typeName": { - "id": 441, + "id": 644, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3215:4:1", + "src": "2804:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16355,17 +19836,17 @@ "visibility": "internal" } ], - "id": 444, + "id": 647, "initialValue": { "hexValue": "30", - "id": 443, + "id": 646, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3224:1:1", + "src": "2813:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -16373,11 +19854,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3215:10:1" + "src": "2804:10:3" }, "loopExpression": { "expression": { - "id": 450, + "id": 653, "isConstant": false, "isLValue": false, "isPure": false, @@ -16385,14 +19866,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3251:3:1", + "src": "2840:3:3", "subExpression": { - "id": 449, + "id": 652, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "3251:1:1", + "referencedDeclaration": 645, + "src": "2840:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16403,93 +19884,94 @@ "typeString": "uint256" } }, - "id": 451, + "id": 654, "nodeType": "ExpressionStatement", - "src": "3251:3:1" + "src": "2840:3:3" }, "nodeType": "ForStatement", - "src": "3211:586:1" + "src": "2800:334:3" }, { "expression": { "components": [ { - "id": 534, - "name": "fileName", + "id": 703, + "name": "receiverEncryptedAESKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "3820:8:1", + "referencedDeclaration": 611, + "src": "3155:23:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", "typeString": "string memory[] memory" } }, { - "id": 535, - "name": "ipfsHash", + "id": 704, + "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 419, - "src": "3837:8:1", + "referencedDeclaration": 622, + "src": "3186:6:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, { - "id": 536, - "name": "senderEncryptedAESKey", + "id": 705, + "name": "receiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "3854:21:1", + "referencedDeclaration": 633, + "src": "3200:8:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } } ], - "id": 537, + "id": 706, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3812:69:1", + "src": "3147:67:3", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", - "typeString": "tuple(string memory[] memory,string memory[] memory,string memory[] memory)" + "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "tuple(string memory[] memory,address[] memory,address[] memory)" } }, - "functionReturnParameters": 396, - "id": 538, + "functionReturnParameters": 571, + "id": 707, "nodeType": "Return", - "src": "3805:76:1" + "src": "3140:74:3" } ] }, - "id": 540, + "functionSelector": "77e371e6", + "id": 709, "implemented": true, "kind": "function", "modifiers": [], - "name": "_findFiles1", - "nameLocation": "2807:11:1", + "name": "getSentFiles2", + "nameLocation": "2259:13:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 386, + "id": 561, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 383, + "id": 558, "mutability": "mutable", - "name": "_user", - "nameLocation": "2832:5:1", + "name": "_user1", + "nameLocation": "2281:6:3", "nodeType": "VariableDeclaration", - "scope": 540, - "src": "2824:13:1", + "scope": 709, + "src": "2273:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16497,10 +19979,10 @@ "typeString": "address" }, "typeName": { - "id": 382, + "id": 557, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2824:7:1", + "src": "2273:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16511,47 +19993,48 @@ }, { "constant": false, - "id": 385, + "id": 560, "mutability": "mutable", - "name": "_getSent", - "nameLocation": "2849:8:1", + "name": "_user2", + "nameLocation": "2297:6:3", "nodeType": "VariableDeclaration", - "scope": 540, - "src": "2844:13:1", + "scope": 709, + "src": "2289:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 384, - "name": "bool", + "id": 559, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "2844:4:1", + "src": "2289:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" } ], - "src": "2818:43:1" + "src": "2272:32:3" }, "returnParameters": { - "id": 396, + "id": 571, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 389, + "id": 564, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 540, - "src": "2889:15:1", + "scope": 709, + "src": "2331:15:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -16560,18 +20043,18 @@ }, "typeName": { "baseType": { - "id": 387, + "id": 562, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2889:6:1", + "src": "2331:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, - "id": 388, + "id": 563, "nodeType": "ArrayTypeName", - "src": "2889:8:1", + "src": "2331:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", "typeString": "string[]" @@ -16581,175 +20064,469 @@ }, { "constant": false, - "id": 392, + "id": 567, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 540, - "src": "2910:15:1", + "scope": 709, + "src": "2352:16:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" }, "typeName": { "baseType": { - "id": 390, - "name": "string", + "id": 565, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "2910:6:1", + "src": "2352:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 391, + "id": 566, "nodeType": "ArrayTypeName", - "src": "2910:8:1", + "src": "2352:9:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "visibility": "internal" }, { "constant": false, - "id": 395, + "id": 570, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 540, - "src": "2931:15:1", + "scope": 709, + "src": "2374:16:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string[]" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" }, "typeName": { "baseType": { - "id": 393, - "name": "string", + "id": 568, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "2931:6:1", + "src": "2374:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 394, + "id": 569, "nodeType": "ArrayTypeName", - "src": "2931:8:1", + "src": "2374:9:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "visibility": "internal" } ], - "src": "2883:67:1" + "src": "2325:70:3" }, - "scope": 755, - "src": "2798:1088:1", + "scope": 925, + "src": "2250:969:3", "stateMutability": "view", "virtual": false, - "visibility": "private" + "visibility": "public" + }, + { + "body": { + "id": 720, + "nodeType": "Block", + "src": "3287:32:3", + "statements": [ + { + "expression": { + "components": [ + { + "id": 716, + "name": "userA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 324, + "src": "3301:5:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 717, + "name": "userB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 326, + "src": "3308:5:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 718, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3300:14:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "functionReturnParameters": 715, + "id": 719, + "nodeType": "Return", + "src": "3293:21:3" + } + ] + }, + "functionSelector": "e9ad3239", + "id": 721, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getChannelUsers", + "nameLocation": "3232:15:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 710, + "nodeType": "ParameterList", + "parameters": [], + "src": "3247:2:3" + }, + "returnParameters": { + "id": 715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 712, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 721, + "src": "3270:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 711, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3270:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 721, + "src": "3279:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3279:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3269:18:3" + }, + "scope": 925, + "src": "3223:96:3", + "stateMutability": "view", + "virtual": false, + "visibility": "public" }, { "body": { - "id": 698, + "id": 889, "nodeType": "Block", - "src": "4045:934:1", + "src": "3496:914:3", "statements": [ { "assignments": [ - 557 + 746 + ], + "declarations": [ + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "fileName", + "nameLocation": "3518:8:3", + "nodeType": "VariableDeclaration", + "scope": 889, + "src": "3502:24:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3502:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 745, + "nodeType": "ArrayTypeName", + "src": "3502:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + } + ], + "id": 753, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 750, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3542:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3542:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3529:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 747, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3533:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 748, + "nodeType": "ArrayTypeName", + "src": "3533:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + } + }, + "id": 752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3529:32:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3502:59:3" + }, + { + "assignments": [ + 758 ], "declarations": [ { "constant": false, - "id": 557, + "id": 758, "mutability": "mutable", - "name": "arraySize", - "nameLocation": "4056:9:1", + "name": "ipfsHash", + "nameLocation": "3583:8:3", "nodeType": "VariableDeclaration", - "scope": 698, - "src": "4051:14:1", + "scope": 889, + "src": "3567:24:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" }, "typeName": { - "id": 556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4051:4:1", + "baseType": { + "id": 756, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3567:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 757, + "nodeType": "ArrayTypeName", + "src": "3567:8:3", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" } }, "visibility": "internal" } ], - "id": 562, + "id": 765, "initialValue": { "arguments": [ { - "id": 559, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 542, - "src": "4083:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 560, - "name": "_getSent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 544, - "src": "4090:8:1", + "expression": { + "id": 762, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3607:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3607:18:3", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 558, - "name": "_calcArraySize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 754, - "src": "4068:14:1", + "id": 761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3594:12:3", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$returns$_t_uint256_$", - "typeString": "function (address,bool) view returns (uint256)" + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 759, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3598:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 760, + "nodeType": "ArrayTypeName", + "src": "3598:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } } }, - "id": 561, + "id": 764, "isConstant": false, "isLValue": false, "isPure": false, @@ -16757,30 +20534,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4068:31:1", + "src": "3594:32:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "4051:48:1" + "src": "3567:59:3" }, { "assignments": [ - 567 + 770 ], "declarations": [ { "constant": false, - "id": 567, + "id": 770, "mutability": "mutable", - "name": "receiverEncryptedAESKey", - "nameLocation": "4122:23:1", + "name": "senderEncryptedAESKey", + "nameLocation": "3648:21:3", "nodeType": "VariableDeclaration", - "scope": 698, - "src": "4106:39:1", + "scope": 889, + "src": "3632:37:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -16789,18 +20566,18 @@ }, "typeName": { "baseType": { - "id": 565, + "id": 768, "name": "string", "nodeType": "ElementaryTypeName", - "src": "4106:6:1", + "src": "3632:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, - "id": 566, + "id": 769, "nodeType": "ArrayTypeName", - "src": "4106:8:1", + "src": "3632:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", "typeString": "string[]" @@ -16809,16 +20586,30 @@ "visibility": "internal" } ], - "id": 573, + "id": 777, "initialValue": { "arguments": [ { - "id": 571, - "name": "arraySize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 557, - "src": "4161:9:1", + "expression": { + "id": 774, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3685:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3685:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16832,38 +20623,38 @@ "typeString": "uint256" } ], - "id": 570, + "id": 773, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "4148:12:1", + "src": "3672:12:3", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (string memory[] memory)" }, "typeName": { "baseType": { - "id": 568, + "id": 771, "name": "string", "nodeType": "ElementaryTypeName", - "src": "4152:6:1", + "src": "3676:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, - "id": 569, + "id": 772, "nodeType": "ArrayTypeName", - "src": "4152:8:1", + "src": "3676:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", "typeString": "string[]" } } }, - "id": 572, + "id": 776, "isConstant": false, "isLValue": false, "isPure": false, @@ -16871,7 +20662,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4148:23:1", + "src": "3672:32:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", @@ -16879,60 +20670,74 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4106:65:1" + "src": "3632:72:3" }, { "assignments": [ - 578 + 782 ], "declarations": [ { "constant": false, - "id": 578, + "id": 782, "mutability": "mutable", - "name": "sender", - "nameLocation": "4194:6:1", + "name": "receiverEncryptedAESKey", + "nameLocation": "3726:23:3", "nodeType": "VariableDeclaration", - "scope": 698, - "src": "4177:23:1", + "scope": 889, + "src": "3710:39:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" }, "typeName": { "baseType": { - "id": 576, - "name": "address", + "id": 780, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "4177:7:1", + "src": "3710:6:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, - "id": 577, + "id": 781, "nodeType": "ArrayTypeName", - "src": "4177:9:1", + "src": "3710:8:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" } }, "visibility": "internal" } ], - "id": 584, + "id": 789, "initialValue": { "arguments": [ { - "id": 582, - "name": "arraySize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 557, - "src": "4217:9:1", + "expression": { + "id": 786, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3765:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3765:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16946,39 +20751,38 @@ "typeString": "uint256" } ], - "id": 581, + "id": 785, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "4203:13:1", + "src": "3752:12:3", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (address[] memory)" + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory[] memory)" }, "typeName": { "baseType": { - "id": 579, - "name": "address", + "id": 783, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "4207:7:1", - "stateMutability": "nonpayable", + "src": "3756:6:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, - "id": 580, + "id": 784, "nodeType": "ArrayTypeName", - "src": "4207:9:1", + "src": "3756:8:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" } } }, - "id": 583, + "id": 788, "isConstant": false, "isLValue": false, "isPure": false, @@ -16986,30 +20790,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4203:24:1", + "src": "3752:32:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "4177:50:1" + "src": "3710:74:3" }, { "assignments": [ - 589 + 794 ], "declarations": [ { "constant": false, - "id": 589, + "id": 794, "mutability": "mutable", - "name": "receiver", - "nameLocation": "4250:8:1", + "name": "sender", + "nameLocation": "3807:6:3", "nodeType": "VariableDeclaration", - "scope": 698, - "src": "4233:25:1", + "scope": 889, + "src": "3790:23:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -17018,18 +20822,18 @@ }, "typeName": { "baseType": { - "id": 587, + "id": 792, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4233:7:1", + "src": "3790:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 588, + "id": 793, "nodeType": "ArrayTypeName", - "src": "4233:9:1", + "src": "3790:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -17038,16 +20842,30 @@ "visibility": "internal" } ], - "id": 595, + "id": 801, "initialValue": { "arguments": [ { - "id": 593, - "name": "arraySize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 557, - "src": "4275:9:1", + "expression": { + "id": 798, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3830:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3830:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17061,39 +20879,39 @@ "typeString": "uint256" } ], - "id": 592, + "id": 797, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "4261:13:1", + "src": "3816:13:3", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { - "id": 590, + "id": 795, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4265:7:1", + "src": "3820:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 591, + "id": 796, "nodeType": "ArrayTypeName", - "src": "4265:9:1", + "src": "3820:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 594, + "id": 800, "isConstant": false, "isLValue": false, "isPure": false, @@ -17101,7 +20919,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4261:24:1", + "src": "3816:33:3", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", @@ -17109,997 +20927,790 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4233:52:1" + "src": "3790:59:3" }, { "assignments": [ - 597 + 806 ], "declarations": [ { "constant": false, - "id": 597, + "id": 806, "mutability": "mutable", - "name": "j", - "nameLocation": "4297:1:1", + "name": "receiver", + "nameLocation": "3872:8:3", "nodeType": "VariableDeclaration", - "scope": 698, - "src": "4292:6:1", + "scope": 889, + "src": "3855:25:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" }, "typeName": { - "id": 596, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4292:4:1", + "baseType": { + "id": 804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3855:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 805, + "nodeType": "ArrayTypeName", + "src": "3855:9:3", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "visibility": "internal" } ], - "id": 599, + "id": 813, "initialValue": { - "hexValue": "30", - "id": 598, + "arguments": [ + { + "expression": { + "id": 810, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3897:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3897:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3883:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3887:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 808, + "nodeType": "ArrayTypeName", + "src": "3887:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 812, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "4301:1:1", + "names": [], + "nodeType": "FunctionCall", + "src": "3883:33:3", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } }, "nodeType": "VariableDeclarationStatement", - "src": "4292:10:1" + "src": "3855:61:3" }, { "body": { - "id": 691, + "id": 879, "nodeType": "Block", - "src": "4352:542:1", + "src": "3968:341:3", "statements": [ { - "condition": { - "id": 611, - "name": "_getSent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 544, - "src": "4363:8:1", + "expression": { + "id": 832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 825, + "name": "fileName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "3978:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 827, + "indexExpression": { + "id": 826, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "3987:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3978:11:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 828, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3992:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 830, + "indexExpression": { + "id": 829, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4004:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3992:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 831, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fileName", + "nodeType": "MemberAccess", + "referencedDeclaration": 328, + "src": "3992:23:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "src": "3978:37:3", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } }, - "falseBody": { - "id": 689, - "nodeType": "Block", - "src": "4635:253:1", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 651, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4648:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 653, - "indexExpression": { - "id": 652, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4660:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4648:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 654, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiver", - "nodeType": "MemberAccess", - "referencedDeclaration": 156, - "src": "4648:23:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 655, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 542, - "src": "4675:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4648:32:1", + "id": 833, + "nodeType": "ExpressionStatement", + "src": "3978:37:3" + }, + { + "expression": { + "id": 841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 834, + "name": "ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 758, + "src": "4025:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 836, + "indexExpression": { + "id": 835, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4034:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4025:11:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 837, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "4039:11:3", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" } }, - "id": 688, - "nodeType": "IfStatement", - "src": "4645:235:1", - "trueBody": { - "id": 687, - "nodeType": "Block", - "src": "4681:199:1", - "statements": [ - { - "expression": { - "id": 664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 657, - "name": "receiverEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 567, - "src": "4693:23:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "id": 659, - "indexExpression": { - "id": 658, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "4717:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4693:26:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 660, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4722:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 662, - "indexExpression": { - "id": 661, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4734:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4722:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 663, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiverEncryptedAESKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 152, - "src": "4722:38:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "4693:67:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "id": 665, - "nodeType": "ExpressionStatement", - "src": "4693:67:1" - }, - { - "expression": { - "id": 673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 666, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 578, - "src": "4772:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 668, - "indexExpression": { - "id": 667, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "4779:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4772:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 669, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4784:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 671, - "indexExpression": { - "id": 670, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4796:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4784:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 672, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": 154, - "src": "4784:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4772:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 674, - "nodeType": "ExpressionStatement", - "src": "4772:33:1" - }, - { - "expression": { - "id": 682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 675, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "4817:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 677, - "indexExpression": { - "id": 676, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "4826:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4817:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 678, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4831:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 680, - "indexExpression": { - "id": 679, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4843:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4831:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 681, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiver", - "nodeType": "MemberAccess", - "referencedDeclaration": 156, - "src": "4831:23:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4817:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 683, - "nodeType": "ExpressionStatement", - "src": "4817:37:1" - }, - { - "expression": { - "id": 685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4866:3:1", - "subExpression": { - "id": 684, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "4866:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 686, - "nodeType": "ExpressionStatement", - "src": "4866:3:1" - } - ] + "id": 839, + "indexExpression": { + "id": 838, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4051:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4039:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 840, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ipfsHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 330, + "src": "4039:23:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "src": "4025:37:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 842, + "nodeType": "ExpressionStatement", + "src": "4025:37:3" + }, + { + "expression": { + "id": 850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 843, + "name": "senderEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 770, + "src": "4072:21:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 845, + "indexExpression": { + "id": 844, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4094:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4072:24:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 846, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "4099:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 848, + "indexExpression": { + "id": 847, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4111:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4099:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 849, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "senderEncryptedAESKey", + "nodeType": "MemberAccess", + "referencedDeclaration": 332, + "src": "4099:36:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "src": "4072:63:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 851, + "nodeType": "ExpressionStatement", + "src": "4072:63:3" + }, + { + "expression": { + "id": 859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 852, + "name": "receiverEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 782, + "src": "4145:23:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 854, + "indexExpression": { + "id": 853, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4169:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4145:26:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 855, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "4174:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 857, + "indexExpression": { + "id": 856, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4186:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4174:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" + } + }, + "id": 858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receiverEncryptedAESKey", + "nodeType": "MemberAccess", + "referencedDeclaration": 334, + "src": "4174:38:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "src": "4145:67:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 860, + "nodeType": "ExpressionStatement", + "src": "4145:67:3" + }, + { + "expression": { + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 861, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 794, + "src": "4222:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 863, + "indexExpression": { + "id": 862, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4229:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4222:9:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 864, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "4234:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" + } + }, + "id": 866, + "indexExpression": { + "id": 865, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4246:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4234:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" } + }, + "id": 867, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 336, + "src": "4234:21:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ] + }, + "src": "4222:33:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "id": 690, - "nodeType": "IfStatement", - "src": "4360:528:1", - "trueBody": { - "id": 650, - "nodeType": "Block", - "src": "4372:251:1", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 612, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4385:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 614, - "indexExpression": { - "id": 613, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4397:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4385:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 615, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": 154, - "src": "4385:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 616, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 542, - "src": "4410:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4385:30:1", + "id": 869, + "nodeType": "ExpressionStatement", + "src": "4222:33:3" + }, + { + "expression": { + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 870, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "4265:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 872, + "indexExpression": { + "id": 871, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4274:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4265:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "id": 873, + "name": "sharedFiles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "4279:11:3", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", + "typeString": "struct ShareChannel.file storage ref[] storage ref" } }, - "id": 649, - "nodeType": "IfStatement", - "src": "4382:233:1", - "trueBody": { - "id": 648, - "nodeType": "Block", - "src": "4416:199:1", - "statements": [ - { - "expression": { - "id": 625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 618, - "name": "receiverEncryptedAESKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 567, - "src": "4428:23:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "id": 620, - "indexExpression": { - "id": 619, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "4452:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4428:26:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 621, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4457:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 623, - "indexExpression": { - "id": 622, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4469:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4457:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 624, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiverEncryptedAESKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 152, - "src": "4457:38:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "4428:67:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "id": 626, - "nodeType": "ExpressionStatement", - "src": "4428:67:1" - }, - { - "expression": { - "id": 634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 627, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 578, - "src": "4507:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 629, - "indexExpression": { - "id": 628, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "4514:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4507:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 630, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4519:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 632, - "indexExpression": { - "id": 631, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4531:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4519:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 633, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": 154, - "src": "4519:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4507:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 635, - "nodeType": "ExpressionStatement", - "src": "4507:33:1" - }, - { - "expression": { - "id": 643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 636, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "4552:8:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 638, - "indexExpression": { - "id": 637, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "4561:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4552:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "baseExpression": { - "id": 639, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4566:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 641, - "indexExpression": { - "id": 640, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4578:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4566:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 642, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiver", - "nodeType": "MemberAccess", - "referencedDeclaration": 156, - "src": "4566:23:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4552:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 644, - "nodeType": "ExpressionStatement", - "src": "4552:37:1" - }, - { - "expression": { - "id": 646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4601:3:1", - "subExpression": { - "id": 645, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "4601:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 647, - "nodeType": "ExpressionStatement", - "src": "4601:3:1" - } - ] + "id": 875, + "indexExpression": { + "id": 874, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "4291:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4279:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_storage", + "typeString": "struct ShareChannel.file storage ref" } + }, + "id": 876, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 338, + "src": "4279:23:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ] - } + }, + "src": "4265:37:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 878, + "nodeType": "ExpressionStatement", + "src": "4265:37:3" } ] }, @@ -18108,18 +21719,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 607, + "id": 821, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 604, + "id": 818, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4324:1:1", + "referencedDeclaration": 815, + "src": "3939:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18129,51 +21740,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 605, + "id": 819, "name": "sharedFiles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "4328:11:1", + "referencedDeclaration": 343, + "src": "3943:11:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", "typeString": "struct ShareChannel.file storage ref[] storage ref" } }, - "id": 606, + "id": 820, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "4328:18:1", + "src": "3943:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4324:22:1", + "src": "3939:22:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 692, + "id": 880, "initializationExpression": { "assignments": [ - 601 + 815 ], "declarations": [ { "constant": false, - "id": 601, + "id": 815, "mutability": "mutable", "name": "i", - "nameLocation": "4317:1:1", + "nameLocation": "3932:1:3", "nodeType": "VariableDeclaration", - "scope": 692, - "src": "4312:6:1", + "scope": 880, + "src": "3927:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18181,10 +21792,10 @@ "typeString": "uint256" }, "typeName": { - "id": 600, + "id": 814, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4312:4:1", + "src": "3927:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18193,17 +21804,17 @@ "visibility": "internal" } ], - "id": 603, + "id": 817, "initialValue": { "hexValue": "30", - "id": 602, + "id": 816, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4321:1:1", + "src": "3936:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -18211,11 +21822,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4312:10:1" + "src": "3927:10:3" }, "loopExpression": { "expression": { - "id": 609, + "id": 823, "isConstant": false, "isLValue": false, "isPure": false, @@ -18223,14 +21834,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4348:3:1", + "src": "3963:3:3", "subExpression": { - "id": 608, + "id": 822, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "4348:1:1", + "referencedDeclaration": 815, + "src": "3963:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18241,155 +21852,244 @@ "typeString": "uint256" } }, - "id": 610, + "id": 824, "nodeType": "ExpressionStatement", - "src": "4348:3:1" + "src": "3963:3:3" }, "nodeType": "ForStatement", - "src": "4308:586:1" + "src": "3922:387:3" }, { "expression": { "components": [ { - "id": 693, + "id": 881, + "name": "fileName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "4322:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + { + "id": 882, + "name": "ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 758, + "src": "4332:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + { + "id": 883, + "name": "senderEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 770, + "src": "4341:21:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + { + "id": 884, "name": "receiverEncryptedAESKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 567, - "src": "4915:23:1", + "referencedDeclaration": 782, + "src": "4364:23:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", "typeString": "string memory[] memory" } }, { - "id": 694, + "id": 885, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 578, - "src": "4946:6:1", + "referencedDeclaration": 794, + "src": "4388:6:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, { - "id": 695, + "id": 886, "name": "receiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "4960:8:1", + "referencedDeclaration": 806, + "src": "4396:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } } ], - "id": 696, + "id": 887, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4907:67:1", + "src": "4321:84:3", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "tuple(string memory[] memory,address[] memory,address[] memory)" + "typeIdentifier": "t_tuple$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "tuple(string memory[] memory,string memory[] memory,string memory[] memory,string memory[] memory,address[] memory,address[] memory)" } }, - "functionReturnParameters": 555, - "id": 697, + "functionReturnParameters": 741, + "id": 888, "nodeType": "Return", - "src": "4900:74:1" + "src": "4314:91:3" } ] }, - "id": 699, + "functionSelector": "914e3144", + "id": 890, "implemented": true, "kind": "function", "modifiers": [], - "name": "_findFiles2", - "nameLocation": "3899:11:1", + "name": "getSharedFiles", + "nameLocation": "3332:14:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 545, + "id": 722, + "nodeType": "ParameterList", + "parameters": [], + "src": "3346:2:3" + }, + "returnParameters": { + "id": 741, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 542, + "id": 725, "mutability": "mutable", - "name": "_user", - "nameLocation": "3924:5:1", + "name": "", + "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 699, - "src": "3916:13:1", + "scope": 890, + "src": "3370:15:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" }, "typeName": { - "id": 541, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3916:7:1", - "stateMutability": "nonpayable", + "baseType": { + "id": 723, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3370:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 724, + "nodeType": "ArrayTypeName", + "src": "3370:8:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" } }, "visibility": "internal" }, { "constant": false, - "id": 544, + "id": 728, "mutability": "mutable", - "name": "_getSent", - "nameLocation": "3941:8:1", + "name": "", + "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 699, - "src": "3936:13:1", + "scope": 890, + "src": "3391:15:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" }, "typeName": { - "id": 543, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3936:4:1", + "baseType": { + "id": 726, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3391:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 727, + "nodeType": "ArrayTypeName", + "src": "3391:8:3", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" } }, "visibility": "internal" - } - ], - "src": "3910:43:1" - }, - "returnParameters": { - "id": 555, - "nodeType": "ParameterList", - "parameters": [ + }, + { + "constant": false, + "id": 731, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 890, + "src": "3412:15:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 729, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3412:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 730, + "nodeType": "ArrayTypeName", + "src": "3412:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + }, { "constant": false, - "id": 548, + "id": 734, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 699, - "src": "3981:15:1", + "scope": 890, + "src": "3433:15:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -18398,18 +22098,18 @@ }, "typeName": { "baseType": { - "id": 546, + "id": 732, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3981:6:1", + "src": "3433:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, - "id": 547, + "id": 733, "nodeType": "ArrayTypeName", - "src": "3981:8:1", + "src": "3433:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", "typeString": "string[]" @@ -18419,13 +22119,13 @@ }, { "constant": false, - "id": 551, + "id": 737, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 699, - "src": "4002:16:1", + "scope": 890, + "src": "3454:16:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -18434,19 +22134,19 @@ }, "typeName": { "baseType": { - "id": 549, + "id": 735, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4002:7:1", + "src": "3454:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 550, + "id": 736, "nodeType": "ArrayTypeName", - "src": "4002:9:1", + "src": "3454:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -18456,13 +22156,13 @@ }, { "constant": false, - "id": 554, + "id": 740, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 699, - "src": "4024:16:1", + "scope": 890, + "src": "3476:16:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -18471,19 +22171,19 @@ }, "typeName": { "baseType": { - "id": 552, + "id": 738, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4024:7:1", + "src": "3476:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 553, + "id": 739, "nodeType": "ArrayTypeName", - "src": "4024:9:1", + "src": "3476:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -18492,645 +22192,465 @@ "visibility": "internal" } ], - "src": "3975:69:1" + "src": "3369:127:3" }, - "scope": 755, - "src": "3890:1089:1", + "scope": 925, + "src": "3323:1087:3", "stateMutability": "view", "virtual": false, - "visibility": "private" + "visibility": "public" }, { "body": { - "id": 753, + "id": 923, "nodeType": "Block", - "src": "5063:292:1", + "src": "4632:290:3", "statements": [ { "assignments": [ - 709 + 907 ], "declarations": [ { "constant": false, - "id": 709, + "id": 907, "mutability": "mutable", - "name": "size", - "nameLocation": "5074:4:1", + "name": "newFile", + "nameLocation": "4650:7:3", "nodeType": "VariableDeclaration", - "scope": 753, - "src": "5069:9:1", + "scope": 923, + "src": "4638:19:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_file_$339_memory_ptr", + "typeString": "struct ShareChannel.file" }, "typeName": { - "id": 708, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5069:4:1", + "id": 906, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 905, + "name": "file", + "nodeType": "IdentifierPath", + "referencedDeclaration": 339, + "src": "4638:4:3" + }, + "referencedDeclaration": 339, + "src": "4638:4:3", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_file_$339_storage_ptr", + "typeString": "struct ShareChannel.file" } }, "visibility": "internal" } ], - "id": 711, + "id": 916, "initialValue": { - "hexValue": "30", - "id": 710, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5081:1:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5069:13:1" - }, - { - "body": { - "id": 749, - "nodeType": "Block", - "src": "5132:202:1", - "statements": [ + "arguments": [ { - "condition": { - "id": 723, - "name": "_getSent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "5143:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "id": 909, + "name": "_fileName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 892, + "src": "4683:9:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 910, + "name": "_ipfsHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "4710:9:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 911, + "name": "_senderEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 896, + "src": "4750:22:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 912, + "name": "_receiverEncryptedAESKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 898, + "src": "4805:24:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 913, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 900, + "src": "4845:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 914, + "name": "_receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 902, + "src": "4870:9:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" }, - "falseBody": { - "id": 747, - "nodeType": "Block", - "src": "5245:83:1", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 736, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5258:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 738, - "indexExpression": { - "id": 737, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "5270:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5258:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 739, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiver", - "nodeType": "MemberAccess", - "referencedDeclaration": 156, - "src": "5258:23:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 740, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "5285:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5258:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 746, - "nodeType": "IfStatement", - "src": "5255:65:1", - "trueBody": { - "id": 745, - "nodeType": "Block", - "src": "5291:29:1", - "statements": [ - { - "expression": { - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5303:6:1", - "subExpression": { - "id": 742, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "5303:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 744, - "nodeType": "ExpressionStatement", - "src": "5303:6:1" - } - ] - } - } - ] + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" }, - "id": 748, - "nodeType": "IfStatement", - "src": "5140:188:1", - "trueBody": { - "id": 735, - "nodeType": "Block", - "src": "5152:81:1", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 724, - "name": "sharedFiles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5165:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", - "typeString": "struct ShareChannel.file storage ref[] storage ref" - } - }, - "id": 726, - "indexExpression": { - "id": 725, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "5177:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5165:14:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_file_$157_storage", - "typeString": "struct ShareChannel.file storage ref" - } - }, - "id": 727, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": 154, - "src": "5165:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 728, - "name": "_user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "5190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5165:30:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 734, - "nodeType": "IfStatement", - "src": "5162:63:1", - "trueBody": { - "id": 733, - "nodeType": "Block", - "src": "5196:29:1", - "statements": [ - { - "expression": { - "id": 731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5208:6:1", - "subExpression": { - "id": 730, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "5208:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 732, - "nodeType": "ExpressionStatement", - "src": "5208:6:1" - } - ] - } - } - ] + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + ], + "id": 908, + "name": "file", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 339, + "src": "4660:4:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_file_$339_storage_ptr_$", + "typeString": "type(struct ShareChannel.file storage pointer)" + } }, - "id": 719, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "structConstructorCall", "lValueRequested": false, - "leftExpression": { - "id": 716, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "5104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "names": [ + "fileName", + "ipfsHash", + "senderEncryptedAESKey", + "receiverEncryptedAESKey", + "sender", + "receiver" + ], + "nodeType": "FunctionCall", + "src": "4660:226:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_memory_ptr", + "typeString": "struct ShareChannel.file memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4638:248:3" + }, + { + "expression": { + "arguments": [ + { + "id": 920, + "name": "newFile", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "4909:7:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_file_$339_memory_ptr", + "typeString": "struct ShareChannel.file memory" + } } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_file_$339_memory_ptr", + "typeString": "struct ShareChannel.file memory" + } + ], "expression": { - "id": 717, + "id": 917, "name": "sharedFiles", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5108:11:1", + "referencedDeclaration": 343, + "src": "4892:11:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_file_$157_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_file_$339_storage_$dyn_storage", "typeString": "struct ShareChannel.file storage ref[] storage ref" } }, - "id": 718, + "id": 919, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "length", + "memberName": "push", "nodeType": "MemberAccess", - "src": "5108:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5104:22:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 750, - "initializationExpression": { - "assignments": [ - 713 - ], - "declarations": [ - { - "constant": false, - "id": 713, - "mutability": "mutable", - "name": "i", - "nameLocation": "5097:1:1", - "nodeType": "VariableDeclaration", - "scope": 750, - "src": "5092:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 712, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5092:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 715, - "initialValue": { - "hexValue": "30", - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5101:1:1", + "src": "4892:16:3", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5092:10:1" - }, - "loopExpression": { - "expression": { - "id": 721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5128:3:1", - "subExpression": { - "id": 720, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "5128:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_file_$339_storage_$dyn_storage_ptr_$_t_struct$_file_$339_storage_$returns$__$bound_to$_t_array$_t_struct$_file_$339_storage_$dyn_storage_ptr_$", + "typeString": "function (struct ShareChannel.file storage ref[] storage pointer,struct ShareChannel.file storage ref)" } }, - "id": 722, - "nodeType": "ExpressionStatement", - "src": "5128:3:1" - }, - "nodeType": "ForStatement", - "src": "5088:246:1" - }, - { - "expression": { - "id": 751, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "5346:4:1", + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4892:25:3", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 707, - "id": 752, - "nodeType": "Return", - "src": "5339:11:1" + "id": 922, + "nodeType": "ExpressionStatement", + "src": "4892:25:3" } ] }, - "id": 754, + "id": 924, "implemented": true, "kind": "function", "modifiers": [], - "name": "_calcArraySize", - "nameLocation": "4992:14:1", + "name": "_addFile", + "nameLocation": "4423:8:3", "nodeType": "FunctionDefinition", "parameters": { - "id": 704, + "id": 903, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 701, + "id": 892, "mutability": "mutable", - "name": "_user", - "nameLocation": "5015:5:1", + "name": "_fileName", + "nameLocation": "4451:9:3", "nodeType": "VariableDeclaration", - "scope": 754, - "src": "5007:13:1", + "scope": 924, + "src": "4437:23:3", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 700, - "name": "address", + "id": 891, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "5007:7:1", - "stateMutability": "nonpayable", + "src": "4437:6:3", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 894, + "mutability": "mutable", + "name": "_ipfsHash", + "nameLocation": "4480:9:3", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "4466:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 893, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4466:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 896, + "mutability": "mutable", + "name": "_senderEncryptedAESKey", + "nameLocation": "4509:22:3", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "4495:36:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 895, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4495:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 898, + "mutability": "mutable", + "name": "_receiverEncryptedAESKey", + "nameLocation": "4551:24:3", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "4537:38:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 897, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4537:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "visibility": "internal" }, { "constant": false, - "id": 703, + "id": 900, "mutability": "mutable", - "name": "_getSent", - "nameLocation": "5027:8:1", + "name": "_sender", + "nameLocation": "4589:7:3", "nodeType": "VariableDeclaration", - "scope": 754, - "src": "5022:13:1", + "scope": 924, + "src": "4581:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 702, - "name": "bool", + "id": 899, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "5022:4:1", + "src": "4581:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" - } - ], - "src": "5006:30:1" - }, - "returnParameters": { - "id": 707, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 706, + "id": 902, "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", + "name": "_receiver", + "nameLocation": "4610:9:3", "nodeType": "VariableDeclaration", - "scope": 754, - "src": "5058:4:1", + "scope": 924, + "src": "4602:17:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 705, - "name": "uint", + "id": 901, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "5058:4:1", + "src": "4602:7:3", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" } ], - "src": "5057:6:1" + "src": "4431:192:3" }, - "scope": 755, - "src": "4983:372:1", - "stateMutability": "view", + "returnParameters": { + "id": 904, + "nodeType": "ParameterList", + "parameters": [], + "src": "4632:0:3" + }, + "scope": 925, + "src": "4414:508:3", + "stateMutability": "nonpayable", "virtual": false, "visibility": "private" } ], - "scope": 756, - "src": "68:5290:1", + "scope": 926, + "src": "68:4857:3", "usedErrors": [] } ], - "src": "32:5326:1" + "src": "32:4894:3" }, "compiler": { "name": "solc", @@ -19138,7 +22658,7 @@ }, "networks": {}, "schemaVersion": "3.4.6", - "updatedAt": "2022-04-13T12:31:41.122Z", + "updatedAt": "2022-04-17T11:10:36.108Z", "devdoc": { "kind": "dev", "methods": {}, diff --git a/client/src/contracts/UserAccount.json b/client/src/contracts/UserAccount.json index a17c500..87834f0 100644 --- a/client/src/contracts/UserAccount.json +++ b/client/src/contracts/UserAccount.json @@ -4275,15 +4275,15 @@ "absolutePath": "project:/contracts/UserAccount.sol", "exportedSymbols": { "UserAccount": [ - 989 + 985 ] }, - "id": 990, + "id": 986, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 931, + "id": 927, "literals": [ "solidity", ">=", @@ -4303,9 +4303,9 @@ "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 989, + "id": 985, "linearizedBaseContracts": [ - 989 + 985 ], "name": "UserAccount", "nameLocation": "77:11:4", @@ -4314,12 +4314,12 @@ { "constant": false, "functionSelector": "e4128fb3", - "id": 933, + "id": 929, "mutability": "mutable", "name": "userAddress", "nameLocation": "109:11:4", "nodeType": "VariableDeclaration", - "scope": 989, + "scope": 985, "src": "94:26:4", "stateVariable": true, "storageLocation": "default", @@ -4328,7 +4328,7 @@ "typeString": "address" }, "typeName": { - "id": 932, + "id": 928, "name": "address", "nodeType": "ElementaryTypeName", "src": "94:7:4", @@ -4343,12 +4343,12 @@ { "constant": false, "functionSelector": "06fdde03", - "id": 935, + "id": 931, "mutability": "mutable", "name": "name", "nameLocation": "138:4:4", "nodeType": "VariableDeclaration", - "scope": 989, + "scope": 985, "src": "124:18:4", "stateVariable": true, "storageLocation": "default", @@ -4357,7 +4357,7 @@ "typeString": "string" }, "typeName": { - "id": 934, + "id": 930, "name": "string", "nodeType": "ElementaryTypeName", "src": "124:6:4", @@ -4370,12 +4370,12 @@ }, { "constant": false, - "id": 937, + "id": 933, "mutability": "mutable", "name": "privateKey", "nameLocation": "161:10:4", "nodeType": "VariableDeclaration", - "scope": 989, + "scope": 985, "src": "146:25:4", "stateVariable": true, "storageLocation": "default", @@ -4384,7 +4384,7 @@ "typeString": "string" }, "typeName": { - "id": 936, + "id": 932, "name": "string", "nodeType": "ElementaryTypeName", "src": "146:6:4", @@ -4398,12 +4398,12 @@ { "constant": false, "functionSelector": "63ffab31", - "id": 939, + "id": 935, "mutability": "mutable", "name": "publicKey", "nameLocation": "189:9:4", "nodeType": "VariableDeclaration", - "scope": 989, + "scope": 985, "src": "175:23:4", "stateVariable": true, "storageLocation": "default", @@ -4412,7 +4412,7 @@ "typeString": "string" }, "typeName": { - "id": 938, + "id": 934, "name": "string", "nodeType": "ElementaryTypeName", "src": "175:6:4", @@ -4425,7 +4425,7 @@ }, { "body": { - "id": 949, + "id": 945, "nodeType": "Block", "src": "221:52:4", "statements": [ @@ -4437,17 +4437,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 945, + "id": 941, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 942, + "id": 938, "name": "userAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 933, + "referencedDeclaration": 929, "src": "235:11:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4458,7 +4458,7 @@ "operator": "==", "rightExpression": { "expression": { - "id": 943, + "id": 939, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -4469,7 +4469,7 @@ "typeString": "msg" } }, - "id": 944, + "id": 940, "isConstant": false, "isLValue": false, "isPure": false, @@ -4496,7 +4496,7 @@ "typeString": "bool" } ], - "id": 941, + "id": 937, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4510,7 +4510,7 @@ "typeString": "function (bool) pure" } }, - "id": 946, + "id": 942, "isConstant": false, "isLValue": false, "isPure": false, @@ -4525,23 +4525,23 @@ "typeString": "tuple()" } }, - "id": 947, + "id": 943, "nodeType": "ExpressionStatement", "src": "227:34:4" }, { - "id": 948, + "id": 944, "nodeType": "PlaceholderStatement", "src": "267:1:4" } ] }, - "id": 950, + "id": 946, "name": "isUser", "nameLocation": "212:6:4", "nodeType": "ModifierDefinition", "parameters": { - "id": 940, + "id": 936, "nodeType": "ParameterList", "parameters": [], "src": "218:2:4" @@ -4552,23 +4552,23 @@ }, { "body": { - "id": 977, + "id": 973, "nodeType": "Block", "src": "407:113:4", "statements": [ { "expression": { - "id": 963, + "id": 959, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 961, + "id": 957, "name": "userAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 933, + "referencedDeclaration": 929, "src": "413:11:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4578,11 +4578,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 962, + "id": 958, "name": "_userAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 952, + "referencedDeclaration": 948, "src": "427:12:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4595,23 +4595,23 @@ "typeString": "address" } }, - "id": 964, + "id": 960, "nodeType": "ExpressionStatement", "src": "413:26:4" }, { "expression": { - "id": 967, + "id": 963, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 965, + "id": 961, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 935, + "referencedDeclaration": 931, "src": "445:4:4", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -4621,11 +4621,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 966, + "id": 962, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 954, + "referencedDeclaration": 950, "src": "452:5:4", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -4638,23 +4638,23 @@ "typeString": "string storage ref" } }, - "id": 968, + "id": 964, "nodeType": "ExpressionStatement", "src": "445:12:4" }, { "expression": { - "id": 971, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 969, + "id": 965, "name": "publicKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 939, + "referencedDeclaration": 935, "src": "463:9:4", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -4664,11 +4664,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 970, + "id": 966, "name": "_publicKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 956, + "referencedDeclaration": 952, "src": "475:10:4", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -4681,23 +4681,23 @@ "typeString": "string storage ref" } }, - "id": 972, + "id": 968, "nodeType": "ExpressionStatement", "src": "463:22:4" }, { "expression": { - "id": 975, + "id": 971, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 973, + "id": 969, "name": "privateKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 937, + "referencedDeclaration": 933, "src": "491:10:4", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -4707,11 +4707,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 974, + "id": 970, "name": "_privateKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, + "referencedDeclaration": 954, "src": "504:11:4", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -4724,13 +4724,13 @@ "typeString": "string storage ref" } }, - "id": 976, + "id": 972, "nodeType": "ExpressionStatement", "src": "491:24:4" } ] }, - "id": 978, + "id": 974, "implemented": true, "kind": "constructor", "modifiers": [], @@ -4738,17 +4738,17 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 959, + "id": 955, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 952, + "id": 948, "mutability": "mutable", "name": "_userAddress", "nameLocation": "303:12:4", "nodeType": "VariableDeclaration", - "scope": 978, + "scope": 974, "src": "295:20:4", "stateVariable": false, "storageLocation": "default", @@ -4757,7 +4757,7 @@ "typeString": "address" }, "typeName": { - "id": 951, + "id": 947, "name": "address", "nodeType": "ElementaryTypeName", "src": "295:7:4", @@ -4771,12 +4771,12 @@ }, { "constant": false, - "id": 954, + "id": 950, "mutability": "mutable", "name": "_name", "nameLocation": "336:5:4", "nodeType": "VariableDeclaration", - "scope": 978, + "scope": 974, "src": "322:19:4", "stateVariable": false, "storageLocation": "memory", @@ -4785,7 +4785,7 @@ "typeString": "string" }, "typeName": { - "id": 953, + "id": 949, "name": "string", "nodeType": "ElementaryTypeName", "src": "322:6:4", @@ -4798,12 +4798,12 @@ }, { "constant": false, - "id": 956, + "id": 952, "mutability": "mutable", "name": "_publicKey", "nameLocation": "361:10:4", "nodeType": "VariableDeclaration", - "scope": 978, + "scope": 974, "src": "347:24:4", "stateVariable": false, "storageLocation": "memory", @@ -4812,7 +4812,7 @@ "typeString": "string" }, "typeName": { - "id": 955, + "id": 951, "name": "string", "nodeType": "ElementaryTypeName", "src": "347:6:4", @@ -4825,12 +4825,12 @@ }, { "constant": false, - "id": 958, + "id": 954, "mutability": "mutable", "name": "_privateKey", "nameLocation": "391:11:4", "nodeType": "VariableDeclaration", - "scope": 978, + "scope": 974, "src": "377:25:4", "stateVariable": false, "storageLocation": "memory", @@ -4839,7 +4839,7 @@ "typeString": "string" }, "typeName": { - "id": 957, + "id": 953, "name": "string", "nodeType": "ElementaryTypeName", "src": "377:6:4", @@ -4854,12 +4854,12 @@ "src": "289:117:4" }, "returnParameters": { - "id": 960, + "id": 956, "nodeType": "ParameterList", "parameters": [], "src": "407:0:4" }, - "scope": 989, + "scope": 985, "src": "277:243:4", "stateMutability": "nonpayable", "virtual": false, @@ -4867,43 +4867,43 @@ }, { "body": { - "id": 987, + "id": 983, "nodeType": "Block", "src": "591:28:4", "statements": [ { "expression": { - "id": 985, + "id": 981, "name": "privateKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 937, + "referencedDeclaration": 933, "src": "604:10:4", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 984, - "id": 986, + "functionReturnParameters": 980, + "id": 982, "nodeType": "Return", "src": "597:17:4" } ] }, "functionSelector": "61f0b25f", - "id": 988, + "id": 984, "implemented": true, "kind": "function", "modifiers": [ { - "id": 981, + "id": 977, "kind": "modifierInvocation", "modifierName": { - "id": 980, + "id": 976, "name": "isUser", "nodeType": "IdentifierPath", - "referencedDeclaration": 950, + "referencedDeclaration": 946, "src": "561:6:4" }, "nodeType": "ModifierInvocation", @@ -4914,23 +4914,23 @@ "nameLocation": "533:13:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 979, + "id": 975, "nodeType": "ParameterList", "parameters": [], "src": "546:2:4" }, "returnParameters": { - "id": 984, + "id": 980, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 983, + "id": 979, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 988, + "scope": 984, "src": "576:13:4", "stateVariable": false, "storageLocation": "memory", @@ -4939,7 +4939,7 @@ "typeString": "string" }, "typeName": { - "id": 982, + "id": 978, "name": "string", "nodeType": "ElementaryTypeName", "src": "576:6:4", @@ -4953,14 +4953,14 @@ ], "src": "575:15:4" }, - "scope": 989, + "scope": 985, "src": "524:95:4", "stateMutability": "view", "virtual": false, "visibility": "public" } ], - "scope": 990, + "scope": 986, "src": "68:554:4", "usedErrors": [] } @@ -4971,15 +4971,15 @@ "absolutePath": "project:/contracts/UserAccount.sol", "exportedSymbols": { "UserAccount": [ - 989 + 985 ] }, - "id": 990, + "id": 986, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 931, + "id": 927, "literals": [ "solidity", ">=", @@ -4999,9 +4999,9 @@ "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 989, + "id": 985, "linearizedBaseContracts": [ - 989 + 985 ], "name": "UserAccount", "nameLocation": "77:11:4", @@ -5010,12 +5010,12 @@ { "constant": false, "functionSelector": "e4128fb3", - "id": 933, + "id": 929, "mutability": "mutable", "name": "userAddress", "nameLocation": "109:11:4", "nodeType": "VariableDeclaration", - "scope": 989, + "scope": 985, "src": "94:26:4", "stateVariable": true, "storageLocation": "default", @@ -5024,7 +5024,7 @@ "typeString": "address" }, "typeName": { - "id": 932, + "id": 928, "name": "address", "nodeType": "ElementaryTypeName", "src": "94:7:4", @@ -5039,12 +5039,12 @@ { "constant": false, "functionSelector": "06fdde03", - "id": 935, + "id": 931, "mutability": "mutable", "name": "name", "nameLocation": "138:4:4", "nodeType": "VariableDeclaration", - "scope": 989, + "scope": 985, "src": "124:18:4", "stateVariable": true, "storageLocation": "default", @@ -5053,7 +5053,7 @@ "typeString": "string" }, "typeName": { - "id": 934, + "id": 930, "name": "string", "nodeType": "ElementaryTypeName", "src": "124:6:4", @@ -5066,12 +5066,12 @@ }, { "constant": false, - "id": 937, + "id": 933, "mutability": "mutable", "name": "privateKey", "nameLocation": "161:10:4", "nodeType": "VariableDeclaration", - "scope": 989, + "scope": 985, "src": "146:25:4", "stateVariable": true, "storageLocation": "default", @@ -5080,7 +5080,7 @@ "typeString": "string" }, "typeName": { - "id": 936, + "id": 932, "name": "string", "nodeType": "ElementaryTypeName", "src": "146:6:4", @@ -5094,12 +5094,12 @@ { "constant": false, "functionSelector": "63ffab31", - "id": 939, + "id": 935, "mutability": "mutable", "name": "publicKey", "nameLocation": "189:9:4", "nodeType": "VariableDeclaration", - "scope": 989, + "scope": 985, "src": "175:23:4", "stateVariable": true, "storageLocation": "default", @@ -5108,7 +5108,7 @@ "typeString": "string" }, "typeName": { - "id": 938, + "id": 934, "name": "string", "nodeType": "ElementaryTypeName", "src": "175:6:4", @@ -5121,7 +5121,7 @@ }, { "body": { - "id": 949, + "id": 945, "nodeType": "Block", "src": "221:52:4", "statements": [ @@ -5133,17 +5133,17 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 945, + "id": 941, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 942, + "id": 938, "name": "userAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 933, + "referencedDeclaration": 929, "src": "235:11:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5154,7 +5154,7 @@ "operator": "==", "rightExpression": { "expression": { - "id": 943, + "id": 939, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -5165,7 +5165,7 @@ "typeString": "msg" } }, - "id": 944, + "id": 940, "isConstant": false, "isLValue": false, "isPure": false, @@ -5192,7 +5192,7 @@ "typeString": "bool" } ], - "id": 941, + "id": 937, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5206,7 +5206,7 @@ "typeString": "function (bool) pure" } }, - "id": 946, + "id": 942, "isConstant": false, "isLValue": false, "isPure": false, @@ -5221,23 +5221,23 @@ "typeString": "tuple()" } }, - "id": 947, + "id": 943, "nodeType": "ExpressionStatement", "src": "227:34:4" }, { - "id": 948, + "id": 944, "nodeType": "PlaceholderStatement", "src": "267:1:4" } ] }, - "id": 950, + "id": 946, "name": "isUser", "nameLocation": "212:6:4", "nodeType": "ModifierDefinition", "parameters": { - "id": 940, + "id": 936, "nodeType": "ParameterList", "parameters": [], "src": "218:2:4" @@ -5248,23 +5248,23 @@ }, { "body": { - "id": 977, + "id": 973, "nodeType": "Block", "src": "407:113:4", "statements": [ { "expression": { - "id": 963, + "id": 959, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 961, + "id": 957, "name": "userAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 933, + "referencedDeclaration": 929, "src": "413:11:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5274,11 +5274,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 962, + "id": 958, "name": "_userAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 952, + "referencedDeclaration": 948, "src": "427:12:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5291,23 +5291,23 @@ "typeString": "address" } }, - "id": 964, + "id": 960, "nodeType": "ExpressionStatement", "src": "413:26:4" }, { "expression": { - "id": 967, + "id": 963, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 965, + "id": 961, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 935, + "referencedDeclaration": 931, "src": "445:4:4", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -5317,11 +5317,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 966, + "id": 962, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 954, + "referencedDeclaration": 950, "src": "452:5:4", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -5334,23 +5334,23 @@ "typeString": "string storage ref" } }, - "id": 968, + "id": 964, "nodeType": "ExpressionStatement", "src": "445:12:4" }, { "expression": { - "id": 971, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 969, + "id": 965, "name": "publicKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 939, + "referencedDeclaration": 935, "src": "463:9:4", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -5360,11 +5360,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 970, + "id": 966, "name": "_publicKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 956, + "referencedDeclaration": 952, "src": "475:10:4", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -5377,23 +5377,23 @@ "typeString": "string storage ref" } }, - "id": 972, + "id": 968, "nodeType": "ExpressionStatement", "src": "463:22:4" }, { "expression": { - "id": 975, + "id": 971, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 973, + "id": 969, "name": "privateKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 937, + "referencedDeclaration": 933, "src": "491:10:4", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -5403,11 +5403,11 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 974, + "id": 970, "name": "_privateKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, + "referencedDeclaration": 954, "src": "504:11:4", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -5420,13 +5420,13 @@ "typeString": "string storage ref" } }, - "id": 976, + "id": 972, "nodeType": "ExpressionStatement", "src": "491:24:4" } ] }, - "id": 978, + "id": 974, "implemented": true, "kind": "constructor", "modifiers": [], @@ -5434,17 +5434,17 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 959, + "id": 955, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 952, + "id": 948, "mutability": "mutable", "name": "_userAddress", "nameLocation": "303:12:4", "nodeType": "VariableDeclaration", - "scope": 978, + "scope": 974, "src": "295:20:4", "stateVariable": false, "storageLocation": "default", @@ -5453,7 +5453,7 @@ "typeString": "address" }, "typeName": { - "id": 951, + "id": 947, "name": "address", "nodeType": "ElementaryTypeName", "src": "295:7:4", @@ -5467,12 +5467,12 @@ }, { "constant": false, - "id": 954, + "id": 950, "mutability": "mutable", "name": "_name", "nameLocation": "336:5:4", "nodeType": "VariableDeclaration", - "scope": 978, + "scope": 974, "src": "322:19:4", "stateVariable": false, "storageLocation": "memory", @@ -5481,7 +5481,7 @@ "typeString": "string" }, "typeName": { - "id": 953, + "id": 949, "name": "string", "nodeType": "ElementaryTypeName", "src": "322:6:4", @@ -5494,12 +5494,12 @@ }, { "constant": false, - "id": 956, + "id": 952, "mutability": "mutable", "name": "_publicKey", "nameLocation": "361:10:4", "nodeType": "VariableDeclaration", - "scope": 978, + "scope": 974, "src": "347:24:4", "stateVariable": false, "storageLocation": "memory", @@ -5508,7 +5508,7 @@ "typeString": "string" }, "typeName": { - "id": 955, + "id": 951, "name": "string", "nodeType": "ElementaryTypeName", "src": "347:6:4", @@ -5521,12 +5521,12 @@ }, { "constant": false, - "id": 958, + "id": 954, "mutability": "mutable", "name": "_privateKey", "nameLocation": "391:11:4", "nodeType": "VariableDeclaration", - "scope": 978, + "scope": 974, "src": "377:25:4", "stateVariable": false, "storageLocation": "memory", @@ -5535,7 +5535,7 @@ "typeString": "string" }, "typeName": { - "id": 957, + "id": 953, "name": "string", "nodeType": "ElementaryTypeName", "src": "377:6:4", @@ -5550,12 +5550,12 @@ "src": "289:117:4" }, "returnParameters": { - "id": 960, + "id": 956, "nodeType": "ParameterList", "parameters": [], "src": "407:0:4" }, - "scope": 989, + "scope": 985, "src": "277:243:4", "stateMutability": "nonpayable", "virtual": false, @@ -5563,43 +5563,43 @@ }, { "body": { - "id": 987, + "id": 983, "nodeType": "Block", "src": "591:28:4", "statements": [ { "expression": { - "id": 985, + "id": 981, "name": "privateKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 937, + "referencedDeclaration": 933, "src": "604:10:4", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 984, - "id": 986, + "functionReturnParameters": 980, + "id": 982, "nodeType": "Return", "src": "597:17:4" } ] }, "functionSelector": "61f0b25f", - "id": 988, + "id": 984, "implemented": true, "kind": "function", "modifiers": [ { - "id": 981, + "id": 977, "kind": "modifierInvocation", "modifierName": { - "id": 980, + "id": 976, "name": "isUser", "nodeType": "IdentifierPath", - "referencedDeclaration": 950, + "referencedDeclaration": 946, "src": "561:6:4" }, "nodeType": "ModifierInvocation", @@ -5610,23 +5610,23 @@ "nameLocation": "533:13:4", "nodeType": "FunctionDefinition", "parameters": { - "id": 979, + "id": 975, "nodeType": "ParameterList", "parameters": [], "src": "546:2:4" }, "returnParameters": { - "id": 984, + "id": 980, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 983, + "id": 979, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 988, + "scope": 984, "src": "576:13:4", "stateVariable": false, "storageLocation": "memory", @@ -5635,7 +5635,7 @@ "typeString": "string" }, "typeName": { - "id": 982, + "id": 978, "name": "string", "nodeType": "ElementaryTypeName", "src": "576:6:4", @@ -5649,14 +5649,14 @@ ], "src": "575:15:4" }, - "scope": 989, + "scope": 985, "src": "524:95:4", "stateMutability": "view", "virtual": false, "visibility": "public" } ], - "scope": 990, + "scope": 986, "src": "68:554:4", "usedErrors": [] } @@ -5669,7 +5669,7 @@ }, "networks": {}, "schemaVersion": "3.4.6", - "updatedAt": "2022-04-12T18:53:02.687Z", + "updatedAt": "2022-04-17T11:10:36.121Z", "devdoc": { "kind": "dev", "methods": {}, diff --git a/client/src/contracts/UserStorage.json b/client/src/contracts/UserStorage.json index c972dca..deac821 100644 --- a/client/src/contracts/UserStorage.json +++ b/client/src/contracts/UserStorage.json @@ -3591,18 +3591,18 @@ "absolutePath": "project:/contracts/UserStorage.sol", "exportedSymbols": { "UserAccount": [ - 989 + 985 ], "UserStorage": [ - 1126 + 1122 ] }, - "id": 1127, + "id": 1123, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 991, + "id": 987, "literals": [ "solidity", ">=", @@ -3618,11 +3618,11 @@ { "absolutePath": "project:/contracts/UserAccount.sol", "file": "./UserAccount.sol", - "id": 992, + "id": 988, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1127, - "sourceUnit": 990, + "scope": 1123, + "sourceUnit": 986, "src": "68:27:5", "symbolAliases": [], "unitAlias": "" @@ -3632,13 +3632,13 @@ "baseContracts": [], "canonicalName": "UserStorage", "contractDependencies": [ - 989 + 985 ], "contractKind": "contract", "fullyImplemented": true, - "id": 1126, + "id": 1122, "linearizedBaseContracts": [ - 1126 + 1122 ], "name": "UserStorage", "nameLocation": "106:11:5", @@ -3646,12 +3646,12 @@ "nodes": [ { "constant": false, - "id": 995, + "id": 991, "mutability": "mutable", "name": "userAddresses", "nameLocation": "133:13:5", "nodeType": "VariableDeclaration", - "scope": 1126, + "scope": 1122, "src": "123:23:5", "stateVariable": true, "storageLocation": "default", @@ -3661,7 +3661,7 @@ }, "typeName": { "baseType": { - "id": 993, + "id": 989, "name": "address", "nodeType": "ElementaryTypeName", "src": "123:7:5", @@ -3671,7 +3671,7 @@ "typeString": "address" } }, - "id": 994, + "id": 990, "nodeType": "ArrayTypeName", "src": "123:9:5", "typeDescriptions": { @@ -3684,12 +3684,12 @@ { "constant": false, "functionSelector": "c8910913", - "id": 999, + "id": 995, "mutability": "mutable", "name": "userData", "nameLocation": "264:8:5", "nodeType": "VariableDeclaration", - "scope": 1126, + "scope": 1122, "src": "229:43:5", "stateVariable": true, "storageLocation": "default", @@ -3698,9 +3698,9 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 998, + "id": 994, "keyType": { - "id": 996, + "id": 992, "name": "address", "nodeType": "ElementaryTypeName", "src": "237:7:5", @@ -3716,7 +3716,7 @@ "typeString": "mapping(address => address)" }, "valueType": { - "id": 997, + "id": 993, "name": "address", "nodeType": "ElementaryTypeName", "src": "248:7:5", @@ -3731,7 +3731,7 @@ }, { "body": { - "id": 1014, + "id": 1010, "nodeType": "Block", "src": "301:61:5", "statements": [ @@ -3743,28 +3743,28 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1010, + "id": 1006, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 1002, + "id": 998, "name": "userData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 999, + "referencedDeclaration": 995, "src": "315:8:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1005, + "id": 1001, "indexExpression": { "expression": { - "id": 1003, + "id": 999, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -3775,7 +3775,7 @@ "typeString": "msg" } }, - "id": 1004, + "id": 1000, "isConstant": false, "isLValue": false, "isPure": false, @@ -3805,7 +3805,7 @@ "arguments": [ { "hexValue": "30", - "id": 1008, + "id": 1004, "isConstant": false, "isLValue": false, "isPure": true, @@ -3827,7 +3827,7 @@ "typeString": "int_const 0" } ], - "id": 1007, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": true, @@ -3839,14 +3839,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1006, + "id": 1002, "name": "address", "nodeType": "ElementaryTypeName", "src": "339:7:5", "typeDescriptions": {} } }, - "id": 1009, + "id": 1005, "isConstant": false, "isLValue": false, "isPure": true, @@ -3875,7 +3875,7 @@ "typeString": "bool" } ], - "id": 1001, + "id": 997, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3889,7 +3889,7 @@ "typeString": "function (bool) pure" } }, - "id": 1011, + "id": 1007, "isConstant": false, "isLValue": false, "isPure": false, @@ -3904,23 +3904,23 @@ "typeString": "tuple()" } }, - "id": 1012, + "id": 1008, "nodeType": "ExpressionStatement", "src": "307:43:5" }, { - "id": 1013, + "id": 1009, "nodeType": "PlaceholderStatement", "src": "356:1:5" } ] }, - "id": 1015, + "id": 1011, "name": "isRegistered", "nameLocation": "286:12:5", "nodeType": "ModifierDefinition", "parameters": { - "id": 1000, + "id": 996, "nodeType": "ParameterList", "parameters": [], "src": "298:2:5" @@ -3931,7 +3931,7 @@ }, { "body": { - "id": 1044, + "id": 1040, "nodeType": "Block", "src": "484:113:5", "statements": [ @@ -3943,28 +3943,28 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1033, + "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 1025, + "id": 1021, "name": "userData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 999, + "referencedDeclaration": 995, "src": "498:8:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1028, + "id": 1024, "indexExpression": { "expression": { - "id": 1026, + "id": 1022, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -3975,7 +3975,7 @@ "typeString": "msg" } }, - "id": 1027, + "id": 1023, "isConstant": false, "isLValue": false, "isPure": false, @@ -4005,7 +4005,7 @@ "arguments": [ { "hexValue": "30", - "id": 1031, + "id": 1027, "isConstant": false, "isLValue": false, "isPure": true, @@ -4027,7 +4027,7 @@ "typeString": "int_const 0" } ], - "id": 1030, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": true, @@ -4039,14 +4039,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1029, + "id": 1025, "name": "address", "nodeType": "ElementaryTypeName", "src": "522:7:5", "typeDescriptions": {} } }, - "id": 1032, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": true, @@ -4075,7 +4075,7 @@ "typeString": "bool" } ], - "id": 1024, + "id": 1020, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4089,7 +4089,7 @@ "typeString": "function (bool) pure" } }, - "id": 1034, + "id": 1030, "isConstant": false, "isLValue": false, "isPure": false, @@ -4104,7 +4104,7 @@ "typeString": "tuple()" } }, - "id": 1035, + "id": 1031, "nodeType": "ExpressionStatement", "src": "490:43:5" }, @@ -4113,7 +4113,7 @@ "arguments": [ { "expression": { - "id": 1037, + "id": 1033, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -4124,7 +4124,7 @@ "typeString": "msg" } }, - "id": 1038, + "id": 1034, "isConstant": false, "isLValue": false, "isPure": false, @@ -4138,11 +4138,11 @@ } }, { - "id": 1039, + "id": 1035, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1017, + "referencedDeclaration": 1013, "src": "561:5:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -4150,11 +4150,11 @@ } }, { - "id": 1040, + "id": 1036, "name": "_publicKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1019, + "referencedDeclaration": 1015, "src": "568:10:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -4162,11 +4162,11 @@ } }, { - "id": 1041, + "id": 1037, "name": "_privateKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1021, + "referencedDeclaration": 1017, "src": "580:11:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -4193,18 +4193,18 @@ "typeString": "string memory" } ], - "id": 1036, + "id": 1032, "name": "_makeUser", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1125, + "referencedDeclaration": 1121, "src": "539:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (address,string memory,string memory,string memory)" } }, - "id": 1042, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, @@ -4219,14 +4219,14 @@ "typeString": "tuple()" } }, - "id": 1043, + "id": 1039, "nodeType": "ExpressionStatement", "src": "539:53:5" } ] }, "functionSelector": "59ae069b", - "id": 1045, + "id": 1041, "implemented": true, "kind": "function", "modifiers": [], @@ -4234,17 +4234,17 @@ "nameLocation": "375:10:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1022, + "id": 1018, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1017, + "id": 1013, "mutability": "mutable", "name": "_name", "nameLocation": "406:5:5", "nodeType": "VariableDeclaration", - "scope": 1045, + "scope": 1041, "src": "392:19:5", "stateVariable": false, "storageLocation": "memory", @@ -4253,7 +4253,7 @@ "typeString": "string" }, "typeName": { - "id": 1016, + "id": 1012, "name": "string", "nodeType": "ElementaryTypeName", "src": "392:6:5", @@ -4266,12 +4266,12 @@ }, { "constant": false, - "id": 1019, + "id": 1015, "mutability": "mutable", "name": "_publicKey", "nameLocation": "431:10:5", "nodeType": "VariableDeclaration", - "scope": 1045, + "scope": 1041, "src": "417:24:5", "stateVariable": false, "storageLocation": "memory", @@ -4280,7 +4280,7 @@ "typeString": "string" }, "typeName": { - "id": 1018, + "id": 1014, "name": "string", "nodeType": "ElementaryTypeName", "src": "417:6:5", @@ -4293,12 +4293,12 @@ }, { "constant": false, - "id": 1021, + "id": 1017, "mutability": "mutable", "name": "_privateKey", "nameLocation": "461:11:5", "nodeType": "VariableDeclaration", - "scope": 1045, + "scope": 1041, "src": "447:25:5", "stateVariable": false, "storageLocation": "memory", @@ -4307,7 +4307,7 @@ "typeString": "string" }, "typeName": { - "id": 1020, + "id": 1016, "name": "string", "nodeType": "ElementaryTypeName", "src": "447:6:5", @@ -4322,12 +4322,12 @@ "src": "385:91:5" }, "returnParameters": { - "id": 1023, + "id": 1019, "nodeType": "ParameterList", "parameters": [], "src": "484:0:5" }, - "scope": 1126, + "scope": 1122, "src": "366:231:5", "stateMutability": "nonpayable", "virtual": false, @@ -4335,28 +4335,28 @@ }, { "body": { - "id": 1055, + "id": 1051, "nodeType": "Block", "src": "649:38:5", "statements": [ { "expression": { "baseExpression": { - "id": 1050, + "id": 1046, "name": "userData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 999, + "referencedDeclaration": 995, "src": "662:8:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1053, + "id": 1049, "indexExpression": { "expression": { - "id": 1051, + "id": 1047, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -4367,7 +4367,7 @@ "typeString": "msg" } }, - "id": 1052, + "id": 1048, "isConstant": false, "isLValue": false, "isPure": false, @@ -4391,15 +4391,15 @@ "typeString": "address" } }, - "functionReturnParameters": 1049, - "id": 1054, + "functionReturnParameters": 1045, + "id": 1050, "nodeType": "Return", "src": "655:27:5" } ] }, "functionSelector": "832880e7", - "id": 1056, + "id": 1052, "implemented": true, "kind": "function", "modifiers": [], @@ -4407,23 +4407,23 @@ "nameLocation": "610:7:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1046, + "id": 1042, "nodeType": "ParameterList", "parameters": [], "src": "617:2:5" }, "returnParameters": { - "id": 1049, + "id": 1045, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1048, + "id": 1044, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1056, + "scope": 1052, "src": "640:7:5", "stateVariable": false, "storageLocation": "default", @@ -4432,7 +4432,7 @@ "typeString": "address" }, "typeName": { - "id": 1047, + "id": 1043, "name": "address", "nodeType": "ElementaryTypeName", "src": "640:7:5", @@ -4447,7 +4447,7 @@ ], "src": "639:9:5" }, - "scope": 1126, + "scope": 1122, "src": "601:86:5", "stateMutability": "view", "virtual": false, @@ -4455,7 +4455,7 @@ }, { "body": { - "id": 1085, + "id": 1081, "nodeType": "Block", "src": "779:128:5", "statements": [ @@ -4465,31 +4465,31 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1072, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 1065, + "id": 1061, "name": "userData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 999, + "referencedDeclaration": 995, "src": "788:8:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1067, + "id": 1063, "indexExpression": { - "id": 1066, + "id": 1062, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, + "referencedDeclaration": 1054, "src": "797:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4513,7 +4513,7 @@ "arguments": [ { "hexValue": "30", - "id": 1070, + "id": 1066, "isConstant": false, "isLValue": false, "isPure": true, @@ -4535,7 +4535,7 @@ "typeString": "int_const 0" } ], - "id": 1069, + "id": 1065, "isConstant": false, "isLValue": false, "isPure": true, @@ -4547,14 +4547,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1068, + "id": 1064, "name": "address", "nodeType": "ElementaryTypeName", "src": "810:7:5", "typeDescriptions": {} } }, - "id": 1071, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": true, @@ -4576,7 +4576,7 @@ } }, "falseBody": { - "id": 1083, + "id": 1079, "nodeType": "Block", "src": "871:32:5", "statements": [ @@ -4585,7 +4585,7 @@ "arguments": [ { "hexValue": "30", - "id": 1080, + "id": 1076, "isConstant": false, "isLValue": false, "isPure": true, @@ -4607,7 +4607,7 @@ "typeString": "int_const 0" } ], - "id": 1079, + "id": 1075, "isConstant": false, "isLValue": false, "isPure": true, @@ -4619,14 +4619,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1078, + "id": 1074, "name": "address", "nodeType": "ElementaryTypeName", "src": "886:7:5", "typeDescriptions": {} } }, - "id": 1081, + "id": 1077, "isConstant": false, "isLValue": false, "isPure": true, @@ -4641,42 +4641,42 @@ "typeString": "address" } }, - "functionReturnParameters": 1064, - "id": 1082, + "functionReturnParameters": 1060, + "id": 1078, "nodeType": "Return", "src": "879:17:5" } ] }, - "id": 1084, + "id": 1080, "nodeType": "IfStatement", "src": "785:118:5", "trueBody": { - "id": 1077, + "id": 1073, "nodeType": "Block", "src": "821:40:5", "statements": [ { "expression": { "baseExpression": { - "id": 1073, + "id": 1069, "name": "userData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 999, + "referencedDeclaration": 995, "src": "836:8:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1075, + "id": 1071, "indexExpression": { - "id": 1074, + "id": 1070, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, + "referencedDeclaration": 1054, "src": "845:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4694,8 +4694,8 @@ "typeString": "address" } }, - "functionReturnParameters": 1064, - "id": 1076, + "functionReturnParameters": 1060, + "id": 1072, "nodeType": "Return", "src": "829:25:5" } @@ -4705,18 +4705,18 @@ ] }, "functionSelector": "e14f50d4", - "id": 1086, + "id": 1082, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1061, + "id": 1057, "kind": "modifierInvocation", "modifierName": { - "id": 1060, + "id": 1056, "name": "isRegistered", "nodeType": "IdentifierPath", - "referencedDeclaration": 1015, + "referencedDeclaration": 1011, "src": "749:12:5" }, "nodeType": "ModifierInvocation", @@ -4727,17 +4727,17 @@ "nameLocation": "700:18:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1059, + "id": 1055, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1058, + "id": 1054, "mutability": "mutable", "name": "_address", "nameLocation": "727:8:5", "nodeType": "VariableDeclaration", - "scope": 1086, + "scope": 1082, "src": "719:16:5", "stateVariable": false, "storageLocation": "default", @@ -4746,7 +4746,7 @@ "typeString": "address" }, "typeName": { - "id": 1057, + "id": 1053, "name": "address", "nodeType": "ElementaryTypeName", "src": "719:7:5", @@ -4762,17 +4762,17 @@ "src": "718:18:5" }, "returnParameters": { - "id": 1064, + "id": 1060, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1063, + "id": 1059, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1086, + "scope": 1082, "src": "770:7:5", "stateVariable": false, "storageLocation": "default", @@ -4781,7 +4781,7 @@ "typeString": "address" }, "typeName": { - "id": 1062, + "id": 1058, "name": "address", "nodeType": "ElementaryTypeName", "src": "770:7:5", @@ -4796,7 +4796,7 @@ ], "src": "769:9:5" }, - "scope": 1126, + "scope": 1122, "src": "691:216:5", "stateMutability": "view", "virtual": false, @@ -4804,59 +4804,59 @@ }, { "body": { - "id": 1124, + "id": 1120, "nodeType": "Block", "src": "1054:211:5", "statements": [ { "assignments": [ - 1099 + 1095 ], "declarations": [ { "constant": false, - "id": 1099, + "id": 1095, "mutability": "mutable", "name": "newUser", "nameLocation": "1072:7:5", "nodeType": "VariableDeclaration", - "scope": 1124, + "scope": 1120, "src": "1060:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_UserAccount_$989", + "typeIdentifier": "t_contract$_UserAccount_$985", "typeString": "contract UserAccount" }, "typeName": { - "id": 1098, + "id": 1094, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1097, + "id": 1093, "name": "UserAccount", "nodeType": "IdentifierPath", - "referencedDeclaration": 989, + "referencedDeclaration": 985, "src": "1060:11:5" }, - "referencedDeclaration": 989, + "referencedDeclaration": 985, "src": "1060:11:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_UserAccount_$989", + "typeIdentifier": "t_contract$_UserAccount_$985", "typeString": "contract UserAccount" } }, "visibility": "internal" } ], - "id": 1108, + "id": 1104, "initialValue": { "arguments": [ { - "id": 1103, + "id": 1099, "name": "_userAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1088, + "referencedDeclaration": 1084, "src": "1105:12:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4864,11 +4864,11 @@ } }, { - "id": 1104, + "id": 1100, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, + "referencedDeclaration": 1086, "src": "1126:5:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -4876,11 +4876,11 @@ } }, { - "id": 1105, + "id": 1101, "name": "_publicKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, + "referencedDeclaration": 1088, "src": "1139:10:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -4888,11 +4888,11 @@ } }, { - "id": 1106, + "id": 1102, "name": "_privateKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, + "referencedDeclaration": 1090, "src": "1158:11:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -4919,7 +4919,7 @@ "typeString": "string memory" } ], - "id": 1102, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": false, @@ -4927,28 +4927,28 @@ "nodeType": "NewExpression", "src": "1082:15:5", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_contract$_UserAccount_$989_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_contract$_UserAccount_$985_$", "typeString": "function (address,string memory,string memory,string memory) returns (contract UserAccount)" }, "typeName": { - "id": 1101, + "id": 1097, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1100, + "id": 1096, "name": "UserAccount", "nodeType": "IdentifierPath", - "referencedDeclaration": 989, + "referencedDeclaration": 985, "src": "1086:11:5" }, - "referencedDeclaration": 989, + "referencedDeclaration": 985, "src": "1086:11:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_UserAccount_$989", + "typeIdentifier": "t_contract$_UserAccount_$985", "typeString": "contract UserAccount" } } }, - "id": 1107, + "id": 1103, "isConstant": false, "isLValue": false, "isPure": false, @@ -4959,7 +4959,7 @@ "src": "1082:93:5", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_UserAccount_$989", + "typeIdentifier": "t_contract$_UserAccount_$985", "typeString": "contract UserAccount" } }, @@ -4970,11 +4970,11 @@ "expression": { "arguments": [ { - "id": 1112, + "id": 1108, "name": "_userAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1088, + "referencedDeclaration": 1084, "src": "1200:12:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4990,18 +4990,18 @@ } ], "expression": { - "id": 1109, + "id": 1105, "name": "userAddresses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 995, + "referencedDeclaration": 991, "src": "1181:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 1111, + "id": 1107, "isConstant": false, "isLValue": false, "isPure": false, @@ -5014,7 +5014,7 @@ "typeString": "function (address[] storage pointer,address)" } }, - "id": 1113, + "id": 1109, "isConstant": false, "isLValue": false, "isPure": false, @@ -5029,37 +5029,37 @@ "typeString": "tuple()" } }, - "id": 1114, + "id": 1110, "nodeType": "ExpressionStatement", "src": "1181:32:5" }, { "expression": { - "id": 1122, + "id": 1118, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 1115, + "id": 1111, "name": "userData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 999, + "referencedDeclaration": 995, "src": "1219:8:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1117, + "id": 1113, "indexExpression": { - "id": 1116, + "id": 1112, "name": "_userAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1088, + "referencedDeclaration": 1084, "src": "1228:12:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5082,14 +5082,14 @@ "rightHandSide": { "arguments": [ { - "id": 1120, + "id": 1116, "name": "newUser", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1099, + "referencedDeclaration": 1095, "src": "1252:7:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_UserAccount_$989", + "typeIdentifier": "t_contract$_UserAccount_$985", "typeString": "contract UserAccount" } } @@ -5097,11 +5097,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_UserAccount_$989", + "typeIdentifier": "t_contract$_UserAccount_$985", "typeString": "contract UserAccount" } ], - "id": 1119, + "id": 1115, "isConstant": false, "isLValue": false, "isPure": true, @@ -5113,14 +5113,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1118, + "id": 1114, "name": "address", "nodeType": "ElementaryTypeName", "src": "1244:7:5", "typeDescriptions": {} } }, - "id": 1121, + "id": 1117, "isConstant": false, "isLValue": false, "isPure": false, @@ -5141,13 +5141,13 @@ "typeString": "address" } }, - "id": 1123, + "id": 1119, "nodeType": "ExpressionStatement", "src": "1219:41:5" } ] }, - "id": 1125, + "id": 1121, "implemented": true, "kind": "function", "modifiers": [], @@ -5155,17 +5155,17 @@ "nameLocation": "920:9:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1095, + "id": 1091, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1088, + "id": 1084, "mutability": "mutable", "name": "_userAddress", "nameLocation": "943:12:5", "nodeType": "VariableDeclaration", - "scope": 1125, + "scope": 1121, "src": "935:20:5", "stateVariable": false, "storageLocation": "default", @@ -5174,7 +5174,7 @@ "typeString": "address" }, "typeName": { - "id": 1087, + "id": 1083, "name": "address", "nodeType": "ElementaryTypeName", "src": "935:7:5", @@ -5188,12 +5188,12 @@ }, { "constant": false, - "id": 1090, + "id": 1086, "mutability": "mutable", "name": "_name", "nameLocation": "975:5:5", "nodeType": "VariableDeclaration", - "scope": 1125, + "scope": 1121, "src": "961:19:5", "stateVariable": false, "storageLocation": "memory", @@ -5202,7 +5202,7 @@ "typeString": "string" }, "typeName": { - "id": 1089, + "id": 1085, "name": "string", "nodeType": "ElementaryTypeName", "src": "961:6:5", @@ -5215,12 +5215,12 @@ }, { "constant": false, - "id": 1092, + "id": 1088, "mutability": "mutable", "name": "_publicKey", "nameLocation": "1000:10:5", "nodeType": "VariableDeclaration", - "scope": 1125, + "scope": 1121, "src": "986:24:5", "stateVariable": false, "storageLocation": "memory", @@ -5229,7 +5229,7 @@ "typeString": "string" }, "typeName": { - "id": 1091, + "id": 1087, "name": "string", "nodeType": "ElementaryTypeName", "src": "986:6:5", @@ -5242,12 +5242,12 @@ }, { "constant": false, - "id": 1094, + "id": 1090, "mutability": "mutable", "name": "_privateKey", "nameLocation": "1030:11:5", "nodeType": "VariableDeclaration", - "scope": 1125, + "scope": 1121, "src": "1016:25:5", "stateVariable": false, "storageLocation": "memory", @@ -5256,7 +5256,7 @@ "typeString": "string" }, "typeName": { - "id": 1093, + "id": 1089, "name": "string", "nodeType": "ElementaryTypeName", "src": "1016:6:5", @@ -5271,19 +5271,19 @@ "src": "929:116:5" }, "returnParameters": { - "id": 1096, + "id": 1092, "nodeType": "ParameterList", "parameters": [], "src": "1054:0:5" }, - "scope": 1126, + "scope": 1122, "src": "911:354:5", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" } ], - "scope": 1127, + "scope": 1123, "src": "97:1171:5", "usedErrors": [] } @@ -5294,18 +5294,18 @@ "absolutePath": "project:/contracts/UserStorage.sol", "exportedSymbols": { "UserAccount": [ - 989 + 985 ], "UserStorage": [ - 1126 + 1122 ] }, - "id": 1127, + "id": 1123, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 991, + "id": 987, "literals": [ "solidity", ">=", @@ -5321,11 +5321,11 @@ { "absolutePath": "project:/contracts/UserAccount.sol", "file": "./UserAccount.sol", - "id": 992, + "id": 988, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1127, - "sourceUnit": 990, + "scope": 1123, + "sourceUnit": 986, "src": "68:27:5", "symbolAliases": [], "unitAlias": "" @@ -5335,13 +5335,13 @@ "baseContracts": [], "canonicalName": "UserStorage", "contractDependencies": [ - 989 + 985 ], "contractKind": "contract", "fullyImplemented": true, - "id": 1126, + "id": 1122, "linearizedBaseContracts": [ - 1126 + 1122 ], "name": "UserStorage", "nameLocation": "106:11:5", @@ -5349,12 +5349,12 @@ "nodes": [ { "constant": false, - "id": 995, + "id": 991, "mutability": "mutable", "name": "userAddresses", "nameLocation": "133:13:5", "nodeType": "VariableDeclaration", - "scope": 1126, + "scope": 1122, "src": "123:23:5", "stateVariable": true, "storageLocation": "default", @@ -5364,7 +5364,7 @@ }, "typeName": { "baseType": { - "id": 993, + "id": 989, "name": "address", "nodeType": "ElementaryTypeName", "src": "123:7:5", @@ -5374,7 +5374,7 @@ "typeString": "address" } }, - "id": 994, + "id": 990, "nodeType": "ArrayTypeName", "src": "123:9:5", "typeDescriptions": { @@ -5387,12 +5387,12 @@ { "constant": false, "functionSelector": "c8910913", - "id": 999, + "id": 995, "mutability": "mutable", "name": "userData", "nameLocation": "264:8:5", "nodeType": "VariableDeclaration", - "scope": 1126, + "scope": 1122, "src": "229:43:5", "stateVariable": true, "storageLocation": "default", @@ -5401,9 +5401,9 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 998, + "id": 994, "keyType": { - "id": 996, + "id": 992, "name": "address", "nodeType": "ElementaryTypeName", "src": "237:7:5", @@ -5419,7 +5419,7 @@ "typeString": "mapping(address => address)" }, "valueType": { - "id": 997, + "id": 993, "name": "address", "nodeType": "ElementaryTypeName", "src": "248:7:5", @@ -5434,7 +5434,7 @@ }, { "body": { - "id": 1014, + "id": 1010, "nodeType": "Block", "src": "301:61:5", "statements": [ @@ -5446,28 +5446,28 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1010, + "id": 1006, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 1002, + "id": 998, "name": "userData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 999, + "referencedDeclaration": 995, "src": "315:8:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1005, + "id": 1001, "indexExpression": { "expression": { - "id": 1003, + "id": 999, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -5478,7 +5478,7 @@ "typeString": "msg" } }, - "id": 1004, + "id": 1000, "isConstant": false, "isLValue": false, "isPure": false, @@ -5508,7 +5508,7 @@ "arguments": [ { "hexValue": "30", - "id": 1008, + "id": 1004, "isConstant": false, "isLValue": false, "isPure": true, @@ -5530,7 +5530,7 @@ "typeString": "int_const 0" } ], - "id": 1007, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": true, @@ -5542,14 +5542,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1006, + "id": 1002, "name": "address", "nodeType": "ElementaryTypeName", "src": "339:7:5", "typeDescriptions": {} } }, - "id": 1009, + "id": 1005, "isConstant": false, "isLValue": false, "isPure": true, @@ -5578,7 +5578,7 @@ "typeString": "bool" } ], - "id": 1001, + "id": 997, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5592,7 +5592,7 @@ "typeString": "function (bool) pure" } }, - "id": 1011, + "id": 1007, "isConstant": false, "isLValue": false, "isPure": false, @@ -5607,23 +5607,23 @@ "typeString": "tuple()" } }, - "id": 1012, + "id": 1008, "nodeType": "ExpressionStatement", "src": "307:43:5" }, { - "id": 1013, + "id": 1009, "nodeType": "PlaceholderStatement", "src": "356:1:5" } ] }, - "id": 1015, + "id": 1011, "name": "isRegistered", "nameLocation": "286:12:5", "nodeType": "ModifierDefinition", "parameters": { - "id": 1000, + "id": 996, "nodeType": "ParameterList", "parameters": [], "src": "298:2:5" @@ -5634,7 +5634,7 @@ }, { "body": { - "id": 1044, + "id": 1040, "nodeType": "Block", "src": "484:113:5", "statements": [ @@ -5646,28 +5646,28 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1033, + "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 1025, + "id": 1021, "name": "userData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 999, + "referencedDeclaration": 995, "src": "498:8:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1028, + "id": 1024, "indexExpression": { "expression": { - "id": 1026, + "id": 1022, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -5678,7 +5678,7 @@ "typeString": "msg" } }, - "id": 1027, + "id": 1023, "isConstant": false, "isLValue": false, "isPure": false, @@ -5708,7 +5708,7 @@ "arguments": [ { "hexValue": "30", - "id": 1031, + "id": 1027, "isConstant": false, "isLValue": false, "isPure": true, @@ -5730,7 +5730,7 @@ "typeString": "int_const 0" } ], - "id": 1030, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": true, @@ -5742,14 +5742,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1029, + "id": 1025, "name": "address", "nodeType": "ElementaryTypeName", "src": "522:7:5", "typeDescriptions": {} } }, - "id": 1032, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": true, @@ -5778,7 +5778,7 @@ "typeString": "bool" } ], - "id": 1024, + "id": 1020, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5792,7 +5792,7 @@ "typeString": "function (bool) pure" } }, - "id": 1034, + "id": 1030, "isConstant": false, "isLValue": false, "isPure": false, @@ -5807,7 +5807,7 @@ "typeString": "tuple()" } }, - "id": 1035, + "id": 1031, "nodeType": "ExpressionStatement", "src": "490:43:5" }, @@ -5816,7 +5816,7 @@ "arguments": [ { "expression": { - "id": 1037, + "id": 1033, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -5827,7 +5827,7 @@ "typeString": "msg" } }, - "id": 1038, + "id": 1034, "isConstant": false, "isLValue": false, "isPure": false, @@ -5841,11 +5841,11 @@ } }, { - "id": 1039, + "id": 1035, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1017, + "referencedDeclaration": 1013, "src": "561:5:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -5853,11 +5853,11 @@ } }, { - "id": 1040, + "id": 1036, "name": "_publicKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1019, + "referencedDeclaration": 1015, "src": "568:10:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -5865,11 +5865,11 @@ } }, { - "id": 1041, + "id": 1037, "name": "_privateKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1021, + "referencedDeclaration": 1017, "src": "580:11:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -5896,18 +5896,18 @@ "typeString": "string memory" } ], - "id": 1036, + "id": 1032, "name": "_makeUser", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1125, + "referencedDeclaration": 1121, "src": "539:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (address,string memory,string memory,string memory)" } }, - "id": 1042, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, @@ -5922,14 +5922,14 @@ "typeString": "tuple()" } }, - "id": 1043, + "id": 1039, "nodeType": "ExpressionStatement", "src": "539:53:5" } ] }, "functionSelector": "59ae069b", - "id": 1045, + "id": 1041, "implemented": true, "kind": "function", "modifiers": [], @@ -5937,17 +5937,17 @@ "nameLocation": "375:10:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1022, + "id": 1018, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1017, + "id": 1013, "mutability": "mutable", "name": "_name", "nameLocation": "406:5:5", "nodeType": "VariableDeclaration", - "scope": 1045, + "scope": 1041, "src": "392:19:5", "stateVariable": false, "storageLocation": "memory", @@ -5956,7 +5956,7 @@ "typeString": "string" }, "typeName": { - "id": 1016, + "id": 1012, "name": "string", "nodeType": "ElementaryTypeName", "src": "392:6:5", @@ -5969,12 +5969,12 @@ }, { "constant": false, - "id": 1019, + "id": 1015, "mutability": "mutable", "name": "_publicKey", "nameLocation": "431:10:5", "nodeType": "VariableDeclaration", - "scope": 1045, + "scope": 1041, "src": "417:24:5", "stateVariable": false, "storageLocation": "memory", @@ -5983,7 +5983,7 @@ "typeString": "string" }, "typeName": { - "id": 1018, + "id": 1014, "name": "string", "nodeType": "ElementaryTypeName", "src": "417:6:5", @@ -5996,12 +5996,12 @@ }, { "constant": false, - "id": 1021, + "id": 1017, "mutability": "mutable", "name": "_privateKey", "nameLocation": "461:11:5", "nodeType": "VariableDeclaration", - "scope": 1045, + "scope": 1041, "src": "447:25:5", "stateVariable": false, "storageLocation": "memory", @@ -6010,7 +6010,7 @@ "typeString": "string" }, "typeName": { - "id": 1020, + "id": 1016, "name": "string", "nodeType": "ElementaryTypeName", "src": "447:6:5", @@ -6025,12 +6025,12 @@ "src": "385:91:5" }, "returnParameters": { - "id": 1023, + "id": 1019, "nodeType": "ParameterList", "parameters": [], "src": "484:0:5" }, - "scope": 1126, + "scope": 1122, "src": "366:231:5", "stateMutability": "nonpayable", "virtual": false, @@ -6038,28 +6038,28 @@ }, { "body": { - "id": 1055, + "id": 1051, "nodeType": "Block", "src": "649:38:5", "statements": [ { "expression": { "baseExpression": { - "id": 1050, + "id": 1046, "name": "userData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 999, + "referencedDeclaration": 995, "src": "662:8:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1053, + "id": 1049, "indexExpression": { "expression": { - "id": 1051, + "id": 1047, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -6070,7 +6070,7 @@ "typeString": "msg" } }, - "id": 1052, + "id": 1048, "isConstant": false, "isLValue": false, "isPure": false, @@ -6094,15 +6094,15 @@ "typeString": "address" } }, - "functionReturnParameters": 1049, - "id": 1054, + "functionReturnParameters": 1045, + "id": 1050, "nodeType": "Return", "src": "655:27:5" } ] }, "functionSelector": "832880e7", - "id": 1056, + "id": 1052, "implemented": true, "kind": "function", "modifiers": [], @@ -6110,23 +6110,23 @@ "nameLocation": "610:7:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1046, + "id": 1042, "nodeType": "ParameterList", "parameters": [], "src": "617:2:5" }, "returnParameters": { - "id": 1049, + "id": 1045, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1048, + "id": 1044, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1056, + "scope": 1052, "src": "640:7:5", "stateVariable": false, "storageLocation": "default", @@ -6135,7 +6135,7 @@ "typeString": "address" }, "typeName": { - "id": 1047, + "id": 1043, "name": "address", "nodeType": "ElementaryTypeName", "src": "640:7:5", @@ -6150,7 +6150,7 @@ ], "src": "639:9:5" }, - "scope": 1126, + "scope": 1122, "src": "601:86:5", "stateMutability": "view", "virtual": false, @@ -6158,7 +6158,7 @@ }, { "body": { - "id": 1085, + "id": 1081, "nodeType": "Block", "src": "779:128:5", "statements": [ @@ -6168,31 +6168,31 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1072, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 1065, + "id": 1061, "name": "userData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 999, + "referencedDeclaration": 995, "src": "788:8:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1067, + "id": 1063, "indexExpression": { - "id": 1066, + "id": 1062, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, + "referencedDeclaration": 1054, "src": "797:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6216,7 +6216,7 @@ "arguments": [ { "hexValue": "30", - "id": 1070, + "id": 1066, "isConstant": false, "isLValue": false, "isPure": true, @@ -6238,7 +6238,7 @@ "typeString": "int_const 0" } ], - "id": 1069, + "id": 1065, "isConstant": false, "isLValue": false, "isPure": true, @@ -6250,14 +6250,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1068, + "id": 1064, "name": "address", "nodeType": "ElementaryTypeName", "src": "810:7:5", "typeDescriptions": {} } }, - "id": 1071, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": true, @@ -6279,7 +6279,7 @@ } }, "falseBody": { - "id": 1083, + "id": 1079, "nodeType": "Block", "src": "871:32:5", "statements": [ @@ -6288,7 +6288,7 @@ "arguments": [ { "hexValue": "30", - "id": 1080, + "id": 1076, "isConstant": false, "isLValue": false, "isPure": true, @@ -6310,7 +6310,7 @@ "typeString": "int_const 0" } ], - "id": 1079, + "id": 1075, "isConstant": false, "isLValue": false, "isPure": true, @@ -6322,14 +6322,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1078, + "id": 1074, "name": "address", "nodeType": "ElementaryTypeName", "src": "886:7:5", "typeDescriptions": {} } }, - "id": 1081, + "id": 1077, "isConstant": false, "isLValue": false, "isPure": true, @@ -6344,42 +6344,42 @@ "typeString": "address" } }, - "functionReturnParameters": 1064, - "id": 1082, + "functionReturnParameters": 1060, + "id": 1078, "nodeType": "Return", "src": "879:17:5" } ] }, - "id": 1084, + "id": 1080, "nodeType": "IfStatement", "src": "785:118:5", "trueBody": { - "id": 1077, + "id": 1073, "nodeType": "Block", "src": "821:40:5", "statements": [ { "expression": { "baseExpression": { - "id": 1073, + "id": 1069, "name": "userData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 999, + "referencedDeclaration": 995, "src": "836:8:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1075, + "id": 1071, "indexExpression": { - "id": 1074, + "id": 1070, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, + "referencedDeclaration": 1054, "src": "845:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6397,8 +6397,8 @@ "typeString": "address" } }, - "functionReturnParameters": 1064, - "id": 1076, + "functionReturnParameters": 1060, + "id": 1072, "nodeType": "Return", "src": "829:25:5" } @@ -6408,18 +6408,18 @@ ] }, "functionSelector": "e14f50d4", - "id": 1086, + "id": 1082, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1061, + "id": 1057, "kind": "modifierInvocation", "modifierName": { - "id": 1060, + "id": 1056, "name": "isRegistered", "nodeType": "IdentifierPath", - "referencedDeclaration": 1015, + "referencedDeclaration": 1011, "src": "749:12:5" }, "nodeType": "ModifierInvocation", @@ -6430,17 +6430,17 @@ "nameLocation": "700:18:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1059, + "id": 1055, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1058, + "id": 1054, "mutability": "mutable", "name": "_address", "nameLocation": "727:8:5", "nodeType": "VariableDeclaration", - "scope": 1086, + "scope": 1082, "src": "719:16:5", "stateVariable": false, "storageLocation": "default", @@ -6449,7 +6449,7 @@ "typeString": "address" }, "typeName": { - "id": 1057, + "id": 1053, "name": "address", "nodeType": "ElementaryTypeName", "src": "719:7:5", @@ -6465,17 +6465,17 @@ "src": "718:18:5" }, "returnParameters": { - "id": 1064, + "id": 1060, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1063, + "id": 1059, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1086, + "scope": 1082, "src": "770:7:5", "stateVariable": false, "storageLocation": "default", @@ -6484,7 +6484,7 @@ "typeString": "address" }, "typeName": { - "id": 1062, + "id": 1058, "name": "address", "nodeType": "ElementaryTypeName", "src": "770:7:5", @@ -6499,7 +6499,7 @@ ], "src": "769:9:5" }, - "scope": 1126, + "scope": 1122, "src": "691:216:5", "stateMutability": "view", "virtual": false, @@ -6507,59 +6507,59 @@ }, { "body": { - "id": 1124, + "id": 1120, "nodeType": "Block", "src": "1054:211:5", "statements": [ { "assignments": [ - 1099 + 1095 ], "declarations": [ { "constant": false, - "id": 1099, + "id": 1095, "mutability": "mutable", "name": "newUser", "nameLocation": "1072:7:5", "nodeType": "VariableDeclaration", - "scope": 1124, + "scope": 1120, "src": "1060:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_UserAccount_$989", + "typeIdentifier": "t_contract$_UserAccount_$985", "typeString": "contract UserAccount" }, "typeName": { - "id": 1098, + "id": 1094, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1097, + "id": 1093, "name": "UserAccount", "nodeType": "IdentifierPath", - "referencedDeclaration": 989, + "referencedDeclaration": 985, "src": "1060:11:5" }, - "referencedDeclaration": 989, + "referencedDeclaration": 985, "src": "1060:11:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_UserAccount_$989", + "typeIdentifier": "t_contract$_UserAccount_$985", "typeString": "contract UserAccount" } }, "visibility": "internal" } ], - "id": 1108, + "id": 1104, "initialValue": { "arguments": [ { - "id": 1103, + "id": 1099, "name": "_userAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1088, + "referencedDeclaration": 1084, "src": "1105:12:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6567,11 +6567,11 @@ } }, { - "id": 1104, + "id": 1100, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, + "referencedDeclaration": 1086, "src": "1126:5:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -6579,11 +6579,11 @@ } }, { - "id": 1105, + "id": 1101, "name": "_publicKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, + "referencedDeclaration": 1088, "src": "1139:10:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -6591,11 +6591,11 @@ } }, { - "id": 1106, + "id": 1102, "name": "_privateKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, + "referencedDeclaration": 1090, "src": "1158:11:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -6622,7 +6622,7 @@ "typeString": "string memory" } ], - "id": 1102, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": false, @@ -6630,28 +6630,28 @@ "nodeType": "NewExpression", "src": "1082:15:5", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_contract$_UserAccount_$989_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_contract$_UserAccount_$985_$", "typeString": "function (address,string memory,string memory,string memory) returns (contract UserAccount)" }, "typeName": { - "id": 1101, + "id": 1097, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1100, + "id": 1096, "name": "UserAccount", "nodeType": "IdentifierPath", - "referencedDeclaration": 989, + "referencedDeclaration": 985, "src": "1086:11:5" }, - "referencedDeclaration": 989, + "referencedDeclaration": 985, "src": "1086:11:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_UserAccount_$989", + "typeIdentifier": "t_contract$_UserAccount_$985", "typeString": "contract UserAccount" } } }, - "id": 1107, + "id": 1103, "isConstant": false, "isLValue": false, "isPure": false, @@ -6662,7 +6662,7 @@ "src": "1082:93:5", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_UserAccount_$989", + "typeIdentifier": "t_contract$_UserAccount_$985", "typeString": "contract UserAccount" } }, @@ -6673,11 +6673,11 @@ "expression": { "arguments": [ { - "id": 1112, + "id": 1108, "name": "_userAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1088, + "referencedDeclaration": 1084, "src": "1200:12:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6693,18 +6693,18 @@ } ], "expression": { - "id": 1109, + "id": 1105, "name": "userAddresses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 995, + "referencedDeclaration": 991, "src": "1181:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 1111, + "id": 1107, "isConstant": false, "isLValue": false, "isPure": false, @@ -6717,7 +6717,7 @@ "typeString": "function (address[] storage pointer,address)" } }, - "id": 1113, + "id": 1109, "isConstant": false, "isLValue": false, "isPure": false, @@ -6732,37 +6732,37 @@ "typeString": "tuple()" } }, - "id": 1114, + "id": 1110, "nodeType": "ExpressionStatement", "src": "1181:32:5" }, { "expression": { - "id": 1122, + "id": 1118, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 1115, + "id": 1111, "name": "userData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 999, + "referencedDeclaration": 995, "src": "1219:8:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1117, + "id": 1113, "indexExpression": { - "id": 1116, + "id": 1112, "name": "_userAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1088, + "referencedDeclaration": 1084, "src": "1228:12:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6785,14 +6785,14 @@ "rightHandSide": { "arguments": [ { - "id": 1120, + "id": 1116, "name": "newUser", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1099, + "referencedDeclaration": 1095, "src": "1252:7:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_UserAccount_$989", + "typeIdentifier": "t_contract$_UserAccount_$985", "typeString": "contract UserAccount" } } @@ -6800,11 +6800,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_UserAccount_$989", + "typeIdentifier": "t_contract$_UserAccount_$985", "typeString": "contract UserAccount" } ], - "id": 1119, + "id": 1115, "isConstant": false, "isLValue": false, "isPure": true, @@ -6816,14 +6816,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1118, + "id": 1114, "name": "address", "nodeType": "ElementaryTypeName", "src": "1244:7:5", "typeDescriptions": {} } }, - "id": 1121, + "id": 1117, "isConstant": false, "isLValue": false, "isPure": false, @@ -6844,13 +6844,13 @@ "typeString": "address" } }, - "id": 1123, + "id": 1119, "nodeType": "ExpressionStatement", "src": "1219:41:5" } ] }, - "id": 1125, + "id": 1121, "implemented": true, "kind": "function", "modifiers": [], @@ -6858,17 +6858,17 @@ "nameLocation": "920:9:5", "nodeType": "FunctionDefinition", "parameters": { - "id": 1095, + "id": 1091, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1088, + "id": 1084, "mutability": "mutable", "name": "_userAddress", "nameLocation": "943:12:5", "nodeType": "VariableDeclaration", - "scope": 1125, + "scope": 1121, "src": "935:20:5", "stateVariable": false, "storageLocation": "default", @@ -6877,7 +6877,7 @@ "typeString": "address" }, "typeName": { - "id": 1087, + "id": 1083, "name": "address", "nodeType": "ElementaryTypeName", "src": "935:7:5", @@ -6891,12 +6891,12 @@ }, { "constant": false, - "id": 1090, + "id": 1086, "mutability": "mutable", "name": "_name", "nameLocation": "975:5:5", "nodeType": "VariableDeclaration", - "scope": 1125, + "scope": 1121, "src": "961:19:5", "stateVariable": false, "storageLocation": "memory", @@ -6905,7 +6905,7 @@ "typeString": "string" }, "typeName": { - "id": 1089, + "id": 1085, "name": "string", "nodeType": "ElementaryTypeName", "src": "961:6:5", @@ -6918,12 +6918,12 @@ }, { "constant": false, - "id": 1092, + "id": 1088, "mutability": "mutable", "name": "_publicKey", "nameLocation": "1000:10:5", "nodeType": "VariableDeclaration", - "scope": 1125, + "scope": 1121, "src": "986:24:5", "stateVariable": false, "storageLocation": "memory", @@ -6932,7 +6932,7 @@ "typeString": "string" }, "typeName": { - "id": 1091, + "id": 1087, "name": "string", "nodeType": "ElementaryTypeName", "src": "986:6:5", @@ -6945,12 +6945,12 @@ }, { "constant": false, - "id": 1094, + "id": 1090, "mutability": "mutable", "name": "_privateKey", "nameLocation": "1030:11:5", "nodeType": "VariableDeclaration", - "scope": 1125, + "scope": 1121, "src": "1016:25:5", "stateVariable": false, "storageLocation": "memory", @@ -6959,7 +6959,7 @@ "typeString": "string" }, "typeName": { - "id": 1093, + "id": 1089, "name": "string", "nodeType": "ElementaryTypeName", "src": "1016:6:5", @@ -6974,19 +6974,19 @@ "src": "929:116:5" }, "returnParameters": { - "id": 1096, + "id": 1092, "nodeType": "ParameterList", "parameters": [], "src": "1054:0:5" }, - "scope": 1126, + "scope": 1122, "src": "911:354:5", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" } ], - "scope": 1127, + "scope": 1123, "src": "97:1171:5", "usedErrors": [] } @@ -7153,10 +7153,184 @@ "links": {}, "address": "0xe0475DA2F39871DB56828748AE5d3B755d7f3AE7", "transactionHash": "0x2a0074f2a0c1e8a90b3926459b662cd63b002bd5acddf480a896254693475e99" + }, + "1649958604966": { + "events": {}, + "links": {}, + "address": "0x29A392C5Cd5Cdf5b7e49B6FCa1997379F6CEB2A0", + "transactionHash": "0x1e87aaf9b71d1ca78d02191740b80e3a2c4620465c62a2faa8922e89cb2da65f" + }, + "1650005427602": { + "events": {}, + "links": {}, + "address": "0xfbe2146306e3D30502013e601866cB31aF58EeC6", + "transactionHash": "0x74d28fa3dfe560584520dc50c1cf86ef1c522e0da3a8ed3f02649793190003fc" + }, + "1650006895097": { + "events": {}, + "links": {}, + "address": "0x8f2be92b366cF3Fcb571e4afE9f22BD09cCBE123", + "transactionHash": "0xbbe135e0353cc5fb9ab779e6c4e5a40070970c09a2185f5fb4ddcbb40a07bc90" + }, + "1650007811943": { + "events": {}, + "links": {}, + "address": "0xd603E686af314d2bE21bdd7Ba0835466d5f2608e", + "transactionHash": "0xc0f05502133766f77bbe2c2e588494f44d0dbe9559f2d6b77df748390365ec30" + }, + "1650027582101": { + "events": {}, + "links": {}, + "address": "0x23117c74D6e43D67C193423f95E929C35A3c7097", + "transactionHash": "0x71766a50ff32ca1de08b9135f5a6b93f4b56454acdce434f0d7b4328e5fcc733" + }, + "1650028642136": { + "events": {}, + "links": {}, + "address": "0x674f2b5552066170Ca8CEDe10feF40A81E650bE7", + "transactionHash": "0x4c7d4a827cedd1ec59cab859c260b6f076a4a15194b124013dca84972104abdc" + }, + "1650029870171": { + "events": {}, + "links": {}, + "address": "0x0D8a111278b9Bf180C72Ec5819EAf58b1340A868", + "transactionHash": "0xd3030140c9f2d2dc2df47f247b850adb68d016ad1a805fe1dc297da5a8f1a6b2" + }, + "1650030107591": { + "events": {}, + "links": {}, + "address": "0x5B667d51fAa9DB08FcC964F9483bbD0cC3fC585C", + "transactionHash": "0x18d875fbf8af8b322e84fbd20d41aa73fcb8427eee1eb91c5e1b72dc6bacb4ee" + }, + "1650030342568": { + "events": {}, + "links": {}, + "address": "0x2d95a6Df31394Ed66208e772F6c991212FF3Cf25", + "transactionHash": "0x99745737bf69335ad2c5c6b8526276141c97af1e115eb8e9d937cb098276dccf" + }, + "1650032086210": { + "events": {}, + "links": {}, + "address": "0xBE880BA513d4cc7Ebd5f5994e2CEd683b93c742d", + "transactionHash": "0xd33299474b54ee665679af86143cec7b4e58b5ccd229030bd9d93bc72bf8f964" + }, + "1650032169788": { + "events": {}, + "links": {}, + "address": "0x9d036a9b3EcA91DbB2C00c5A0178242093cB092C", + "transactionHash": "0x0362fe8ab5ba91d343eb36c639eebbf334005d8cc585b610e7ab716b11006daa" + }, + "1650033018576": { + "events": {}, + "links": {}, + "address": "0x2d578FA7A7FAac635795Ed939a313D832cc64C25", + "transactionHash": "0xb154eb78fd305f160002283a356073105ed81a492a94ed448e2ed96a4a560e38" + }, + "1650033760894": { + "events": {}, + "links": {}, + "address": "0xfC5e60c25E875EB7959D26a9E86944D8100ECe69", + "transactionHash": "0xef13a42f657f868a2b2cccdd2ead3f1cb64fceaf0a1ab209e0a7c9e2dbb5df9b" + }, + "1650033840831": { + "events": {}, + "links": {}, + "address": "0x72f42B0C8DAd53EF257F4Bdc073e95CB94678Fb9", + "transactionHash": "0xcdab4c780d95333894ade997673cf04529a54f3acc87e0989703a8436f0f2fca" + }, + "1650042028588": { + "events": {}, + "links": {}, + "address": "0x4B7Bf8a8E262684b9117bD2aA5b93DD04E957fbe", + "transactionHash": "0x6be10ce0009ead1948b360b01e46db6551dd3c2d92f4c3fd95532c51e24e775c" + }, + "1650060856671": { + "events": {}, + "links": {}, + "address": "0x5b2c243e75c2B14894F25b790519E60e8010ef05", + "transactionHash": "0xa4b290021f0e1de36271e49949365a7d1a4dea1f6469616473bf6b659311230f" + }, + "1650096785428": { + "events": {}, + "links": {}, + "address": "0xd495BB6aADBAb820F5703Dc7F3ae9CCCac305B1d", + "transactionHash": "0xae7a6c01e09973f57a4dc47cab768f863d05e4415854570670169c82a391392e" + }, + "1650096931565": { + "events": {}, + "links": {}, + "address": "0x539fB07e461f1Ca3E73040b17FddB7F08C7CF81A", + "transactionHash": "0xeb011d6874706921c4f645777639ca3aede3713c50d3434b8f35cf6ff2de589d" + }, + "1650097593001": { + "events": {}, + "links": {}, + "address": "0xFC96465c141A147cfB9f5642AAdd6E41AbD4df85", + "transactionHash": "0x327d5cb78bd404b6fa16e21529988dce5a4ebcb5bc37553525cb34a37a749242" + }, + "1650098078092": { + "events": {}, + "links": {}, + "address": "0x1c33CDCbEbE590D7049170482243129DAc903dBb", + "transactionHash": "0x4faf6640cd2b9826e08c8001c2229c267736728dd018ec5d3d2dcba89775a32a" + }, + "1650098567060": { + "events": {}, + "links": {}, + "address": "0x2881C2eA4459b21429DD035722BEFfD5FAd12b9B", + "transactionHash": "0x2bac9aeb8ebed48d98b51c722c799fe6e519c165d76f6933b86520e152277c8f" + }, + "1650101492019": { + "events": {}, + "links": {}, + "address": "0x2A6bb956C131EF2952b41005A100A21367B15CD6", + "transactionHash": "0xcbcab9672b5de785792b0f612f01e9b28470dcd1046741b25214ec2b9660c57c" + }, + "1650105382335": { + "events": {}, + "links": {}, + "address": "0x413D6FCB4EC9D2a117c9F5ccCcD44EFEC3feb13e", + "transactionHash": "0xbfd6469e194afdb194c7e25c46ec458cb622c289ac3e5eb345282741d16ff2b6" + }, + "1650113946378": { + "events": {}, + "links": {}, + "address": "0xc5535a391Dcf716B18BE33f190fD44f75e641662", + "transactionHash": "0x25a171a97018de2157d98c26dacae7f3276c31d57efabc36db0d8cdc2b051099" + }, + "1650114749955": { + "events": {}, + "links": {}, + "address": "0x5bD2aff2774f06bFF9ebA312dB1749Eaa5e7E8BB", + "transactionHash": "0x749a9216c64282b45703c9af8c815b576c66137deb545ca3d2274d3fdae54700" + }, + "1650115201732": { + "events": {}, + "links": {}, + "address": "0xdB2B968F619215A5424362571D75af8b07023A57", + "transactionHash": "0xdbee3f9c8e8b66851e7c6b4f26f33915dc70069d16afb5835c2d4db737721a94" + }, + "1650174446179": { + "events": {}, + "links": {}, + "address": "0x9Eb2C913eaD318846a2e698327Fb2a5c58E5EA5A", + "transactionHash": "0x1d96176cba3c78cec4c7f0156886e043463ee607916974e1ae3fede49b7a11ce" + }, + "1650137760954": { + "events": {}, + "links": {}, + "address": "0x6F35B8b6129Ce5A3E5A8a406fb9E44Cb2d98D61f", + "transactionHash": "0xf1352f2361c81854a169f40e0129b87dd6f5f2d9c691fd294e48dec6e523ff08" + }, + "1650193422492": { + "events": {}, + "links": {}, + "address": "0x8C5691203417De61B83960531f54EbDda41De66F", + "transactionHash": "0x7044dd545b6214b5bc6efdcade35ed719a5c429af51eb4ee6f815cde0ab473e8" } }, "schemaVersion": "3.4.6", - "updatedAt": "2022-04-13T12:31:43.875Z", + "updatedAt": "2022-04-17T11:10:38.558Z", "networkType": "ethereum", "devdoc": { "kind": "dev", diff --git a/client/src/css/dashboard.css b/client/src/css/dashboard.css index 2a35cc6..001cd47 100644 --- a/client/src/css/dashboard.css +++ b/client/src/css/dashboard.css @@ -2,9 +2,24 @@ display: flex; justify-content: center; align-items: center; - min-height: 100vh; + height: 50vh; } .avatar { margin-bottom: 1em !important; -} \ No newline at end of file +} +.fileTable{ + width: 80vw; + box-shadow: 0 -2px 10px rgba(0, 0, 0, 1) !important ; + margin : auto; + padding: 3rem; + margin-bottom: 3rem !important; + background: #181818 !important; + color: white !important; +} +.dashboard-container{ + background: #161616; + color: white ; + padding: "1em" !important; + min-height:100vh !important; +} diff --git a/client/src/css/interface.css b/client/src/css/interface.css new file mode 100644 index 0000000..f6ee5b8 --- /dev/null +++ b/client/src/css/interface.css @@ -0,0 +1,6 @@ +.interface{ + padding: 2rem; + background: #161616; + color: white !important; + min-height: 100vh; +} \ No newline at end of file diff --git a/client/src/css/scrollbar.css b/client/src/css/scrollbar.css new file mode 100644 index 0000000..d0c5caf --- /dev/null +++ b/client/src/css/scrollbar.css @@ -0,0 +1,18 @@ +::-webkit-scrollbar { + width: 8px; +} + +/* Track */ +::-webkit-scrollbar-track { + background: #888; +} + +/* Handle */ +::-webkit-scrollbar-thumb { + background: #C0C0C0; +} + +/* Handle on hover */ +::-webkit-scrollbar-thumb:hover { + background: #B0B0B0; +} \ No newline at end of file diff --git a/client/src/index.css b/client/src/index.css index 4a1df4d..4bc9011 100644 --- a/client/src/index.css +++ b/client/src/index.css @@ -1,3 +1,8 @@ +html { + height : 100vh; + width : 100vw; + overflow-x: hidden; +} body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", diff --git a/client/src/utils/Avatar.js b/client/src/utils/Avatar.js index 7c7a582..be426e8 100644 --- a/client/src/utils/Avatar.js +++ b/client/src/utils/Avatar.js @@ -29,11 +29,6 @@ function stringAvatar(name) { return { sx: { bgcolor: stringToColor(name), - width: 150, - height: 150, - fontSize: 50, - margin: "auto", - marginBottom: 10, }, children: `${x}`, }; diff --git a/client/src/utils/stringConversion.js b/client/src/utils/stringConversion.js new file mode 100644 index 0000000..641c891 --- /dev/null +++ b/client/src/utils/stringConversion.js @@ -0,0 +1,47 @@ +export const convertWordArrayToUint8Array = (wordArray) => { + var arrayOfWords = wordArray.hasOwnProperty("words") ? wordArray.words : []; + var length = wordArray.hasOwnProperty("sigBytes") ? wordArray.sigBytes : arrayOfWords.length * 4; + var uInt8Array = new Uint8Array(length), index=0, word, i; + for (i=0; i> 24; + uInt8Array[index++] = (word >> 16) & 0xff; + uInt8Array[index++] = (word >> 8) & 0xff; + uInt8Array[index++] = word & 0xff; + } + return uInt8Array; +} + +export const Utf8ArrayToStr = (array) => { + var out, i, len, c; + var char2, char3; + + out = ""; + len = array.length; + i = 0; + while(i < len) { + c = array[i++]; + switch(c >> 4) + { + case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: + // 0xxxxxxx + out += String.fromCharCode(c); + break; + case 12: case 13: + // 110x xxxx 10xx xxxx + char2 = array[i++]; + out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F)); + break; + case 14: + // 1110 xxxx 10xx xxxx 10xx xxxx + char2 = array[i++]; + char3 = array[i++]; + out += String.fromCharCode(((c & 0x0F) << 12) | + ((char2 & 0x3F) << 6) | + ((char3 & 0x3F) << 0)); + break; + } + } + + return out; +} \ No newline at end of file diff --git a/contracts/GlobalShare.sol b/contracts/GlobalShare.sol index 7686476..fa50b5f 100644 --- a/contracts/GlobalShare.sol +++ b/contracts/GlobalShare.sol @@ -28,7 +28,7 @@ contract GlobalShare { ipfsHash[i] = sharedFiles[i].ipfsHash; sender[i] = sharedFiles[i].sender; } - return (fileName,ipfsHash,sender); + return (fileName, ipfsHash, sender); } function _addFile(string memory _fileName, string memory _ipfsHash, address _sender) private { diff --git a/contracts/ShareChannel.sol b/contracts/ShareChannel.sol index 983a164..c8c4143 100644 --- a/contracts/ShareChannel.sol +++ b/contracts/ShareChannel.sol @@ -5,7 +5,6 @@ contract ShareChannel { address public userA; address public userB; - file[] sharedFiles; struct file { string fileName; @@ -16,6 +15,8 @@ contract ShareChannel { address receiver; } + file[] sharedFiles; + constructor(address _userA, address _userB) { userA = _userA; userB = _userB; @@ -35,93 +36,30 @@ contract ShareChannel { ) public isPartOfChannel { _addFile(_fileName, _ipfsHash, _senderEncryptedAESKey, _receiverEncryptedAESKey, msg.sender, _receiver); } - function receiveFile( - string memory _fileName, - string memory _ipfsHash, - string memory _senderEncryptedAESKey, - string memory _receiverEncryptedAESKey, - address _sender - ) public isPartOfChannel { - _addFile(_fileName, _ipfsHash, _senderEncryptedAESKey, _receiverEncryptedAESKey, _sender, msg.sender); - } - - function getSentFiles(address _user) public view isPartOfChannel { - _findFiles(_user, true); - } - - function getReceivedFiles(address _user) public view isPartOfChannel { - _findFiles(_user, false); - } - function getChannelUsers() public view returns(address, address){ - return (userA, userB); - } - - function _addFile( - string memory _fileName, - string memory _ipfsHash, - string memory _senderEncryptedAESKey, - string memory _receiverEncryptedAESKey, - address _sender, - address _receiver - ) private { - file memory newFile = file({ - fileName: _fileName, - ipfsHash: _ipfsHash, - senderEncryptedAESKey: _senderEncryptedAESKey, - receiverEncryptedAESKey: _receiverEncryptedAESKey, - sender: _sender, - receiver: _receiver - }); - sharedFiles.push(newFile); - } - - function _findFiles( - address _user, - bool _getSent - ) private view returns ( - string[] memory, - string[] memory, - string[] memory, - string[] memory, - address[] memory, - address[] memory - ){ - //Destructure the return values. - ( - string[] memory fileName, - string[] memory ipfsHash, - string[] memory senderEncryptedAESKey - ) = _findFiles1(_user, _getSent); - - ( - string[] memory receiverEncryptedAESKey, - address[] memory sender, - address[] memory receiver - ) = _findFiles2(_user, _getSent); - - return ( - fileName, - ipfsHash, - senderEncryptedAESKey, - receiverEncryptedAESKey, - sender, - receiver - ); - } + //COMMENTED FOR NOW AS I THINK THIS IS REDUNDANT: VISHWA - //Divide the function into two to avoid 'stack too deep' errors. + // function receiveFile( + // string memory _fileName, + // string memory _ipfsHash, + // string memory _senderEncryptedAESKey, + // string memory _receiverEncryptedAESKey, + // address _sender + // ) public isPartOfChannel { + // _addFile(_fileName, _ipfsHash, _senderEncryptedAESKey, _receiverEncryptedAESKey, _sender, msg.sender); + // } - function _findFiles1( - address _user, - bool _getSent - ) private view returns ( + function getSentFiles1(address _user1, address _user2) public view returns ( string[] memory, string[] memory, string[] memory - ) { - - uint arraySize = _calcArraySize(_user, _getSent); + ) { + uint arraySize = 0; + for(uint i = 0; i < sharedFiles.length; i++){ + if(sharedFiles[i].sender == _user1 && sharedFiles[i].receiver == _user2){ + arraySize++; + } + } string[] memory fileName = new string[](arraySize); string[] memory ipfsHash = new string[](arraySize); @@ -129,40 +67,32 @@ contract ShareChannel { uint j = 0; for(uint i = 0; i < sharedFiles.length; i++){ - if(_getSent){ - if(sharedFiles[i].sender == _user){ + if(sharedFiles[i].sender == _user1 && sharedFiles[i].receiver == _user2){ fileName[j] = sharedFiles[i].fileName; ipfsHash[j] = sharedFiles[i].ipfsHash; senderEncryptedAESKey[j] = sharedFiles[i].senderEncryptedAESKey; - j++; + j += 1; } - } - else { - if(sharedFiles[i].receiver == _user){ - fileName[j] = sharedFiles[i].fileName; - ipfsHash[j] = sharedFiles[i].ipfsHash; - senderEncryptedAESKey[j] = sharedFiles[i].senderEncryptedAESKey; - j++; - } - } } - + return ( - fileName, - ipfsHash, + fileName, + ipfsHash, senderEncryptedAESKey ); } - function _findFiles2( - address _user, - bool _getSent - ) private view returns ( +function getSentFiles2(address _user1, address _user2) public view returns ( string[] memory, address[] memory, address[] memory - ) { - uint arraySize = _calcArraySize(_user, _getSent); + ) { + uint arraySize = 0; + for(uint i = 0; i < sharedFiles.length; i++){ + if(sharedFiles[i].sender == _user1 && sharedFiles[i].receiver == _user2){ + arraySize++; + } + } string[] memory receiverEncryptedAESKey = new string[](arraySize); address[] memory sender = new address[](arraySize); @@ -170,22 +100,12 @@ contract ShareChannel { uint j = 0; for(uint i = 0; i < sharedFiles.length; i++){ - if(_getSent){ - if(sharedFiles[i].sender == _user){ + if(sharedFiles[i].sender == _user1 && sharedFiles[i].receiver == _user2){ receiverEncryptedAESKey[j] = sharedFiles[i].receiverEncryptedAESKey; sender[j] = sharedFiles[i].sender; receiver[j] = sharedFiles[i].receiver; - j++; + j += 1; } - } - else { - if(sharedFiles[i].receiver == _user){ - receiverEncryptedAESKey[j] = sharedFiles[i].receiverEncryptedAESKey; - sender[j] = sharedFiles[i].sender; - receiver[j] = sharedFiles[i].receiver; - j++; - } - } } return ( @@ -195,21 +115,51 @@ contract ShareChannel { ); } - function _calcArraySize(address _user, bool _getSent) private view returns(uint){ - uint size = 0; - for(uint i = 0; i < sharedFiles.length; i++){ - if(_getSent){ - if(sharedFiles[i].sender == _user){ - size++; - } - } - else { - if(sharedFiles[i].receiver == _user){ - size++; - } - } + function getChannelUsers() public view returns(address, address){ + return (userA, userB); + } + + function getSharedFiles() public view returns (string[] memory, + string[] memory, + string[] memory, + string[] memory, + address[] memory, + address[] memory + ){ + string[] memory fileName = new string[](sharedFiles.length); + string[] memory ipfsHash = new string[](sharedFiles.length); + string[] memory senderEncryptedAESKey = new string[](sharedFiles.length); + string[] memory receiverEncryptedAESKey = new string[](sharedFiles.length); + address[] memory sender = new address[](sharedFiles.length); + address[] memory receiver = new address[](sharedFiles.length); + for (uint i = 0; i < sharedFiles.length; i++) { + fileName[i] = sharedFiles[i].fileName; + ipfsHash[i] = sharedFiles[i].ipfsHash; + senderEncryptedAESKey[i] = sharedFiles[i].senderEncryptedAESKey; + receiverEncryptedAESKey[i] = sharedFiles[i].receiverEncryptedAESKey; + sender[i] = sharedFiles[i].sender; + receiver[i] = sharedFiles[i].receiver; } - return size; + return (fileName, ipfsHash,senderEncryptedAESKey, receiverEncryptedAESKey,sender, receiver); + } + + function _addFile( + string memory _fileName, + string memory _ipfsHash, + string memory _senderEncryptedAESKey, + string memory _receiverEncryptedAESKey, + address _sender, + address _receiver + ) private { + file memory newFile = file({ + fileName: _fileName, + ipfsHash: _ipfsHash, + senderEncryptedAESKey: _senderEncryptedAESKey, + receiverEncryptedAESKey: _receiverEncryptedAESKey, + sender: _sender, + receiver: _receiver + }); + sharedFiles.push(newFile); } -} \ No newline at end of file +}