From 0c29e5d3a8b714be016b24a053ad809a0fc15f16 Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 7 Sep 2018 15:48:41 +0200 Subject: [PATCH 001/117] Modify Stepper to have it working vertically --- src/components/Stepper/index.jsx | 45 ++++++++++++++------------ src/components/forms/GnoForm/index.jsx | 6 ++-- 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/src/components/Stepper/index.jsx b/src/components/Stepper/index.jsx index 5dc21fb6..f5c6f985 100644 --- a/src/components/Stepper/index.jsx +++ b/src/components/Stepper/index.jsx @@ -2,6 +2,7 @@ import Stepper from '@material-ui/core/Stepper' import FormStep from '@material-ui/core/Step' import StepLabel from '@material-ui/core/StepLabel' +import StepContent from '@material-ui/core/StepContent' import { withStyles } from '@material-ui/core/styles' import * as React from 'react' import GnoForm from '~/components/forms/GnoForm' @@ -123,36 +124,38 @@ class GnoStepper extends React.PureComponent { return ( - - {steps.map(label => ( - - {label} - - ))} - - {(submitting: boolean, validating: boolean) => { + {(submitting: boolean, validating: boolean, ...rest: any) => { const disabled = disabledWhenValidating ? submitting || validating : submitting return ( - - - - - + + {steps.map(label => ( + + {label} + + {activePage(rest)} + + + + + + + + ))} + ) }} diff --git a/src/components/forms/GnoForm/index.jsx b/src/components/forms/GnoForm/index.jsx index 9a0a5e76..f808048f 100644 --- a/src/components/forms/GnoForm/index.jsx +++ b/src/components/forms/GnoForm/index.jsx @@ -15,7 +15,6 @@ type Props = { padding: number, validation?: (values: Object) => Object | Promise, initialValues?: Object, - render: Function, } const stylesBasedOn = (padding: number): $Shape => ({ @@ -26,7 +25,7 @@ const stylesBasedOn = (padding: number): $Shape => ({ }) const GnoForm = ({ - onSubmit, validation, initialValues, children, padding, render, + onSubmit, validation, initialValues, children, padding, }: Props) => (
( - {render(rest)} - {children(rest.submitting, rest.validating)} + {children(rest.submitting, rest.validating, rest)}
)} /> From 267c4edf1a74b35b7e2a0538430521937cfa97bd Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 7 Sep 2018 16:35:33 +0200 Subject: [PATCH 002/117] Adding Heading h4 general styles --- src/components/layout/Heading/index.scss | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/layout/Heading/index.scss b/src/components/layout/Heading/index.scss index 982f49e6..66b7a8aa 100644 --- a/src/components/layout/Heading/index.scss +++ b/src/components/layout/Heading/index.scss @@ -18,13 +18,15 @@ .h3 { line-height: 21px; - font-weight: bold; + font-weight: $bolderFont; + letter-spacing: -0.5px; font-family: 'Roboto Mono', monospace; font-size: $(fontSizeHeadingSm)px; } .h4 { line-height: 21px; + letter-spacing: -0.5px; font-family: 'Roboto Mono', monospace; font-size: $(fontSizeHeadingXs)px; } From 9615fd9ad407e51517e9f2876bff9f0c9b7f0dc4 Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 7 Sep 2018 16:35:55 +0200 Subject: [PATCH 003/117] Adding general padding on main tag for the app --- src/components/layout/Page/index.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/layout/Page/index.scss b/src/components/layout/Page/index.scss index b50999b6..05fb632b 100644 --- a/src/components/layout/Page/index.scss +++ b/src/components/layout/Page/index.scss @@ -2,7 +2,7 @@ display: flex; flex: 1 0 auto; flex-direction: column; - padding: $xl; + padding: 80px 260px 0px 260px; } .center { From 750e7289ed831996b8fa2e108222cd791fdf90f6 Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 7 Sep 2018 16:36:53 +0200 Subject: [PATCH 004/117] Specifying as secondary color custom blue --- src/theme/mui.js | 2 +- src/theme/variables.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/theme/mui.js b/src/theme/mui.js index 300cf447..66b18062 100644 --- a/src/theme/mui.js +++ b/src/theme/mui.js @@ -32,7 +32,7 @@ export default createMuiTheme({ letterSpacing: '1px', }, containedPrimary: { - backgroundColor: '#467ee5', + backgroundColor: secondary, }, sizeLarge: { padding: `${md} ${lg}`, diff --git a/src/theme/variables.js b/src/theme/variables.js index 94185584..3387924c 100644 --- a/src/theme/variables.js +++ b/src/theme/variables.js @@ -2,7 +2,7 @@ const border = '#eaebef' const background = '#f4f4f9' const primary = '#4a5579' -const secondary = '#13222b' +const secondary = '#467ee5' // '#13222b' const tertiary = '#f6f9fc' const fontColor = '#4a5579' const fancyColor = '#fd7890' From cf91879c31d3908a8d9567bb76584f9a6173ea90 Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 7 Sep 2018 16:37:46 +0200 Subject: [PATCH 005/117] Adding back button and tittle on route open's layout --- src/routes/open/components/Layout.jsx | 52 ++++++++++++++++++--------- 1 file changed, 35 insertions(+), 17 deletions(-) diff --git a/src/routes/open/components/Layout.jsx b/src/routes/open/components/Layout.jsx index d50bdbde..80b6add9 100644 --- a/src/routes/open/components/Layout.jsx +++ b/src/routes/open/components/Layout.jsx @@ -2,10 +2,16 @@ import * as React from 'react' import Stepper from '~/components/Stepper' import Confirmation from '~/routes/open/components/FormConfirmation' +import Block from '~/components/layout/Block' +import Heading from '~/components/layout/Heading' +import Row from '~/components/layout/Row' +import IconButton from '@material-ui/core/IconButton' import Review from '~/routes/open/components/ReviewInformation' +import ChevronLeft from '@material-ui/icons/ChevronLeft' import SafeFields, { safeFieldsValidation } from '~/routes/open/components/SafeForm' import { SAFELIST_ADDRESS } from '~/routes/routes' import Link from '~/components/layout/Link' +import { secondary } from '~/theme/variables' const getSteps = () => [ 'Fill Safe Form', 'Review Information', 'Deploy it', @@ -23,6 +29,10 @@ type Props = { onCallSafeContractSubmit: (values: Object) => Promise, } +const iconStyle = { + color: secondary, +} + const Layout = ({ provider, userAccount, safeAddress, safeTx, onCallSafeContractSubmit, }: Props) => { @@ -34,23 +44,31 @@ const Layout = ({ { provider ? ( - - - { SafeFields } - - - { Review } - - - { Confirmation } - - + + + + + + Create New Safe + + + + { SafeFields } + + + { Review } + + + { Confirmation } + + + ) :
No metamask detected
} From 872658d9187343be27ceded01b9bd3faf9418bc8 Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 7 Sep 2018 17:25:59 +0200 Subject: [PATCH 006/117] Removing default padding on GnoForm --- src/components/Stepper/index.jsx | 1 - src/components/forms/GnoForm/index.jsx | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/components/Stepper/index.jsx b/src/components/Stepper/index.jsx index f5c6f985..e56d60ec 100644 --- a/src/components/Stepper/index.jsx +++ b/src/components/Stepper/index.jsx @@ -127,7 +127,6 @@ class GnoStepper extends React.PureComponent { {(submitting: boolean, validating: boolean, ...rest: any) => { diff --git a/src/components/forms/GnoForm/index.jsx b/src/components/forms/GnoForm/index.jsx index f808048f..7216730d 100644 --- a/src/components/forms/GnoForm/index.jsx +++ b/src/components/forms/GnoForm/index.jsx @@ -12,7 +12,7 @@ export type OnSubmit = ( type Props = { onSubmit: OnSubmit, children: Function, - padding: number, + padding?: number, validation?: (values: Object) => Object | Promise, initialValues?: Object, } @@ -25,7 +25,7 @@ const stylesBasedOn = (padding: number): $Shape => ({ }) const GnoForm = ({ - onSubmit, validation, initialValues, children, padding, + onSubmit, validation, initialValues, children, padding = 0, }: Props) => (
Date: Fri, 7 Sep 2018 17:26:24 +0200 Subject: [PATCH 007/117] Changing steps names to open route --- src/routes/open/components/Layout.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/open/components/Layout.jsx b/src/routes/open/components/Layout.jsx index 80b6add9..35fd73c0 100644 --- a/src/routes/open/components/Layout.jsx +++ b/src/routes/open/components/Layout.jsx @@ -14,7 +14,7 @@ import Link from '~/components/layout/Link' import { secondary } from '~/theme/variables' const getSteps = () => [ - 'Fill Safe Form', 'Review Information', 'Deploy it', + 'Start', 'Owners', 'Confirmations', 'Review', ] const initialValuesFrom = (userAccount: string) => ({ From 431e0281a4ca38e338ebb5ea3804817e428da47d Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 7 Sep 2018 17:27:26 +0200 Subject: [PATCH 008/117] Updating mui theme to match styles --- src/theme/mui.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/theme/mui.js b/src/theme/mui.js index 66b18062..e2953e5b 100644 --- a/src/theme/mui.js +++ b/src/theme/mui.js @@ -40,6 +40,17 @@ export default createMuiTheme({ fontSize: mediumFontSize, }, }, + MuiStepIcon: { + active: { + color: `${secondary} !important`, + }, + }, + MuiTypography: { + body1: { + fontFamily: 'Roboto Mono, monospace', + letterSpacing: '-0.5px', + }, + }, }, palette, }) From e64da52fa1defb5a1002483e0d00ec2298c4e94f Mon Sep 17 00:00:00 2001 From: apanizo Date: Thu, 13 Sep 2018 17:08:04 +0200 Subject: [PATCH 009/117] Adding dot style in Paragraph component --- src/components/layout/Paragraph/index.js | 5 +++-- src/components/layout/Paragraph/index.scss | 6 +++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/components/layout/Paragraph/index.js b/src/components/layout/Paragraph/index.js index a9f08efc..c28f3b9f 100644 --- a/src/components/layout/Paragraph/index.js +++ b/src/components/layout/Paragraph/index.js @@ -13,18 +13,19 @@ type Props = { color?: 'soft' | 'medium' | 'dark' | 'white' | 'fancy' | 'primary' | 'warning', transform?: 'capitalize' | 'lowercase' | 'uppercase', children: React$Node, + dot?: boolean, className?: string, } class Paragraph extends React.PureComponent { render() { const { - weight, children, color, align, size, transform, noMargin, className, ...props + weight, children, color, align, size, transform, noMargin, className, dot, ...props } = this.props return (

{ children } diff --git a/src/components/layout/Paragraph/index.scss b/src/components/layout/Paragraph/index.scss index fcbadac8..396fafb6 100644 --- a/src/components/layout/Paragraph/index.scss +++ b/src/components/layout/Paragraph/index.scss @@ -88,4 +88,8 @@ .bold { font-weight: $boldFont; -} \ No newline at end of file +} + +.dot { + display: list-item; +} From 29c9b786faf96259f957cbe73af0781712ffe97c Mon Sep 17 00:00:00 2001 From: apanizo Date: Thu, 13 Sep 2018 17:08:30 +0200 Subject: [PATCH 010/117] Creating a OpenPaper component for integration it in the Open Safe Stepper --- .../open/components/OpenPaper/index.jsx | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/routes/open/components/OpenPaper/index.jsx diff --git a/src/routes/open/components/OpenPaper/index.jsx b/src/routes/open/components/OpenPaper/index.jsx new file mode 100644 index 00000000..ef77edf1 --- /dev/null +++ b/src/routes/open/components/OpenPaper/index.jsx @@ -0,0 +1,32 @@ +// @flow +import * as React from 'react' +import { withStyles } from '@material-ui/core/styles' +import Paper from '@material-ui/core/Paper' +import Block from '~/components/layout/Block' +import { lg } from '~/theme/variables' + +const styles = () => ({ + root: { + padding: lg, + maxWidth: '770px', + }, + container: { + maxWidth: '600px', + letterSpacing: '-0.5px', + }, +}) + +type Props = { + classes: Object, + children: React$Node, +} + +const OpenPaper = ({ classes, children }: Props) => ( + + + {children} + + +) + +export default withStyles(styles)(OpenPaper) From fd06b48aa864e81ed5195bd57f9691bc70f8a1bd Mon Sep 17 00:00:00 2001 From: apanizo Date: Thu, 13 Sep 2018 17:10:10 +0200 Subject: [PATCH 011/117] Creating first step component: SafeName --- .../open/components/SafeNameForm/index.jsx | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/routes/open/components/SafeNameForm/index.jsx diff --git a/src/routes/open/components/SafeNameForm/index.jsx b/src/routes/open/components/SafeNameForm/index.jsx new file mode 100644 index 00000000..71f506b7 --- /dev/null +++ b/src/routes/open/components/SafeNameForm/index.jsx @@ -0,0 +1,21 @@ +// @flow +import * as React from 'react' +import Paragraph from '~/components/layout/Paragraph' +import OpenPaper from '../OpenPaper' + +const SafeNameForm = () => () => ( + + + This setup will create a Safe with one or more owners. Optionally give the Safe a local name. + By continuing you consent with the terms of use and privacy policy. + + + ● I understand that my funds are held securely in my Safe. They cannot be accessed by Gnosis. + + + ● My Safe is a smart contract on the Ethereum blockchain. + + +) + +export default SafeNameForm From efb6203cc7d7ae1a2b4f5852e6a8024ded71ca54 Mon Sep 17 00:00:00 2001 From: apanizo Date: Thu, 13 Sep 2018 17:10:31 +0200 Subject: [PATCH 012/117] Integrating in Stepper first Step --- src/routes/open/components/Layout.jsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/routes/open/components/Layout.jsx b/src/routes/open/components/Layout.jsx index 35fd73c0..5560279d 100644 --- a/src/routes/open/components/Layout.jsx +++ b/src/routes/open/components/Layout.jsx @@ -9,6 +9,7 @@ import IconButton from '@material-ui/core/IconButton' import Review from '~/routes/open/components/ReviewInformation' import ChevronLeft from '@material-ui/icons/ChevronLeft' import SafeFields, { safeFieldsValidation } from '~/routes/open/components/SafeForm' +import SafeNameField from '~/routes/open/components/SafeNameForm' import { SAFELIST_ADDRESS } from '~/routes/routes' import Link from '~/components/layout/Link' import { secondary } from '~/theme/variables' @@ -58,6 +59,9 @@ const Layout = ({ steps={steps} initialValues={initialValues} > + + { SafeNameField } + { SafeFields } From fea31e219cfe9cb9271992a8667bf5630d444c03 Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 14 Sep 2018 17:10:19 +0200 Subject: [PATCH 013/117] Adding custom GNO TextField for forms --- src/components/forms/TextField/index.jsx | 26 ++++++++++-- .../open/components/SafeNameForm/index.jsx | 36 ++++++++++++++++- src/theme/mui.js | 40 ++++++++++++++++++- 3 files changed, 95 insertions(+), 7 deletions(-) diff --git a/src/components/forms/TextField/index.jsx b/src/components/forms/TextField/index.jsx index 77c936ed..f7ccc9aa 100644 --- a/src/components/forms/TextField/index.jsx +++ b/src/components/forms/TextField/index.jsx @@ -1,12 +1,23 @@ // @flow import React from 'react' import MuiTextField, { TextFieldProps } from '@material-ui/core/TextField' +import { withStyles } from '@material-ui/core/styles' +import { lg } from '~/theme/variables' // Neded for solving a fix in Windows browsers const overflowStyle = { overflow: 'hidden', + width: '100%', } +const styles = () => ({ + root: { + paddingTop: lg, + paddingBottom: '12px', + lineHeight: 0, + }, +}) + class TextField extends React.PureComponent { render() { const { @@ -16,25 +27,32 @@ class TextField extends React.PureComponent { meta, render, text, + classes, ...rest } = this.props const helperText = value ? text : undefined const showError = (meta.touched || !meta.pristine) && !meta.valid + const underline = meta.active || (meta.visited && !meta.valid) + + const inputRoot = helperText ? classes.root : undefined + const inputProps = { ...restInput, autocomplete: 'off' } + const inputRootProps = { disableUnderline: !underline, className: inputRoot } return ( ) } } -export default TextField +export default withStyles(styles)(TextField) diff --git a/src/routes/open/components/SafeNameForm/index.jsx b/src/routes/open/components/SafeNameForm/index.jsx index 71f506b7..ec827c31 100644 --- a/src/routes/open/components/SafeNameForm/index.jsx +++ b/src/routes/open/components/SafeNameForm/index.jsx @@ -1,9 +1,40 @@ // @flow import * as React from 'react' +import { withStyles } from '@material-ui/core/styles' +import Field from '~/components/forms/Field' +import TextField from '~/components/forms/TextField' +import { required } from '~/components/forms/validator' +import Block from '~/components/layout/Block' +import { FIELD_NAME } from '~/routes/open/components/fields' import Paragraph from '~/components/layout/Paragraph' import OpenPaper from '../OpenPaper' -const SafeNameForm = () => () => ( +type Props = { + classes: Object, +} + +const styles = () => ({ + root: { + display: 'flex', + }, +}) + +const SafeName = ({ classes }: Props) => ( + + + +) + +const SafeNameForm = withStyles(styles)(SafeName) + +const SafeNamePage = () => () => ( This setup will create a Safe with one or more owners. Optionally give the Safe a local name. @@ -15,7 +46,8 @@ const SafeNameForm = () => () => ( ● My Safe is a smart contract on the Ethereum blockchain. + ) -export default SafeNameForm +export default SafeNamePage diff --git a/src/theme/mui.js b/src/theme/mui.js index e2953e5b..216e60e3 100644 --- a/src/theme/mui.js +++ b/src/theme/mui.js @@ -1,7 +1,7 @@ // @flow import red from '@material-ui/core/colors/red' import { createMuiTheme } from '@material-ui/core/styles' -import { mediumFontSize, primary, secondary, md, lg } from './variables' +import { largeFontSize, mediumFontSize, smallFontSize, primary, secondary, md, lg, background } from './variables' export type WithStyles = { classes: Object, @@ -51,6 +51,44 @@ export default createMuiTheme({ letterSpacing: '-0.5px', }, }, + MuiFormHelperText: { + root: { + fontFamily: 'Roboto Mono, monospace', + fontSize: smallFontSize, + padding: `0 0 0 ${md}`, + position: 'relative', + top: '20px', + color: secondary, + order: 0, + marginTop: '0px', + backgroundColor: background, + }, + }, + MuiInput: { + root: { + fontFamily: 'Roboto Mono, monospace', + color: primary, + fontSize: largeFontSize, + lineHeight: '56px', + order: 1, + padding: `0 ${md}`, + backgroundColor: background, + }, + input: { + padding: 0, + }, + underline: { + '&:before': { + borderBottom: `2px solid ${secondary}`, + }, + '&:focus:before': { + borderBottom: '1px solid purple', + }, + '&:hover:not($disabled):not($focused):not($error):before': { + borderBottom: `2px solid ${secondary}`, + }, + }, + }, }, palette, }) From cd742fbef0bc918b1d94aebe82e48812d4368eb3 Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 14 Sep 2018 17:12:00 +0200 Subject: [PATCH 014/117] Typo autoComplete --- src/components/forms/TextField/index.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/forms/TextField/index.jsx b/src/components/forms/TextField/index.jsx index f7ccc9aa..0d1117f4 100644 --- a/src/components/forms/TextField/index.jsx +++ b/src/components/forms/TextField/index.jsx @@ -35,7 +35,7 @@ class TextField extends React.PureComponent { const underline = meta.active || (meta.visited && !meta.valid) const inputRoot = helperText ? classes.root : undefined - const inputProps = { ...restInput, autocomplete: 'off' } + const inputProps = { ...restInput, autoComplete: 'off' } const inputRootProps = { disableUnderline: !underline, className: inputRoot } return ( From a3fd30367fcf4faa338af7d75b6039c5df48d6fb Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 14 Sep 2018 17:13:19 +0200 Subject: [PATCH 015/117] Remove unused MuiInput underline style --- src/theme/mui.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/theme/mui.js b/src/theme/mui.js index 216e60e3..a516cd5f 100644 --- a/src/theme/mui.js +++ b/src/theme/mui.js @@ -81,9 +81,6 @@ export default createMuiTheme({ '&:before': { borderBottom: `2px solid ${secondary}`, }, - '&:focus:before': { - borderBottom: '1px solid purple', - }, '&:hover:not($disabled):not($focused):not($error):before': { borderBottom: `2px solid ${secondary}`, }, From 9b6feafb36387bbd87c814e107df6bc6f91325d4 Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 14 Sep 2018 17:36:31 +0200 Subject: [PATCH 016/117] Editing controls in Stepper component --- src/components/Stepper/Controls/index.jsx | 54 ++++++++++++------- src/components/Stepper/index.jsx | 24 ++++----- src/components/layout/Hairline/index.js | 2 +- .../open/components/OpenPaper/index.jsx | 2 + src/theme/size.js | 2 +- 5 files changed, 49 insertions(+), 35 deletions(-) diff --git a/src/components/Stepper/Controls/index.jsx b/src/components/Stepper/Controls/index.jsx index fd96b62d..21634e23 100644 --- a/src/components/Stepper/Controls/index.jsx +++ b/src/components/Stepper/Controls/index.jsx @@ -1,34 +1,48 @@ // @flow import * as React from 'react' import Button from '~/components/layout/Button' +import Col from '~/components/layout/Col' +import Row from '~/components/layout/Row' type ControlProps = { next: string, + back: string, onPrevious: () => void, firstPage: boolean, disabled: boolean, } +const controlStyle = { + backgroundColor: 'white', + padding: '8px', + borderBottomRightRadius: '4px', + borderBottomLeftRadius: '4px', +} + const ControlButtons = ({ - next, firstPage, onPrevious, disabled, + next, back, firstPage, onPrevious, disabled, }: ControlProps) => ( - - - - + + + + + + ) type Props = { @@ -47,7 +61,9 @@ const Controls = ({ ? {finishedButton} : diff --git a/src/components/Stepper/index.jsx b/src/components/Stepper/index.jsx index e56d60ec..0e24f32e 100644 --- a/src/components/Stepper/index.jsx +++ b/src/components/Stepper/index.jsx @@ -6,9 +6,8 @@ import StepContent from '@material-ui/core/StepContent' import { withStyles } from '@material-ui/core/styles' import * as React from 'react' import GnoForm from '~/components/forms/GnoForm' +import Hairline from '~/components/layout/Hairline' import Button from '~/components/layout/Button' -import Col from '~/components/layout/Col' -import Row from '~/components/layout/Row' import Controls from './Controls' export { default as Step } from './Step' @@ -139,18 +138,15 @@ class GnoStepper extends React.PureComponent { {label} {activePage(rest)} - - - - - + + ))} diff --git a/src/components/layout/Hairline/index.js b/src/components/layout/Hairline/index.js index 8bebc215..dae5ea6f 100644 --- a/src/components/layout/Hairline/index.js +++ b/src/components/layout/Hairline/index.js @@ -14,7 +14,7 @@ type Props = { margin?: Size, } -const Hairline = ({ margin = 'md' }: Props) => { +const Hairline = ({ margin }: Props) => { const style = calculateStyleFrom(margin) return

diff --git a/src/routes/open/components/OpenPaper/index.jsx b/src/routes/open/components/OpenPaper/index.jsx index ef77edf1..4ee2464f 100644 --- a/src/routes/open/components/OpenPaper/index.jsx +++ b/src/routes/open/components/OpenPaper/index.jsx @@ -9,6 +9,8 @@ const styles = () => ({ root: { padding: lg, maxWidth: '770px', + borderBottomRightRadius: '0px', + borderBottomLeftRadius: '0px', }, container: { maxWidth: '600px', diff --git a/src/theme/size.js b/src/theme/size.js index 13e11797..1d0f5526 100644 --- a/src/theme/size.js +++ b/src/theme/size.js @@ -16,6 +16,6 @@ export const getSize = (size: Size) => { case 'xl': return xl default: - return md + return '0px' } } From b594d3098c8431d2c345a27561abe18c6d7a239b Mon Sep 17 00:00:00 2001 From: Adolfo Panizo Date: Sun, 16 Sep 2018 09:46:16 +0200 Subject: [PATCH 017/117] Adding undefined to getSize helper function --- src/components/layout/Hairline/index.js | 2 +- src/theme/size.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/layout/Hairline/index.js b/src/components/layout/Hairline/index.js index dae5ea6f..0dd0acb3 100644 --- a/src/components/layout/Hairline/index.js +++ b/src/components/layout/Hairline/index.js @@ -3,7 +3,7 @@ import * as React from 'react' import { type Size, getSize } from '~/theme/size' import { border } from '~/theme/variables' -const calculateStyleFrom = (margin: Size) => ({ +const calculateStyleFrom = (margin?: Size) => ({ width: '100%', height: '1px', backgroundColor: border, diff --git a/src/theme/size.js b/src/theme/size.js index 1d0f5526..49098ac1 100644 --- a/src/theme/size.js +++ b/src/theme/size.js @@ -3,7 +3,7 @@ import { xs, sm, md, lg, xl } from '~/theme/variables' export type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl' -export const getSize = (size: Size) => { +export const getSize = (size: Size | typeof undefined) => { switch (size) { case 'xs': return xs From 6edbf338bc63bbc7c8024dbd8fc61cce41636136 Mon Sep 17 00:00:00 2001 From: Adolfo Panizo Date: Sun, 16 Sep 2018 09:47:22 +0200 Subject: [PATCH 018/117] Passing Stepper controls down to the Paper step component --- src/components/Stepper/Controls/index.jsx | 7 +++---- src/components/Stepper/index.jsx | 24 +++++++++++++---------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/components/Stepper/Controls/index.jsx b/src/components/Stepper/Controls/index.jsx index 21634e23..aa4962fb 100644 --- a/src/components/Stepper/Controls/index.jsx +++ b/src/components/Stepper/Controls/index.jsx @@ -3,6 +3,7 @@ import * as React from 'react' import Button from '~/components/layout/Button' import Col from '~/components/layout/Col' import Row from '~/components/layout/Row' +import { sm } from '~/theme/variables' type ControlProps = { next: string, @@ -14,15 +15,13 @@ type ControlProps = { const controlStyle = { backgroundColor: 'white', - padding: '8px', - borderBottomRightRadius: '4px', - borderBottomLeftRadius: '4px', + padding: sm, } const ControlButtons = ({ next, back, firstPage, onPrevious, disabled, }: ControlProps) => ( - + - - - -) - type Props = { - finishedTx: boolean, - finishedButton: React$Node, onPrevious: () => void, firstPage: boolean, lastPage: boolean, @@ -57,17 +22,35 @@ type Props = { } const Controls = ({ - finishedTx, finishedButton, onPrevious, firstPage, lastPage, disabled, -}: Props) => ( - finishedTx - ? {finishedButton} - : -) + onPrevious, firstPage, lastPage, disabled, +}: Props) => { + // eslint-disable-next-line + const next = firstPage ? 'Start' : lastPage ? 'Submit' : 'Next' + const back = firstPage ? 'Cancel' : 'Back' + + return ( + + + + + + + ) +} export default Controls diff --git a/src/components/Stepper/index.jsx b/src/components/Stepper/index.jsx index 882b6bbc..5cc89ef6 100644 --- a/src/components/Stepper/index.jsx +++ b/src/components/Stepper/index.jsx @@ -14,15 +14,13 @@ import Controls from './Controls' export { default as Step } from './Step' type Props = { - disabledWhenValidating?: boolean, - classes: Object, steps: string[], - finishedTransaction: boolean, - finishedButton: React$Node, - initialValues?: Object, - children: React$Node, - onReset?: () => void, onSubmit: (values: Object) => Promise, + children: React$Node, + classes: Object, + onReset?: () => void, + initialValues?: Object, + disabledWhenValidating?: boolean, } type State = { @@ -122,12 +120,11 @@ class GnoStepper extends React.PureComponent { render() { const { - steps, children, finishedTransaction, finishedButton, classes, disabledWhenValidating = false, + steps, children, classes, disabledWhenValidating = false, } = this.props const { page, values } = this.state const activePage = this.getActivePageFrom(children) const isLastPage = page === steps.length - 1 - const finished = React.cloneElement(React.Children.only(finishedButton), { onClick: this.onReset }) return ( @@ -143,8 +140,6 @@ class GnoStepper extends React.PureComponent { Date: Tue, 25 Sep 2018 13:34:36 +0200 Subject: [PATCH 032/117] Removing state in Open container to make it fully async --- src/routes/open/components/Layout.jsx | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/src/routes/open/components/Layout.jsx b/src/routes/open/components/Layout.jsx index 9b041fbf..a4503240 100644 --- a/src/routes/open/components/Layout.jsx +++ b/src/routes/open/components/Layout.jsx @@ -1,7 +1,6 @@ // @flow import * as React from 'react' import Stepper from '~/components/Stepper' -import Confirmation from '~/routes/open/components/FormConfirmation' import Block from '~/components/layout/Block' import Heading from '~/components/layout/Heading' import Row from '~/components/layout/Row' @@ -10,13 +9,11 @@ import Review from '~/routes/open/components/ReviewInformation' import ChevronLeft from '@material-ui/icons/ChevronLeft' import SafeFields, { safeFieldsValidation } from '~/routes/open/components/SafeForm' import SafeNameField from '~/routes/open/components/SafeNameForm' -import { SAFELIST_ADDRESS } from '~/routes/routes' -import Link from '~/components/layout/Link' import { history } from '~/store' import { secondary } from '~/theme/variables' const getSteps = () => [ - 'Start', 'Details', 'Review', 'Submit', + 'Start', 'Details', 'Review', ] const initialValuesFrom = (userAccount: string) => ({ @@ -26,8 +23,6 @@ const initialValuesFrom = (userAccount: string) => ({ type Props = { provider: string, userAccount: string, - safeAddress: string, - safeTx: string, onCallSafeContractSubmit: (values: Object) => Promise, } @@ -42,11 +37,10 @@ const back = () => { } const Layout = ({ - provider, userAccount, safeAddress, safeTx, onCallSafeContractSubmit, + provider, userAccount, onCallSafeContractSubmit, }: Props) => { const steps = getSteps() const initialValues = initialValuesFrom(userAccount) - const finishedButton = return ( @@ -60,8 +54,6 @@ const Layout = ({ Create New Safe { Review } - - { Confirmation } - ) From 19c8f77d2f005cbf89f18c37c0684edb698c7231 Mon Sep 17 00:00:00 2001 From: apanizo Date: Tue, 25 Sep 2018 13:35:10 +0200 Subject: [PATCH 033/117] Creating opening route (no components yet) --- src/routes/open/container/Open.jsx | 27 +++++++++++---------------- src/routes/routes.js | 8 ++++++++ 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/routes/open/container/Open.jsx b/src/routes/open/container/Open.jsx index a44e0e08..6dc8b149 100644 --- a/src/routes/open/container/Open.jsx +++ b/src/routes/open/container/Open.jsx @@ -7,6 +7,8 @@ import { getAccountsFrom, getThresholdFrom, getNamesFrom, getSafeNameFrom, getDa import { getWeb3 } from '~/logic/wallets/getWeb3' import { getGnosisSafeContract, deploySafeContract, initContracts } from '~/logic/contracts/safeContracts' import { checkReceiptStatus } from '~/logic/wallets/ethTransactions' +import { history } from '~/store' +import { OPENING_ADDRESS, stillInOpeningView, SAFELIST_ADDRESS } from '~/routes/routes' import selector from './selector' import actions, { type Actions, type AddSafe } from './actions' import Layout from '../components/Layout' @@ -18,7 +20,6 @@ type Props = Actions & { export type OpenState = { safeAddress: string, - safeTx: string, } export const createSafe = async (values: Object, userAccount: string, addSafe: AddSafe): Promise => { @@ -40,24 +41,21 @@ export const createSafe = async (values: Object, userAccount: string, addSafe: A addSafe(name, safeContract.address, numConfirmations, dailyLimit, owners, accounts) + if (stillInOpeningView()) { + const url = `${SAFELIST_ADDRESS}/${safeContract.address}` + history.push(url) + } + + // returning info for testing purposes, in app is fully async return { safeAddress: safeContract.address, safeTx: safe } } -class Open extends React.Component { - constructor() { - super() - - this.state = { - safeAddress: '', - safeTx: '', - } - } - +class Open extends React.Component { onCallSafeContractSubmit = async (values) => { try { const { userAccount, addSafe } = this.props - const safeInstance = await createSafe(values, userAccount, addSafe) - this.setState(safeInstance) + createSafe(values, userAccount, addSafe) + history.push(OPENING_ADDRESS) } catch (error) { // eslint-disable-next-line console.log('Error while creating the Safe' + error) @@ -65,7 +63,6 @@ class Open extends React.Component { } render() { - const { safeAddress, safeTx } = this.state const { provider, userAccount } = this.props return ( @@ -73,8 +70,6 @@ class Open extends React.Component { diff --git a/src/routes/routes.js b/src/routes/routes.js index 4ab227a3..ca326218 100644 --- a/src/routes/routes.js +++ b/src/routes/routes.js @@ -1,6 +1,14 @@ // @flow +import { history } from '~/store' + export const SAFE_PARAM_ADDRESS = 'address' export const SAFELIST_ADDRESS = '/safes' export const OPEN_ADDRESS = '/open' export const WELCOME_ADDRESS = '/welcome' export const SETTINS_ADDRESS = '/settings' +export const OPENING_ADDRESS = '/opening' + +export const stillInOpeningView = () => { + const path = history.location.pathname + return path === OPENING_ADDRESS +} From c9c5d1fed75e8a84aeca451223b7dd13979d5350 Mon Sep 17 00:00:00 2001 From: apanizo Date: Tue, 25 Sep 2018 16:42:32 +0200 Subject: [PATCH 034/117] Adding to Paragraph secondary color --- src/components/layout/Paragraph/index.js | 4 ++-- src/components/layout/Paragraph/index.scss | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/components/layout/Paragraph/index.js b/src/components/layout/Paragraph/index.js index c28f3b9f..59534758 100644 --- a/src/components/layout/Paragraph/index.js +++ b/src/components/layout/Paragraph/index.js @@ -9,8 +9,8 @@ type Props = { align?: 'right' | 'center' | 'left', noMargin?: boolean, weight?: 'light' | 'regular' | 'bolder' | 'bold', - size?: 'sm' | 'md' | 'lg' | 'xl', - color?: 'soft' | 'medium' | 'dark' | 'white' | 'fancy' | 'primary' | 'warning', + size?: 'sm' | 'md' | 'lg' | 'xl' | 'xxl', + color?: 'soft' | 'medium' | 'dark' | 'white' | 'fancy' | 'primary' | 'secondary' | 'warning', transform?: 'capitalize' | 'lowercase' | 'uppercase', children: React$Node, dot?: boolean, diff --git a/src/components/layout/Paragraph/index.scss b/src/components/layout/Paragraph/index.scss index 396fafb6..00f047f6 100644 --- a/src/components/layout/Paragraph/index.scss +++ b/src/components/layout/Paragraph/index.scss @@ -22,10 +22,15 @@ .warning { color: $warning; } + .primary { color: $fontColor; } +.secondary { + color: $secondary; +} + .white { color: white; } @@ -74,6 +79,10 @@ font-size: $extraLargeFontSize; } +.xxl { + font-size: $xxlFontSize; +} + .light { font-weight: $lightFont; } From a6bd62fabf05f97d461cfcb55d9c494286834f6c Mon Sep 17 00:00:00 2001 From: apanizo Date: Tue, 25 Sep 2018 16:44:26 +0200 Subject: [PATCH 035/117] Adding opening components & styles --- src/routes/index.js | 8 ++++- src/routes/open/container/Open.jsx | 8 ++++- src/routes/opening/assets/vault.svg | 12 ++++++++ src/routes/opening/index.jsx | 46 +++++++++++++++++++++++++++++ src/theme/variables.js | 3 +- 5 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 src/routes/opening/assets/vault.svg create mode 100644 src/routes/opening/index.jsx diff --git a/src/routes/index.js b/src/routes/index.js index 42b6f74c..677e39db 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -4,7 +4,7 @@ import Loadable from 'react-loadable' import { Switch, Redirect, Route } from 'react-router-dom' import Loader from '~/components/Loader' import Welcome from './welcome/container' -import { SAFELIST_ADDRESS, OPEN_ADDRESS, SAFE_PARAM_ADDRESS, WELCOME_ADDRESS, SETTINS_ADDRESS } from './routes' +import { SAFELIST_ADDRESS, OPEN_ADDRESS, SAFE_PARAM_ADDRESS, WELCOME_ADDRESS, SETTINS_ADDRESS, OPENING_ADDRESS } from './routes' const Safe = Loadable({ loader: () => import('./safe/container'), @@ -26,6 +26,11 @@ const Open = Loadable({ loading: Loader, }) +const Opening = Loadable({ + loader: () => import('./opening'), + loading: Loader, +}) + const SAFE_ADDRESS = `${SAFELIST_ADDRESS}/:${SAFE_PARAM_ADDRESS}` const SAFE_SETTINGS = `${SAFE_ADDRESS}${SETTINS_ADDRESS}` @@ -39,6 +44,7 @@ const Routes = () => ( + ) diff --git a/src/routes/open/container/Open.jsx b/src/routes/open/container/Open.jsx index 6dc8b149..b5ac2604 100644 --- a/src/routes/open/container/Open.jsx +++ b/src/routes/open/container/Open.jsx @@ -42,7 +42,13 @@ export const createSafe = async (values: Object, userAccount: string, addSafe: A addSafe(name, safeContract.address, numConfirmations, dailyLimit, owners, accounts) if (stillInOpeningView()) { - const url = `${SAFELIST_ADDRESS}/${safeContract.address}` + const url = { + pathname: `${SAFELIST_ADDRESS}/${safeContract.address}`, + state: { + name, + }, + } + history.push(url) } diff --git a/src/routes/opening/assets/vault.svg b/src/routes/opening/assets/vault.svg new file mode 100644 index 00000000..cc83c30b --- /dev/null +++ b/src/routes/opening/assets/vault.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/routes/opening/index.jsx b/src/routes/opening/index.jsx new file mode 100644 index 00000000..be840d82 --- /dev/null +++ b/src/routes/opening/index.jsx @@ -0,0 +1,46 @@ +// @flow +import * as React from 'react' +import Block from '~/components/layout/Block' +import Paragraph from '~/components/layout/Paragraph' +import LinearProgress from '@material-ui/core/LinearProgress' +import { withStyles } from '@material-ui/core/styles' +import Img from '~/components/layout/Img' +import Page from '~/components/layout/Page' + +type Props = { + name: string, + classes: Object, +} + +const vault = require('./assets/vault.svg') + +const styles = { + page: { + letterSpacing: '-1px', + }, +} + +const Opening = ({ classes, name = 'Safe creation process' }: Props) => ( + + + {name} + + + Vault + + + + + + Transaction submitted + + + Deploying your new Safe... + + + This process should take a couple of minutes.
+
+
+) + +export default withStyles(styles)(Opening) diff --git a/src/theme/variables.js b/src/theme/variables.js index ff8780a9..b8bcdb42 100644 --- a/src/theme/variables.js +++ b/src/theme/variables.js @@ -42,7 +42,8 @@ module.exports = Object.assign({}, { smallFontSize: '11px', mediumFontSize: '13px', largeFontSize: '15px', - extraLargeFontSize: '24px', + extraLargeFontSize: '18px', + xxlFontSize: '32px', screenXs: 480, screenXsMax: 767, screenSm: 768, From 2af0c2d3efd0cefbac971e0e26e5538ee092682c Mon Sep 17 00:00:00 2001 From: apanizo Date: Tue, 25 Sep 2018 16:48:04 +0200 Subject: [PATCH 036/117] Adding responsive layout to Page default view component --- src/components/layout/Page/index.scss | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/components/layout/Page/index.scss b/src/components/layout/Page/index.scss index 5f37d5d3..c4c5a6a2 100644 --- a/src/components/layout/Page/index.scss +++ b/src/components/layout/Page/index.scss @@ -5,6 +5,12 @@ padding: 80px 200px 0px 200px; } +@media only screen and (max-width: $(screenLg)px) { + .page { + padding: 80px $lg 0px $lg; + } +} + .center { align-self: center; } From 9c235ea12ac17386c1e9848736c76c5b0d9722e9 Mon Sep 17 00:00:00 2001 From: apanizo Date: Tue, 25 Sep 2018 16:50:16 +0200 Subject: [PATCH 037/117] Removing autocomplete in inputs --- src/components/forms/TextField/index.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/forms/TextField/index.jsx b/src/components/forms/TextField/index.jsx index f9316365..0d1117f4 100644 --- a/src/components/forms/TextField/index.jsx +++ b/src/components/forms/TextField/index.jsx @@ -35,7 +35,7 @@ class TextField extends React.PureComponent { const underline = meta.active || (meta.visited && !meta.valid) const inputRoot = helperText ? classes.root : undefined - const inputProps = { ...restInput, autoComplete: 'false' } + const inputProps = { ...restInput, autoComplete: 'off' } const inputRootProps = { disableUnderline: !underline, className: inputRoot } return ( From 41f4cfaa79271a12bd1b87439cd2198ddd9ab4bd Mon Sep 17 00:00:00 2001 From: apanizo Date: Wed, 26 Sep 2018 11:19:53 +0200 Subject: [PATCH 038/117] Updating safe-contracts to 0.0.2 alpha --- safe-contracts/build/contracts/BaseSafe.json | 1149 + .../build/contracts/CreateAndAddModules.json | 582 +- .../build/contracts/DailyLimitModule.json | 2658 ++- .../contracts/DelegateConstructorProxy.json | 292 +- safe-contracts/build/contracts/Enum.json | 84 +- .../build/contracts/EtherPaymentFallback.json | 88 +- safe-contracts/build/contracts/Executor.json | 1706 +- .../build/contracts/GnosisSafe.json | 19111 +++++++++++++++- .../contracts/GnosisSafePersonalEdition.json | 9551 -------- .../contracts/GnosisSafeTeamEdition.json | 7619 ------ .../build/contracts/ISignatureValidator.json | 339 + .../build/contracts/MasterCopy.json | 312 +- .../build/contracts/Migrations.json | 588 +- .../build/contracts/MockContract.json | 12732 ++++++++++ safe-contracts/build/contracts/Module.json | 526 +- .../build/contracts/ModuleManager.json | 3410 +-- safe-contracts/build/contracts/MultiSend.json | 164 +- .../build/contracts/OwnerManager.json | 6218 ++--- .../build/contracts/PayingProxy.json | 654 +- safe-contracts/build/contracts/Proxy.json | 440 +- .../build/contracts/ProxyFactory.json | 458 +- .../build/contracts/SecuredTokenTransfer.json | 316 +- .../build/contracts/SelfAuthorized.json | 192 +- ...reValidator.json => SignatureDecoder.json} | 664 +- .../build/contracts/SocialRecoveryModule.json | 2778 ++- .../build/contracts/StateChannelModule.json | 2110 +- safe-contracts/build/contracts/Token.json | 363 + .../build/contracts/WhitelistModule.json | 1706 +- .../test/ApproveAndCallFallBack.json | 5562 ++--- .../build/contracts/test/ERC20Interface.json | 5562 ++--- .../build/contracts/test/EmptyToken.json | 5463 ++--- .../build/contracts/test/Owned.json | 5566 ++--- .../build/contracts/test/SafeMath.json | 5566 ++--- .../build/contracts/test/TestToken.json | 5575 ++--- 34 files changed, 63242 insertions(+), 46862 deletions(-) create mode 100644 safe-contracts/build/contracts/BaseSafe.json delete mode 100644 safe-contracts/build/contracts/GnosisSafePersonalEdition.json delete mode 100644 safe-contracts/build/contracts/GnosisSafeTeamEdition.json create mode 100644 safe-contracts/build/contracts/ISignatureValidator.json create mode 100644 safe-contracts/build/contracts/MockContract.json rename safe-contracts/build/contracts/{SignatureValidator.json => SignatureDecoder.json} (76%) create mode 100644 safe-contracts/build/contracts/Token.json diff --git a/safe-contracts/build/contracts/BaseSafe.json b/safe-contracts/build/contracts/BaseSafe.json new file mode 100644 index 00000000..2b305af9 --- /dev/null +++ b/safe-contracts/build/contracts/BaseSafe.json @@ -0,0 +1,1149 @@ +{ + "contractName": "BaseSafe", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "_threshold", + "type": "uint256" + } + ], + "name": "addOwnerWithThreshold", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "isOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "operation", + "type": "uint8" + } + ], + "name": "execTransactionFromModule", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "module", + "type": "address" + } + ], + "name": "enableModule", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_threshold", + "type": "uint256" + } + ], + "name": "changeThreshold", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "SENTINEL_MODULES", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "SENTINEL_OWNERS", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getOwners", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getModules", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "prevModule", + "type": "address" + }, + { + "name": "module", + "type": "address" + } + ], + "name": "disableModule", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "prevOwner", + "type": "address" + }, + { + "name": "oldOwner", + "type": "address" + }, + { + "name": "newOwner", + "type": "address" + } + ], + "name": "swapOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getThreshold", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "prevOwner", + "type": "address" + }, + { + "name": "owner", + "type": "address" + }, + { + "name": "_threshold", + "type": "uint256" + } + ], + "name": "removeOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "owner", + "type": "address" + } + ], + "name": "AddedOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "owner", + "type": "address" + } + ], + "name": "RemovedOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "threshold", + "type": "uint256" + } + ], + "name": "ChangedThreshold", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "module", + "type": "address" + } + ], + "name": "EnabledModule", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "module", + "type": "address" + } + ], + "name": "DisabledModule", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "newContract", + "type": "address" + } + ], + "name": "ContractCreation", + "type": "event" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506128c9806100206000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100c75780632f54bf6e14610114578063468721a71461016f578063610b592514610227578063694e80c31461026a57806385e332cd146102975780638cff6355146102ee578063a0e67e2b14610345578063b2494df3146103b1578063e009cfde1461041d578063e318b52b14610480578063e75235b814610503578063f8dc5dd91461052e575b005b3480156100d357600080fd5b50610112600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061059b565b005b34801561012057600080fd5b50610155600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a04565b604051808215151515815260200191505060405180910390f35b34801561017b57600080fd5b5061020d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561023357600080fd5b50610268600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb1565b005b34801561027657600080fd5b5061029560048036038101908080359060200190929190505050610fee565b005b3480156102a357600080fd5b506102ac611239565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102fa57600080fd5b5061030361123e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035157600080fd5b5061035a611243565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561039d578082015181840152602081019050610382565b505050509050019250505060405180910390f35b3480156103bd57600080fd5b506103c66113de565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104095780820151818401526020810190506103ee565b505050509050019250505060405180910390f35b34801561042957600080fd5b5061047e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611681565b005b34801561048c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af9565b005b34801561050f57600080fd5b5061051861220c565b6040518082815260200191505060405180910390f35b34801561053a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612216565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156106b85750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600354141515610a00576109ff81610fee565b5b5050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610b9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610ba7858585855a61275e565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610cce5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002548111151515611157576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600181101515156111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806003819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936003546040518082815260200191505060405180910390a150565b600181565b600181565b60608060008060025460405190808252806020026020018201604052801561127a5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156113d55780838381518110151561132a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506112e5565b82935050505090565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156114f0576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061144c565b8260405190808252806020026020018201604052801561151f5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611678578181848151811015156115ce57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611589565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561174a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561179e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611c165750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611c8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611dcb5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611e3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611f67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016002540310151515612382576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156123d65750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561244a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612572576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806003541415156127595761275881610fee565b5b505050565b6000806000600281111561276e57fe5b84600281111561277a57fe5b14156127935761278c8787878661285b565b9150612851565b600160028111156127a057fe5b8460028111156127ac57fe5b14156127c4576127bd878685612874565b9150612850565b6127cd8561288b565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820a8a2b520d7d496943dca4ccdd5d3bd3b7788132d42c3118aa0577fe7365e28210029", + "deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100c75780632f54bf6e14610114578063468721a71461016f578063610b592514610227578063694e80c31461026a57806385e332cd146102975780638cff6355146102ee578063a0e67e2b14610345578063b2494df3146103b1578063e009cfde1461041d578063e318b52b14610480578063e75235b814610503578063f8dc5dd91461052e575b005b3480156100d357600080fd5b50610112600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061059b565b005b34801561012057600080fd5b50610155600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a04565b604051808215151515815260200191505060405180910390f35b34801561017b57600080fd5b5061020d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561023357600080fd5b50610268600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb1565b005b34801561027657600080fd5b5061029560048036038101908080359060200190929190505050610fee565b005b3480156102a357600080fd5b506102ac611239565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102fa57600080fd5b5061030361123e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035157600080fd5b5061035a611243565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561039d578082015181840152602081019050610382565b505050509050019250505060405180910390f35b3480156103bd57600080fd5b506103c66113de565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104095780820151818401526020810190506103ee565b505050509050019250505060405180910390f35b34801561042957600080fd5b5061047e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611681565b005b34801561048c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af9565b005b34801561050f57600080fd5b5061051861220c565b6040518082815260200191505060405180910390f35b34801561053a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612216565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156106b85750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600354141515610a00576109ff81610fee565b5b5050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610b9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610ba7858585855a61275e565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610cce5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002548111151515611157576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600181101515156111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806003819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936003546040518082815260200191505060405180910390a150565b600181565b600181565b60608060008060025460405190808252806020026020018201604052801561127a5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156113d55780838381518110151561132a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506112e5565b82935050505090565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156114f0576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061144c565b8260405190808252806020026020018201604052801561151f5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611678578181848151811015156115ce57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611589565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561174a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561179e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611c165750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611c8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611dcb5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611e3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611f67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016002540310151515612382576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156123d65750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561244a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612572576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806003541415156127595761275881610fee565b5b505050565b6000806000600281111561276e57fe5b84600281111561277a57fe5b14156127935761278c8787878661285b565b9150612851565b600160028111156127a057fe5b8460028111156127ac57fe5b14156127c4576127bd878685612874565b9150612850565b6127cd8561288b565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820a8a2b520d7d496943dca4ccdd5d3bd3b7788132d42c3118aa0577fe7365e28210029", + "sourceMap": "371:680:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:680:2;;;;;;;", + "deployedSourceMap": "371:680:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2225:627:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5925:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5925:129:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:429:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2785:429:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:495;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:495:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:441:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5357:441:6;;;;;;;;;;;;;;;;;;;;;;;;;;488:55:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;419:54:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;419:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;6136:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6136:458:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6136:458:6;;;;;;;;;;;;;;;;;3293:738:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3293:738:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3293:738:5;;;;;;;;;;;;;;;;;1938:511;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1938:511:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4345:823:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4345:823:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5804:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5804:115:6;;;;;;;;;;;;;;;;;;;;;;;3194:817;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3194:817:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2397:1:6;2388:5;:10;;;;:38;;;;;469:3;2402:24;;:5;:24;;;;2388:38;2380:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:1;2519:6;:13;2526:5;2519:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2511:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2595:6;:23;469:3;2595:23;;;;;;;;;;;;;;;;;;;;;;;;;2579:6;:13;2586:5;2579:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2654:5;2628:6;:23;469:3;2628:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2669:10;;:12;;;;;;;;;;;;;2696:17;2707:5;2696:17;;;;;;;;;;;;;;;;;;;;;;2794:10;2781:9;;:23;;2777:68;;;2818:27;2834:10;2818:15;:27::i;:::-;2777:68;2225:627;;:::o;5925:129::-;6002:4;6046:1;6029:6;:13;6036:5;6029:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;6022:25;;5925:129;;;:::o;2785:429:5:-;2917:12;3025:1;3002:7;:19;3010:10;3002:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2994:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3161:46;3169:2;3173:5;3180:4;3186:9;3197;3161:7;:46::i;:::-;3151:56;;2785:429;;;;;;:::o;1182:495::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:5;1337:6;1329:20;;;;:59;;;;;539:3;1353:35;;1361:6;1353:35;;;;1329:59;1321:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:1;1483:7;:15;1491:6;1483:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1475:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1565:7;:25;539:3;1565:25;;;;;;;;;;;;;;;;;;;;;;;;;1547:7;:15;1555:6;1547:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1628:6;1600:7;:25;539:3;1600:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1649:21;1663:6;1649:21;;;;;;;;;;;;;;;;;;;;;;1182:495;:::o;5357:441:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:10:6;;5527;:24;;5519:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5675:1;5661:10;:15;;5653:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5739:10;5727:9;:22;;;;5764:27;5781:9;;5764:27;;;;;;;;;;;;;;;;;;5357:441;:::o;488:55:5:-;539:3;488:55;:::o;419:54:6:-;469:3;419:54;:::o;6136:458::-;6202:9;6227:22;6321:13;6348:20;6266:10;;6252:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6252:25:6;;;;6227:50;;6337:1;6321:17;;6371:6;:23;469:3;6371:23;;;;;;;;;;;;;;;;;;;;;;;;;6348:46;;6404:162;469:3;6410:31;;:12;:31;;;;6404:162;;;6472:12;6457:5;6463;6457:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6513:6;:20;6520:12;6513:20;;;;;;;;;;;;;;;;;;;;;;;;;6498:35;;6547:8;;;;;;;6404:162;;;6582:5;6575:12;;6136:458;;;;:::o;3293:738:5:-;3360:9;3419:19;3452:21;3652:22;3441:1;3419:23;;3476:7;:25;539:3;3476:25;;;;;;;;;;;;;;;;;;;;;;;;;3452:49;;3511:132;539:3;3517:33;;:13;:33;;;;3511:132;;;3582:7;:22;3590:13;3582:22;;;;;;;;;;;;;;;;;;;;;;;;;3566:38;;3618:14;;;;;;;3511:132;;;3691:11;3677:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3677:26:5;;;;3652:51;;3761:1;3747:15;;3788:7;:25;539:3;3788:25;;;;;;;;;;;;;;;;;;;;;;;;;3772:41;;3823:180;539:3;3829:33;;:13;:33;;;;3823:180;;;3899:13;3878:5;3884:11;3878:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3942:7;:22;3950:13;3942:22;;;;;;;;;;;;;;;;;;;;;;;;;3926:38;;3978:14;;;;;;;3823:180;;;4019:5;4012:12;;3293:738;;;;:::o;1938:511::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2152:1:5;2141:6;2133:20;;;;:59;;;;;539:3;2157:35;;2165:6;2157:35;;;;2133:59;2125:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:6;2246:38;;:7;:19;2254:10;2246:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2238:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2361:7;:15;2369:6;2361:15;;;;;;;;;;;;;;;;;;;;;;;;;2339:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2404:1;2386:7;:15;2394:6;2386:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2420:22;2435:6;2420:22;;;;;;;;;;;;;;;;;;;;;;1938:511;;:::o;4345:823:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4528:1:6;4516:8;:13;;;;:44;;;;;469:3;4533:27;;:8;:27;;;;4516:44;4508:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4673:1;4653:6;:16;4660:8;4653:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4645:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4819:1;4807:8;:13;;;;:44;;;;;469:3;4824:27;;:8;:27;;;;4807:44;4799:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4925:8;4904:29;;:6;:17;4911:9;4904:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4896:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5005:6;:16;5012:8;5005:16;;;;;;;;;;;;;;;;;;;;;;;;;4986:6;:16;4993:8;4986:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;5051:8;5031:6;:17;5038:9;5031:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;5088:1;5069:6;:16;5076:8;5069:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;5104:22;5117:8;5104:22;;;;;;;;;;;;;;;;;;;;;;5141:20;5152:8;5141:20;;;;;;;;;;;;;;;;;;;;;;4345:823;;;:::o;5804:115::-;5873:7;5903:9;;5896:16;;5804:115;:::o;3194:817::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:10:6;3415:1;3402:10;;:14;:28;;3394:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3595:1;3586:5;:10;;;;:38;;;;;469:3;3600:24;;:5;:24;;;;3586:38;3578:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3698:5;3677:26;;:6;:17;3684:9;3677:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3669:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3776:6;:13;3783:5;3776:13;;;;;;;;;;;;;;;;;;;;;;;;;3756:6;:17;3763:9;3756:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3815:1;3799:6;:13;3806:5;3799:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3826:10;;:12;;;;;;;;;;;;;;3853:19;3866:5;3853:19;;;;;;;;;;;;;;;;;;;;;;3953:10;3940:9;;:23;;3936:68;;;3977:27;3993:10;3977:15;:27::i;:::-;3936:68;3194:817;;;:::o;313:548:3:-;444:12;715:19;489;476:32;;;;;;;;:9;:32;;;;;;;;;472:383;;;532:35;544:2;548:5;555:4;561:5;532:11;:35::i;:::-;522:45;;472:383;;;599:27;586:40;;;;;;;;:9;:40;;;;;;;;;582:273;;;650:36;670:2;674:4;680:5;650:19;:36::i;:::-;640:46;;582:273;;;737:19;751:4;737:13;:19::i;:::-;715:41;;795:1;780:11;:16;;;;770:26;;815:29;832:11;815:29;;;;;;;;;;;;;;;;;;;;;;582:273;472:383;313:548;;;;;;;;:::o;867:309::-;976:12;1158:1;1155;1148:4;1142:11;1135:4;1129;1125:15;1118:5;1114:2;1107:5;1102:58;1091:69;;1077:93;;;;;;:::o;1182:303::-;1284:12;1467:1;1464;1457:4;1451:11;1444:4;1438;1434:15;1430:2;1423:5;1410:59;1399:70;;1385:94;;;;;:::o;1491:261::-;1560:19;1730:4;1724:11;1717:4;1711;1707:15;1704:1;1697:39;1682:54;;1668:78;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./Module.sol\";\nimport \"./ModuleManager.sol\";\nimport \"./OwnerManager.sol\";\n\n\n/// @title Base Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract BaseSafe is ModuleManager, OwnerManager {\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n /// @param to Contract address for optional delegate call.\n /// @param data Data payload for optional delegate call.\n function setupSafe(address[] _owners, uint256 _threshold, address to, bytes data)\n internal\n {\n setupOwners(_owners, _threshold);\n // As setupOwners can only be called if the contract has not been initialized we don't need a check for setupModules\n setupModules(to, data);\n }\n}\n", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", + "ast": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", + "exportedSymbols": { + "BaseSafe": [ + 782 + ] + }, + "id": 783, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 751, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:2" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "file": "./Module.sol", + "id": 752, + "nodeType": "ImportDirective", + "scope": 783, + "sourceUnit": 936, + "src": "24:22:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "file": "./ModuleManager.sol", + "id": 753, + "nodeType": "ImportDirective", + "scope": 783, + "sourceUnit": 1213, + "src": "47:29:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "file": "./OwnerManager.sol", + "id": 754, + "nodeType": "ImportDirective", + "scope": 783, + "sourceUnit": 1653, + "src": "77:28:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 755, + "name": "ModuleManager", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1212, + "src": "392:13:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeString": "contract ModuleManager" + } + }, + "id": 756, + "nodeType": "InheritanceSpecifier", + "src": "392:13:2" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 757, + "name": "OwnerManager", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1652, + "src": "407:12:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_OwnerManager_$1652", + "typeString": "contract OwnerManager" + } + }, + "id": 758, + "nodeType": "InheritanceSpecifier", + "src": "407:12:2" + } + ], + "contractDependencies": [ + 892, + 1212, + 1652, + 1666, + 1735 + ], + "contractKind": "contract", + "documentation": "@title Base Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n @author Stefan George - \n @author Richard Meissner - ", + "fullyImplemented": true, + "id": 782, + "linearizedBaseContracts": [ + 782, + 1652, + 1212, + 892, + 1666, + 1735 + ], + "name": "BaseSafe", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 780, + "nodeType": "Block", + "src": "843:206:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 771, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 761, + "src": "865:7:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 772, + "name": "_threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "874:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 770, + "name": "setupOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1341, + "src": "853:11:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (address[] memory,uint256)" + } + }, + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "853:32:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 774, + "nodeType": "ExpressionStatement", + "src": "853:32:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 776, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 765, + "src": "1033:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 777, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "1037:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 775, + "name": "setupModules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 999, + "src": "1020:12:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,bytes memory)" + } + }, + "id": 778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1020:22:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 779, + "nodeType": "ExpressionStatement", + "src": "1020:22:2" + } + ] + }, + "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.", + "id": 781, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setupSafe", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 768, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 761, + "name": "_owners", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "759:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 759, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "759:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 760, + "length": null, + "nodeType": "ArrayTypeName", + "src": "759:9:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 763, + "name": "_threshold", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "778:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 762, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "778:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 765, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "798:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 764, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "798:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 767, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "810:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 766, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "810:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "758:63:2" + }, + "payable": false, + "returnParameters": { + "id": 769, + "nodeType": "ParameterList", + "parameters": [], + "src": "843:0:2" + }, + "scope": 782, + "src": "740:309:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 783, + "src": "371:680:2" + } + ], + "src": "0:1052:2" + }, + "legacyAST": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", + "exportedSymbols": { + "BaseSafe": [ + 782 + ] + }, + "id": 783, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 751, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:2" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "file": "./Module.sol", + "id": 752, + "nodeType": "ImportDirective", + "scope": 783, + "sourceUnit": 936, + "src": "24:22:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "file": "./ModuleManager.sol", + "id": 753, + "nodeType": "ImportDirective", + "scope": 783, + "sourceUnit": 1213, + "src": "47:29:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "file": "./OwnerManager.sol", + "id": 754, + "nodeType": "ImportDirective", + "scope": 783, + "sourceUnit": 1653, + "src": "77:28:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 755, + "name": "ModuleManager", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1212, + "src": "392:13:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ModuleManager_$1212", + "typeString": "contract ModuleManager" + } + }, + "id": 756, + "nodeType": "InheritanceSpecifier", + "src": "392:13:2" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 757, + "name": "OwnerManager", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1652, + "src": "407:12:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_OwnerManager_$1652", + "typeString": "contract OwnerManager" + } + }, + "id": 758, + "nodeType": "InheritanceSpecifier", + "src": "407:12:2" + } + ], + "contractDependencies": [ + 892, + 1212, + 1652, + 1666, + 1735 + ], + "contractKind": "contract", + "documentation": "@title Base Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n @author Stefan George - \n @author Richard Meissner - ", + "fullyImplemented": true, + "id": 782, + "linearizedBaseContracts": [ + 782, + 1652, + 1212, + 892, + 1666, + 1735 + ], + "name": "BaseSafe", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 780, + "nodeType": "Block", + "src": "843:206:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 771, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 761, + "src": "865:7:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 772, + "name": "_threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "874:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 770, + "name": "setupOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1341, + "src": "853:11:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (address[] memory,uint256)" + } + }, + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "853:32:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 774, + "nodeType": "ExpressionStatement", + "src": "853:32:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 776, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 765, + "src": "1033:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 777, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "1037:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 775, + "name": "setupModules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 999, + "src": "1020:12:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,bytes memory)" + } + }, + "id": 778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1020:22:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 779, + "nodeType": "ExpressionStatement", + "src": "1020:22:2" + } + ] + }, + "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.", + "id": 781, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setupSafe", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 768, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 761, + "name": "_owners", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "759:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 759, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "759:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 760, + "length": null, + "nodeType": "ArrayTypeName", + "src": "759:9:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 763, + "name": "_threshold", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "778:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 762, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "778:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 765, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "798:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 764, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "798:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 767, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "810:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 766, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "810:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "758:63:2" + }, + "payable": false, + "returnParameters": { + "id": 769, + "nodeType": "ParameterList", + "parameters": [], + "src": "843:0:2" + }, + "scope": 782, + "src": "740:309:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 783, + "src": "371:680:2" + } + ], + "src": "0:1052:2" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-09-26T08:32:07.631Z" +} \ No newline at end of file diff --git a/safe-contracts/build/contracts/CreateAndAddModules.json b/safe-contracts/build/contracts/CreateAndAddModules.json index eb31b029..797762e2 100644 --- a/safe-contracts/build/contracts/CreateAndAddModules.json +++ b/safe-contracts/build/contracts/CreateAndAddModules.json @@ -34,40 +34,40 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610275806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360df7f5814610051578063610b5925146100da575b600080fd5b34801561005d57600080fd5b506100d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061011d565b005b3480156100e657600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610244565b005b600080600083519250600090505b8281101561023d5780840160200151818501604001604051600060208285858c5af4141561015857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080601f85010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b5050505061012b565b5050505050565b600080fd00a165627a7a723058207c5f557823bcf2be1858240c0c1037c633c0f0159752cd4b58f9f35c29ad604c0029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360df7f5814610051578063610b5925146100da575b600080fd5b34801561005d57600080fd5b506100d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061011d565b005b3480156100e657600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610244565b005b600080600083519250600090505b8281101561023d5780840160200151818501604001604051600060208285858c5af4141561015857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080601f85010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b5050505061012b565b5050505050565b600080fd00a165627a7a723058207c5f557823bcf2be1858240c0c1037c633c0f0159752cd4b58f9f35c29ad604c0029", - "sourceMap": "245:1457:18:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;245:1457:18;;;;;;;", - "deployedSourceMap": "245:1457:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;815:885;;8:9:-1;5:2;;;30:1;27;20:12;5:2;815:885:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;405:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;405:81:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;815:885;907:14;945:13;968:9;924:4;:11;907:28;;980:1;968:13;;991:703;1002:6;998:1;:10;991:703;;;1170:1;1164:4;1160:12;1154:4;1150:23;1144:30;1230:1;1224:4;1220:12;1214:4;1210:23;1271:4;1265:11;1378:1;1371:4;1363:6;1344:17;1331:11;1317:12;1312:3;1299:77;1296:84;1293:2;;;1393:1;1390;1383:12;1293:2;1443:42;1434:6;1428:13;1424:62;1414:72;;1624:4;1617;1610;1591:17;1587:28;1583:39;1579:50;1573:4;1569:61;1566:1;1562:69;1557:74;;1101:544;;;1658:4;:17;;;1676:6;1658:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1658:25:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1658:25:18;;;;991:703;;;815:885;;;;;:::o;405:81::-;471:8;;", - "source": "pragma solidity 0.4.24;\nimport \"../Module.sol\";\n\n\n/// @title Create and Add Modules - Allows to create and add multiple module in one transaction.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract CreateAndAddModules {\n\n /// @dev Function required to compile contract. Gnosis Safe function is called instead.\n /// @param module Not used.\n function enableModule(Module module)\n public\n {\n revert();\n }\n\n /// @dev Allows to create and add multiple module in one transaction.\n /// @param proxyFactory Module proxy factory contract.\n /// @param data Modules constructor payload. This is the data for each proxy factory call concatinated. (e.g. )\n function createAndAddModules(address proxyFactory, bytes data)\n public\n {\n uint256 length = data.length;\n Module module;\n uint256 i = 0;\n while (i < length) {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let createBytesLength := mload(add(0x20, add(data, i)))\n let createBytes := add(0x40, add(data, i))\n\n let output := mload(0x40)\n if eq(delegatecall(gas, proxyFactory, createBytes, createBytesLength, output, 0x20), 0) { revert(0, 0) }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Data is always padded to 32 bytes\n i := add(i, add(0x20, mul(div(add(createBytesLength, 0x1f), 0x20), 0x20)))\n }\n this.enableModule(module);\n }\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50610275806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360df7f5814610051578063610b5925146100da575b600080fd5b34801561005d57600080fd5b506100d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061011d565b005b3480156100e657600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610244565b005b600080600083519250600090505b8281101561023d5780840160200151818501604001604051600060208285858c5af4141561015857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080601f85010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b5050505061012b565b5050505050565b600080fd00a165627a7a72305820032b000033bdda6b988b435c96d1decf8e2f8e4da1b3a0b75e82e9e49c9c8dd10029", + "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360df7f5814610051578063610b5925146100da575b600080fd5b34801561005d57600080fd5b506100d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061011d565b005b3480156100e657600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610244565b005b600080600083519250600090505b8281101561023d5780840160200151818501604001604051600060208285858c5af4141561015857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080601f85010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b5050505061012b565b5050505050565b600080fd00a165627a7a72305820032b000033bdda6b988b435c96d1decf8e2f8e4da1b3a0b75e82e9e49c9c8dd10029", + "sourceMap": "250:1457:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;250:1457:14;;;;;;;", + "deployedSourceMap": "250:1457:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:885;;8:9:-1;5:2;;;30:1;27;20:12;5:2;820:885:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;410:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;410:81:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:885;912:14;950:13;973:9;929:4;:11;912:28;;985:1;973:13;;996:703;1007:6;1003:1;:10;996:703;;;1175:1;1169:4;1165:12;1159:4;1155:23;1149:30;1235:1;1229:4;1225:12;1219:4;1215:23;1276:4;1270:11;1383:1;1376:4;1368:6;1349:17;1336:11;1322:12;1317:3;1304:77;1301:84;1298:2;;;1398:1;1395;1388:12;1298:2;1448:42;1439:6;1433:13;1429:62;1419:72;;1629:4;1622;1615;1596:17;1592:28;1588:39;1584:50;1578:4;1574:61;1571:1;1567:69;1562:74;;1106:544;;;1663:4;:17;;;1681:6;1663:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1663:25:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1663:25:14;;;;996:703;;;820:885;;;;;:::o;410:81::-;476:8;;", + "source": "pragma solidity 0.4.24;\nimport \"../base/Module.sol\";\n\n\n/// @title Create and Add Modules - Allows to create and add multiple module in one transaction.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract CreateAndAddModules {\n\n /// @dev Function required to compile contract. Gnosis Safe function is called instead.\n /// @param module Not used.\n function enableModule(Module module)\n public\n {\n revert();\n }\n\n /// @dev Allows to create and add multiple module in one transaction.\n /// @param proxyFactory Module proxy factory contract.\n /// @param data Modules constructor payload. This is the data for each proxy factory call concatinated. (e.g. )\n function createAndAddModules(address proxyFactory, bytes data)\n public\n {\n uint256 length = data.length;\n Module module;\n uint256 i = 0;\n while (i < length) {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let createBytesLength := mload(add(0x20, add(data, i)))\n let createBytes := add(0x40, add(data, i))\n\n let output := mload(0x40)\n if eq(delegatecall(gas, proxyFactory, createBytes, createBytesLength, output, 0x20), 0) { revert(0, 0) }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Data is always padded to 32 bytes\n i := add(i, add(0x20, mul(div(add(createBytesLength, 0x1f), 0x20), 0x20)))\n }\n this.enableModule(module);\n }\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", "exportedSymbols": { "CreateAndAddModules": [ - 1866 + 1848 ] }, - "id": 1867, + "id": 1849, "nodeType": "SourceUnit", "nodes": [ { - "id": 1823, + "id": 1805, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:18" + "src": "0:23:14" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", - "file": "../Module.sol", - "id": 1824, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "file": "../base/Module.sol", + "id": 1806, "nodeType": "ImportDirective", - "scope": 1867, - "sourceUnit": 914, - "src": "24:23:18", + "scope": 1849, + "sourceUnit": 936, + "src": "24:28:14", "symbolAliases": [], "unitAlias": "" }, @@ -77,18 +77,18 @@ "contractKind": "contract", "documentation": "@title Create and Add Modules - Allows to create and add multiple module in one transaction.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1866, + "id": 1848, "linearizedBaseContracts": [ - 1866 + 1848 ], "name": "CreateAndAddModules", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1832, + "id": 1814, "nodeType": "Block", - "src": "461:25:18", + "src": "466:25:14", "statements": [ { "expression": { @@ -96,21 +96,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1829, + "id": 1811, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 3833, - 3834 + 4496, + 4497 ], - "referencedDeclaration": 3833, - "src": "471:6:18", + "referencedDeclaration": 4496, + "src": "476:6:14", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1830, + "id": 1812, "isConstant": false, "isLValue": false, "isPure": false, @@ -118,20 +118,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "471:8:18", + "src": "476:8:14", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1831, + "id": 1813, "nodeType": "ExpressionStatement", - "src": "471:8:18" + "src": "476:8:14" } ] }, "documentation": "@dev Function required to compile contract. Gnosis Safe function is called instead.\n @param module Not used.", - "id": 1833, + "id": 1815, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -139,31 +139,31 @@ "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1827, + "id": 1809, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1826, + "id": 1808, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1833, - "src": "427:13:18", + "scope": 1815, + "src": "432:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1825, + "id": 1807, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "427:6:18", + "referencedDeclaration": 935, + "src": "432:6:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -171,39 +171,39 @@ "visibility": "internal" } ], - "src": "426:15:18" + "src": "431:15:14" }, "payable": false, "returnParameters": { - "id": 1828, + "id": 1810, "nodeType": "ParameterList", "parameters": [], - "src": "461:0:18" + "src": "466:0:14" }, - "scope": 1866, - "src": "405:81:18", + "scope": 1848, + "src": "410:81:14", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1864, + "id": 1846, "nodeType": "Block", - "src": "897:803:18", + "src": "902:803:14", "statements": [ { "assignments": [ - 1841 + 1823 ], "declarations": [ { "constant": false, - "id": 1841, + "id": 1823, "name": "length", "nodeType": "VariableDeclaration", - "scope": 1865, - "src": "907:14:18", + "scope": 1847, + "src": "912:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -211,10 +211,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1840, + "id": 1822, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "907:7:18", + "src": "912:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -224,23 +224,23 @@ "visibility": "internal" } ], - "id": 1844, + "id": 1826, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1842, + "id": 1824, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1837, - "src": "924:4:18", + "referencedDeclaration": 1819, + "src": "929:4:14", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1843, + "id": 1825, "isConstant": false, "isLValue": false, "isPure": false, @@ -248,40 +248,40 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "924:11:18", + "src": "929:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "907:28:18" + "src": "912:28:14" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 1846, + "id": 1828, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1865, - "src": "945:13:18", + "scope": 1847, + "src": "950:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1845, + "id": 1827, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "945:6:18", + "referencedDeclaration": 935, + "src": "950:6:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -289,23 +289,23 @@ "visibility": "internal" } ], - "id": 1847, + "id": 1829, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "945:13:18" + "src": "950:13:14" }, { "assignments": [ - 1849 + 1831 ], "declarations": [ { "constant": false, - "id": 1849, + "id": 1831, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1865, - "src": "968:9:18", + "scope": 1847, + "src": "973:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -313,10 +313,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1848, + "id": 1830, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "968:7:18", + "src": "973:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -326,18 +326,18 @@ "visibility": "internal" } ], - "id": 1851, + "id": 1833, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1850, + "id": 1832, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "980:1:18", + "src": "985:1:14", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -346,93 +346,93 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "968:13:18" + "src": "973:13:14" }, { "body": { - "id": 1862, + "id": 1844, "nodeType": "Block", - "src": "1010:684:18", + "src": "1015:684:14", "statements": [ { "externalReferences": [ { "module": { - "declaration": 1846, + "declaration": 1828, "isOffset": false, "isSlot": false, - "src": "1414:6:18", + "src": "1419:6:14", "valueSize": 1 } }, { "data": { - "declaration": 1837, + "declaration": 1819, "isOffset": false, "isSlot": false, - "src": "1164:4:18", + "src": "1169:4:14", "valueSize": 1 } }, { "i": { - "declaration": 1849, + "declaration": 1831, "isOffset": false, "isSlot": false, - "src": "1170:1:18", + "src": "1175:1:14", "valueSize": 1 } }, { "data": { - "declaration": 1837, + "declaration": 1819, "isOffset": false, "isSlot": false, - "src": "1224:4:18", + "src": "1229:4:14", "valueSize": 1 } }, { "i": { - "declaration": 1849, + "declaration": 1831, "isOffset": false, "isSlot": false, - "src": "1230:1:18", + "src": "1235:1:14", "valueSize": 1 } }, { "i": { - "declaration": 1849, + "declaration": 1831, "isOffset": false, "isSlot": false, - "src": "1557:1:18", + "src": "1562:1:14", "valueSize": 1 } }, { "proxyFactory": { - "declaration": 1835, + "declaration": 1817, "isOffset": false, "isSlot": false, - "src": "1317:12:18", + "src": "1322:12:14", "valueSize": 1 } }, { "i": { - "declaration": 1849, + "declaration": 1831, "isOffset": false, "isSlot": false, - "src": "1566:1:18", + "src": "1571:1:14", "valueSize": 1 } } ], - "id": 1855, + "id": 1837, "nodeType": "InlineAssembly", "operations": "{\n let createBytesLength := mload(add(0x20, add(data, i)))\n let createBytes := add(0x40, add(data, i))\n let output := mload(0x40)\n if eq(delegatecall(gas(), proxyFactory, createBytes, createBytesLength, output, 0x20), 0)\n {\n revert(0, 0)\n }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n i := add(i, add(0x20, mul(div(add(createBytesLength, 0x1f), 0x20), 0x20)))\n}", - "src": "1092:570:18" + "src": "1097:570:14" }, { "expression": { @@ -440,14 +440,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1859, + "id": 1841, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1846, - "src": "1676:6:18", + "referencedDeclaration": 1828, + "src": "1681:6:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } } @@ -455,38 +455,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } ], "expression": { "argumentTypes": null, - "id": 1856, + "id": 1838, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3877, - "src": "1658:4:18", + "referencedDeclaration": 4532, + "src": "1663:4:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_CreateAndAddModules_$1866", + "typeIdentifier": "t_contract$_CreateAndAddModules_$1848", "typeString": "contract CreateAndAddModules" } }, - "id": 1858, + "id": 1840, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "enableModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1833, - "src": "1658:17:18", + "referencedDeclaration": 1815, + "src": "1663:17:14", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$913_$returns$__$", + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$935_$returns$__$", "typeString": "function (contract Module) external" } }, - "id": 1860, + "id": 1842, "isConstant": false, "isLValue": false, "isPure": false, @@ -494,15 +494,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1658:25:18", + "src": "1663:25:14", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1861, + "id": 1843, "nodeType": "ExpressionStatement", - "src": "1658:25:18" + "src": "1663:25:14" } ] }, @@ -512,19 +512,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1854, + "id": 1836, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1852, + "id": 1834, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1849, - "src": "998:1:18", + "referencedDeclaration": 1831, + "src": "1003:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -534,31 +534,31 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 1853, + "id": 1835, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1841, - "src": "1002:6:18", + "referencedDeclaration": 1823, + "src": "1007:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:18", + "src": "1003:10:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1863, + "id": 1845, "nodeType": "WhileStatement", - "src": "991:703:18" + "src": "996:703:14" } ] }, "documentation": "@dev Allows to create and add multiple module in one transaction.\n @param proxyFactory Module proxy factory contract.\n @param data Modules constructor payload. This is the data for each proxy factory call concatinated. (e.g. )", - "id": 1865, + "id": 1847, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -566,16 +566,16 @@ "name": "createAndAddModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 1838, + "id": 1820, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1835, + "id": 1817, "name": "proxyFactory", "nodeType": "VariableDeclaration", - "scope": 1865, - "src": "844:20:18", + "scope": 1847, + "src": "849:20:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -583,10 +583,10 @@ "typeString": "address" }, "typeName": { - "id": 1834, + "id": 1816, "name": "address", "nodeType": "ElementaryTypeName", - "src": "844:7:18", + "src": "849:7:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -597,11 +597,11 @@ }, { "constant": false, - "id": 1837, + "id": 1819, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1865, - "src": "866:10:18", + "scope": 1847, + "src": "871:10:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -609,10 +609,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1836, + "id": 1818, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "866:5:18", + "src": "871:5:14", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -622,56 +622,56 @@ "visibility": "internal" } ], - "src": "843:34:18" + "src": "848:34:14" }, "payable": false, "returnParameters": { - "id": 1839, + "id": 1821, "nodeType": "ParameterList", "parameters": [], - "src": "897:0:18" + "src": "902:0:14" }, - "scope": 1866, - "src": "815:885:18", + "scope": 1848, + "src": "820:885:14", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1867, - "src": "245:1457:18" + "scope": 1849, + "src": "250:1457:14" } ], - "src": "0:1703:18" + "src": "0:1708:14" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", "exportedSymbols": { "CreateAndAddModules": [ - 1866 + 1848 ] }, - "id": 1867, + "id": 1849, "nodeType": "SourceUnit", "nodes": [ { - "id": 1823, + "id": 1805, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:18" + "src": "0:23:14" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", - "file": "../Module.sol", - "id": 1824, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "file": "../base/Module.sol", + "id": 1806, "nodeType": "ImportDirective", - "scope": 1867, - "sourceUnit": 914, - "src": "24:23:18", + "scope": 1849, + "sourceUnit": 936, + "src": "24:28:14", "symbolAliases": [], "unitAlias": "" }, @@ -681,18 +681,18 @@ "contractKind": "contract", "documentation": "@title Create and Add Modules - Allows to create and add multiple module in one transaction.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1866, + "id": 1848, "linearizedBaseContracts": [ - 1866 + 1848 ], "name": "CreateAndAddModules", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1832, + "id": 1814, "nodeType": "Block", - "src": "461:25:18", + "src": "466:25:14", "statements": [ { "expression": { @@ -700,21 +700,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1829, + "id": 1811, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 3833, - 3834 + 4496, + 4497 ], - "referencedDeclaration": 3833, - "src": "471:6:18", + "referencedDeclaration": 4496, + "src": "476:6:14", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1830, + "id": 1812, "isConstant": false, "isLValue": false, "isPure": false, @@ -722,20 +722,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "471:8:18", + "src": "476:8:14", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1831, + "id": 1813, "nodeType": "ExpressionStatement", - "src": "471:8:18" + "src": "476:8:14" } ] }, "documentation": "@dev Function required to compile contract. Gnosis Safe function is called instead.\n @param module Not used.", - "id": 1833, + "id": 1815, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -743,31 +743,31 @@ "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1827, + "id": 1809, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1826, + "id": 1808, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1833, - "src": "427:13:18", + "scope": 1815, + "src": "432:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1825, + "id": 1807, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "427:6:18", + "referencedDeclaration": 935, + "src": "432:6:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -775,39 +775,39 @@ "visibility": "internal" } ], - "src": "426:15:18" + "src": "431:15:14" }, "payable": false, "returnParameters": { - "id": 1828, + "id": 1810, "nodeType": "ParameterList", "parameters": [], - "src": "461:0:18" + "src": "466:0:14" }, - "scope": 1866, - "src": "405:81:18", + "scope": 1848, + "src": "410:81:14", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1864, + "id": 1846, "nodeType": "Block", - "src": "897:803:18", + "src": "902:803:14", "statements": [ { "assignments": [ - 1841 + 1823 ], "declarations": [ { "constant": false, - "id": 1841, + "id": 1823, "name": "length", "nodeType": "VariableDeclaration", - "scope": 1865, - "src": "907:14:18", + "scope": 1847, + "src": "912:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -815,10 +815,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1840, + "id": 1822, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "907:7:18", + "src": "912:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -828,23 +828,23 @@ "visibility": "internal" } ], - "id": 1844, + "id": 1826, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1842, + "id": 1824, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1837, - "src": "924:4:18", + "referencedDeclaration": 1819, + "src": "929:4:14", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1843, + "id": 1825, "isConstant": false, "isLValue": false, "isPure": false, @@ -852,40 +852,40 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "924:11:18", + "src": "929:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "907:28:18" + "src": "912:28:14" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 1846, + "id": 1828, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1865, - "src": "945:13:18", + "scope": 1847, + "src": "950:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1845, + "id": 1827, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "945:6:18", + "referencedDeclaration": 935, + "src": "950:6:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -893,23 +893,23 @@ "visibility": "internal" } ], - "id": 1847, + "id": 1829, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "945:13:18" + "src": "950:13:14" }, { "assignments": [ - 1849 + 1831 ], "declarations": [ { "constant": false, - "id": 1849, + "id": 1831, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1865, - "src": "968:9:18", + "scope": 1847, + "src": "973:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -917,10 +917,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1848, + "id": 1830, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "968:7:18", + "src": "973:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -930,18 +930,18 @@ "visibility": "internal" } ], - "id": 1851, + "id": 1833, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1850, + "id": 1832, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "980:1:18", + "src": "985:1:14", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -950,93 +950,93 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "968:13:18" + "src": "973:13:14" }, { "body": { - "id": 1862, + "id": 1844, "nodeType": "Block", - "src": "1010:684:18", + "src": "1015:684:14", "statements": [ { "externalReferences": [ { "module": { - "declaration": 1846, + "declaration": 1828, "isOffset": false, "isSlot": false, - "src": "1414:6:18", + "src": "1419:6:14", "valueSize": 1 } }, { "data": { - "declaration": 1837, + "declaration": 1819, "isOffset": false, "isSlot": false, - "src": "1164:4:18", + "src": "1169:4:14", "valueSize": 1 } }, { "i": { - "declaration": 1849, + "declaration": 1831, "isOffset": false, "isSlot": false, - "src": "1170:1:18", + "src": "1175:1:14", "valueSize": 1 } }, { "data": { - "declaration": 1837, + "declaration": 1819, "isOffset": false, "isSlot": false, - "src": "1224:4:18", + "src": "1229:4:14", "valueSize": 1 } }, { "i": { - "declaration": 1849, + "declaration": 1831, "isOffset": false, "isSlot": false, - "src": "1230:1:18", + "src": "1235:1:14", "valueSize": 1 } }, { "i": { - "declaration": 1849, + "declaration": 1831, "isOffset": false, "isSlot": false, - "src": "1557:1:18", + "src": "1562:1:14", "valueSize": 1 } }, { "proxyFactory": { - "declaration": 1835, + "declaration": 1817, "isOffset": false, "isSlot": false, - "src": "1317:12:18", + "src": "1322:12:14", "valueSize": 1 } }, { "i": { - "declaration": 1849, + "declaration": 1831, "isOffset": false, "isSlot": false, - "src": "1566:1:18", + "src": "1571:1:14", "valueSize": 1 } } ], - "id": 1855, + "id": 1837, "nodeType": "InlineAssembly", "operations": "{\n let createBytesLength := mload(add(0x20, add(data, i)))\n let createBytes := add(0x40, add(data, i))\n let output := mload(0x40)\n if eq(delegatecall(gas(), proxyFactory, createBytes, createBytesLength, output, 0x20), 0)\n {\n revert(0, 0)\n }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n i := add(i, add(0x20, mul(div(add(createBytesLength, 0x1f), 0x20), 0x20)))\n}", - "src": "1092:570:18" + "src": "1097:570:14" }, { "expression": { @@ -1044,14 +1044,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1859, + "id": 1841, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1846, - "src": "1676:6:18", + "referencedDeclaration": 1828, + "src": "1681:6:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } } @@ -1059,38 +1059,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } ], "expression": { "argumentTypes": null, - "id": 1856, + "id": 1838, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3877, - "src": "1658:4:18", + "referencedDeclaration": 4532, + "src": "1663:4:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_CreateAndAddModules_$1866", + "typeIdentifier": "t_contract$_CreateAndAddModules_$1848", "typeString": "contract CreateAndAddModules" } }, - "id": 1858, + "id": 1840, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "enableModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1833, - "src": "1658:17:18", + "referencedDeclaration": 1815, + "src": "1663:17:14", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$913_$returns$__$", + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$935_$returns$__$", "typeString": "function (contract Module) external" } }, - "id": 1860, + "id": 1842, "isConstant": false, "isLValue": false, "isPure": false, @@ -1098,15 +1098,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1658:25:18", + "src": "1663:25:14", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1861, + "id": 1843, "nodeType": "ExpressionStatement", - "src": "1658:25:18" + "src": "1663:25:14" } ] }, @@ -1116,19 +1116,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1854, + "id": 1836, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1852, + "id": 1834, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1849, - "src": "998:1:18", + "referencedDeclaration": 1831, + "src": "1003:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1138,31 +1138,31 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 1853, + "id": 1835, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1841, - "src": "1002:6:18", + "referencedDeclaration": 1823, + "src": "1007:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:18", + "src": "1003:10:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1863, + "id": 1845, "nodeType": "WhileStatement", - "src": "991:703:18" + "src": "996:703:14" } ] }, "documentation": "@dev Allows to create and add multiple module in one transaction.\n @param proxyFactory Module proxy factory contract.\n @param data Modules constructor payload. This is the data for each proxy factory call concatinated. (e.g. )", - "id": 1865, + "id": 1847, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1170,16 +1170,16 @@ "name": "createAndAddModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 1838, + "id": 1820, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1835, + "id": 1817, "name": "proxyFactory", "nodeType": "VariableDeclaration", - "scope": 1865, - "src": "844:20:18", + "scope": 1847, + "src": "849:20:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1187,10 +1187,10 @@ "typeString": "address" }, "typeName": { - "id": 1834, + "id": 1816, "name": "address", "nodeType": "ElementaryTypeName", - "src": "844:7:18", + "src": "849:7:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1201,11 +1201,11 @@ }, { "constant": false, - "id": 1837, + "id": 1819, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1865, - "src": "866:10:18", + "scope": 1847, + "src": "871:10:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1213,10 +1213,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1836, + "id": 1818, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "866:5:18", + "src": "871:5:14", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1226,27 +1226,27 @@ "visibility": "internal" } ], - "src": "843:34:18" + "src": "848:34:14" }, "payable": false, "returnParameters": { - "id": 1839, + "id": 1821, "nodeType": "ParameterList", "parameters": [], - "src": "897:0:18" + "src": "902:0:14" }, - "scope": 1866, - "src": "815:885:18", + "scope": 1848, + "src": "820:885:14", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1867, - "src": "245:1457:18" + "scope": 1849, + "src": "250:1457:14" } ], - "src": "0:1703:18" + "src": "0:1708:14" }, "compiler": { "name": "solc", @@ -1256,16 +1256,10 @@ "4": { "events": {}, "links": {}, - "address": "0x8d4852f62df9390e178e4ccc5267f82a4f3aa059", - "transactionHash": "0xd844d56b38ac9f9f6b9e767dbc441bbc3b6b0f4d3109c5428bc63001cbe64c5c" - }, - "1534750848541": { - "events": {}, - "links": {}, - "address": "0x970e8f18ebfea0b08810f33a5a40438b9530fbcf", - "transactionHash": "0x81ed98a58ec6e7d31721cadae9205ef9d68cdb0ccf37e505fbcb154abc170b13" + "address": "0xf0885d3a2d3c2ef4ee7d48d4ded541e58f51c420", + "transactionHash": "0x1c43b98a0e720e12c6c308ae97a249896934ae31f7837adfb0d168504322ba2a" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:50:29.680Z" + "updatedAt": "2018-09-26T08:56:03.702Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/DailyLimitModule.json b/safe-contracts/build/contracts/DailyLimitModule.json index 8980d9b5..a0df0007 100644 --- a/safe-contracts/build/contracts/DailyLimitModule.json +++ b/safe-contracts/build/contracts/DailyLimitModule.json @@ -157,73 +157,73 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061129b806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d00565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee3565b005b3480156102a757600080fd5b506102b0611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340611052565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0611094565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104556110cd565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b810190808051906020019092919050505015156106a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b6000821115156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107b584836111c0565b1515610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff161415610a3c57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095157fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d60208110156109b257600080fd5b81019080805190602001909291905050501515610a37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610cfa565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bbb57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4a57600080fd5b505af1158015610c5e573d6000803e3d6000fd5b505050506040513d6020811015610c7457600080fd5b81019080805190602001909291905050501515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ea0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561106257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611211611052565b11156112325761121f611052565b8160020181905550600081600101819055505b806000015483826001015401111580156112555750806001015483826001015401115b156112635760019150611268565b600091505b50929150505600a165627a7a72305820f90753fa743812a3fd6d848a511f3250f1a33a93051828c9dae3f85725abc1e00029", - "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d00565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee3565b005b3480156102a757600080fd5b506102b0611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340611052565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0611094565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104556110cd565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b810190808051906020019092919050505015156106a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b6000821115156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107b584836111c0565b1515610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff161415610a3c57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095157fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d60208110156109b257600080fd5b81019080805190602001909291905050501515610a37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610cfa565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bbb57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4a57600080fd5b505af1158015610c5e573d6000803e3d6000fd5b505050506040513d6020811015610c7457600080fd5b81019080805190602001909291905050501515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ea0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561106257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611211611052565b11156112325761121f611052565b8160020181905550600081600101819055505b806000015483826001015401111580156112555750806001015483826001015401115b156112635760019150611268565b600091505b50929150505600a165627a7a72305820f90753fa743812a3fd6d848a511f3250f1a33a93051828c9dae3f85725abc1e00029", - "sourceMap": "296:3283:20:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;296:3283:20;;;;;;;", - "deployedSourceMap": "296:3283:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;918:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;918:222:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1890:987:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1890:987:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;1368:158:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1368:158:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;339:50:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;339:50:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3461:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3461:116:20;;;;;;;;;;;;;;;;;;;;;;;513:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;513:50:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;395:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;395:40:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;395:40:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;918:222;1031:9;1004:12;:10;:12::i;:::-;1043:1;1031:13;;1026:107;1050:6;:13;1046:1;:17;1026:107;;;1118:12;1131:1;1118:15;;;;;;;;;;;;;;;;;;1082:11;:22;1094:6;1101:1;1094:9;;;;;;;;;;;;;;;;;;1082:22;;;;;;;;;;;;;;;:33;;:51;;;;1065:3;;;;;;;1026:107;;;918:222;;;:::o;262:28:9:-;;;;;;;;;;;;;:::o;1890:987:20:-;2647:17;2087:7;;;;;;;;;;;2074:29;;;2104:10;2074:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2074:41:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2074:41:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2074:41:20;;;;;;;;;;;;;;;;2066:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2181:1;2175:2;:7;;;;2167:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:1;2232:6;:10;2224:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2352:27;2365:5;2372:6;2352:12;:27::i;:::-;2344:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2455:6;2422:11;:18;2434:5;2422:18;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;2484:1;2475:5;:10;;;2471:400;;;2509:7;;;;;;;;;;;:33;;;2543:2;2547:6;2559:19;2509:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2509:70:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2509:70:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2509:70:20;;;;;;;;;;;;;;;;2501:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:400;;;2720:2;2724:6;2667:64;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2667:64:20;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2667:64:20;2647:84;;2753:7;;;;;;;;;;;:33;;;2787:5;2794:1;2797:4;2803:19;2753:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2753:70:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2753:70:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2753:70:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2753:70:20;;;;;;;;;;;;;;;;2745:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:400;1890:987;;;;:::o;626:248:7:-;359:7:9;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:7;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;1368:158:20:-;359:7:9;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1509:10:20;1477:11;:18;1489:5;1477:18;;;;;;;;;;;;;;;:29;;:42;;;;1368:158;;:::o;339:50::-;;;;;;;;;;;;;;;;;;;;:::o;3461:116::-;3523:4;3563:6;3557:3;:12;;;;;;;;3550:3;:20;3543:27;;3461:116;:::o;513:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;395:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:9:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o;2883:486:20:-;2970:4;2990:29;3022:11;:18;3034:5;3022:18;;;;;;;;;;;;;;;2990:50;;3064:10;:18;;;3054:7;:5;:7::i;:::-;:28;3050:126;;;3119:7;:5;:7::i;:::-;3098:10;:18;;:28;;;;3164:1;3140:10;:21;;:25;;;;3050:126;3223:10;:21;;;3213:6;3189:10;:21;;;:30;:55;;:126;;;;;3294:10;:21;;;3285:6;3261:10;:21;;;:30;:54;3189:126;3185:155;;;3336:4;3329:11;;;;3185:155;3357:5;3350:12;;2883:486;;;;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"../Module.sol\";\nimport \"../ModuleManager.sol\";\nimport \"../OwnerManager.sol\";\nimport \"../Enum.sol\";\n\n\n/// @title Daily Limit Module - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n/// @author Stefan George - \ncontract DailyLimitModule is Module {\n\n string public constant NAME = \"Daily Limit Module\";\n string public constant VERSION = \"0.0.1\";\n\n // dailyLimits mapping maps token address to daily limit settings.\n mapping (address => DailyLimit) public dailyLimits;\n\n struct DailyLimit {\n uint256 dailyLimit;\n uint256 spentToday;\n uint256 lastDay;\n }\n\n /// @dev Setup function sets initial storage of contract.\n /// @param tokens List of token addresses. Ether is represented with address 0x0.\n /// @param _dailyLimits List of daily limits in smalles units (e.g. Wei for Ether).\n function setup(address[] tokens, uint256[] _dailyLimits)\n public\n {\n setManager();\n for (uint256 i = 0; i < tokens.length; i++)\n dailyLimits[tokens[i]].dailyLimit = _dailyLimits[i];\n }\n\n /// @dev Allows to update the daily limit for a specified token. This can only be done via a Safe transaction.\n /// @param token Token contract address.\n /// @param dailyLimit Daily limit in smallest token unit.\n function changeDailyLimit(address token, uint256 dailyLimit)\n public\n authorized\n {\n dailyLimits[token].dailyLimit = dailyLimit;\n }\n\n /// @dev Returns if Safe transaction is a valid daily limit transaction.\n /// @param token Address of the token that should be transfered (0 for Ether)\n /// @param to Address to which the tokens should be transfered\n /// @param amount Amount of tokens (or Ether) that should be transfered\n /// @return Returns if transaction can be executed.\n function executeDailyLimit(address token, address to, uint256 amount)\n public\n {\n // Only Safe owners are allowed to execute daily limit transactions.\n require(OwnerManager(manager).isOwner(msg.sender), \"Method can only be called by an owner\");\n require(to != 0, \"Invalid to address provided\");\n require(amount > 0, \"Invalid amount provided\");\n // Validate that transfer is not exceeding daily limit.\n require(isUnderLimit(token, amount), \"Daily limit has been reached\");\n dailyLimits[token].spentToday += amount;\n if (token == 0) {\n require(manager.execTransactionFromModule(to, amount, \"\", Enum.Operation.Call), \"Could not execute ether transfer\");\n } else {\n bytes memory data = abi.encodeWithSignature(\"transfer(address,uint256)\", to, amount);\n require(manager.execTransactionFromModule(token, 0, data, Enum.Operation.Call), \"Could not execute token transfer\");\n }\n }\n\n function isUnderLimit(address token, uint256 amount)\n internal\n returns (bool)\n {\n DailyLimit storage dailyLimit = dailyLimits[token];\n if (today() > dailyLimit.lastDay) {\n dailyLimit.lastDay = today();\n dailyLimit.spentToday = 0;\n }\n if (dailyLimit.spentToday + amount <= dailyLimit.dailyLimit && \n dailyLimit.spentToday + amount > dailyLimit.spentToday)\n return true;\n return false;\n }\n\n /// @dev Returns last midnight as Unix timestamp.\n /// @return Unix timestamp.\n function today()\n public\n view\n returns (uint)\n {\n return now - (now % 1 days);\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b5061129b806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d00565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee3565b005b3480156102a757600080fd5b506102b0611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340611052565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0611094565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104556110cd565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b810190808051906020019092919050505015156106a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b6000821115156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107b584836111c0565b1515610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff161415610a3c57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095157fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d60208110156109b257600080fd5b81019080805190602001909291905050501515610a37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610cfa565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bbb57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4a57600080fd5b505af1158015610c5e573d6000803e3d6000fd5b505050506040513d6020811015610c7457600080fd5b81019080805190602001909291905050501515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ea0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561106257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611211611052565b11156112325761121f611052565b8160020181905550600081600101819055505b806000015483826001015401111580156112555750806001015483826001015401115b156112635760019150611268565b600091505b50929150505600a165627a7a72305820c9fff2d2f4e7a988305f955b24a67b14ce9f8eb1e561d62a099c2c918f82fd300029", + "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d00565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee3565b005b3480156102a757600080fd5b506102b0611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340611052565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0611094565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104556110cd565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b810190808051906020019092919050505015156106a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b6000821115156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107b584836111c0565b1515610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff161415610a3c57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095157fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d60208110156109b257600080fd5b81019080805190602001909291905050501515610a37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610cfa565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bbb57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4a57600080fd5b505af1158015610c5e573d6000803e3d6000fd5b505050506040513d6020811015610c7457600080fd5b81019080805190602001909291905050501515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ea0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561106257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611211611052565b11156112325761121f611052565b8160020181905550600081600101819055505b806000015483826001015401111580156112555750806001015483826001015401115b156112635760019150611268565b600091505b50929150505600a165627a7a72305820c9fff2d2f4e7a988305f955b24a67b14ce9f8eb1e561d62a099c2c918f82fd300029", + "sourceMap": "318:3283:17:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;318:3283:17;;;;;;;", + "deployedSourceMap": "318:3283:17:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;940:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;940:222:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:28:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;270:28:4;;;;;;;;;;;;;;;;;;;;;;;;;;;1912:987:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1912:987:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1390:158:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1390:158:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;361:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;361:50:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;361:50:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3483:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3483:116:17;;;;;;;;;;;;;;;;;;;;;;;535:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;535:50:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;417:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;417:40:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;417:40:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;940:222;1053:9;1026:12;:10;:12::i;:::-;1065:1;1053:13;;1048:107;1072:6;:13;1068:1;:17;1048:107;;;1140:12;1153:1;1140:15;;;;;;;;;;;;;;;;;;1104:11;:22;1116:6;1123:1;1116:9;;;;;;;;;;;;;;;;;;1104:22;;;;;;;;;;;;;;;:33;;:51;;;;1087:3;;;;;;;1048:107;;;940:222;;;:::o;270:28:4:-;;;;;;;;;;;;;:::o;1912:987:17:-;2669:17;2109:7;;;;;;;;;;;2096:29;;;2126:10;2096:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2096:41:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2096:41:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2096:41:17;;;;;;;;;;;;;;;;2088:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2203:1;2197:2;:7;;;;2189:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2263:1;2254:6;:10;2246:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2374:27;2387:5;2394:6;2374:12;:27::i;:::-;2366:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2477:6;2444:11;:18;2456:5;2444:18;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;2506:1;2497:5;:10;;;2493:400;;;2531:7;;;;;;;;;;;:33;;;2565:2;2569:6;2581:19;2531:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2531:70:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2531:70:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2531:70:17;;;;;;;;;;;;;;;;2523:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2493:400;;;2742:2;2746:6;2689:64;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2689:64:17;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2689:64:17;2669:84;;2775:7;;;;;;;;;;;:33;;;2809:5;2816:1;2819:4;2825:19;2775:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2775:70:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2775:70:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2775:70:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2775:70:17;;;;;;;;;;;;;;;;2767:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2493:400;1912:987;;;;:::o;626:248:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;1390:158:17:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:10:17;1499:11;:18;1511:5;1499:18;;;;;;;;;;;;;;;:29;;:42;;;;1390:158;;:::o;361:50::-;;;;;;;;;;;;;;;;;;;;:::o;3483:116::-;3545:4;3585:6;3579:3;:12;;;;;;;;3572:3;:20;3565:27;;3483:116;:::o;535:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;417:40::-;;;;;;;;;;;;;;;;;;;;:::o;442:300:4:-;656:1;644:7;;;;;;;;;;;636:21;;;628:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;724:10;700:7;;:35;;;;;;;;;;;;;;;;;;442:300::o;2905:486:17:-;2992:4;3012:29;3044:11;:18;3056:5;3044:18;;;;;;;;;;;;;;;3012:50;;3086:10;:18;;;3076:7;:5;:7::i;:::-;:28;3072:126;;;3141:7;:5;:7::i;:::-;3120:10;:18;;:28;;;;3186:1;3162:10;:21;;:25;;;;3072:126;3245:10;:21;;;3235:6;3211:10;:21;;;:30;:55;;:126;;;;;3316:10;:21;;;3307:6;3283:10;:21;;;:30;:54;3211:126;3207:155;;;3358:4;3351:11;;;;3207:155;3379:5;3372:12;;2905:486;;;;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"../base/Module.sol\";\nimport \"../base/ModuleManager.sol\";\nimport \"../base/OwnerManager.sol\";\nimport \"../common/Enum.sol\";\n\n\n/// @title Daily Limit Module - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n/// @author Stefan George - \ncontract DailyLimitModule is Module {\n\n string public constant NAME = \"Daily Limit Module\";\n string public constant VERSION = \"0.0.2\";\n\n // dailyLimits mapping maps token address to daily limit settings.\n mapping (address => DailyLimit) public dailyLimits;\n\n struct DailyLimit {\n uint256 dailyLimit;\n uint256 spentToday;\n uint256 lastDay;\n }\n\n /// @dev Setup function sets initial storage of contract.\n /// @param tokens List of token addresses. Ether is represented with address 0x0.\n /// @param _dailyLimits List of daily limits in smalles units (e.g. Wei for Ether).\n function setup(address[] tokens, uint256[] _dailyLimits)\n public\n {\n setManager();\n for (uint256 i = 0; i < tokens.length; i++)\n dailyLimits[tokens[i]].dailyLimit = _dailyLimits[i];\n }\n\n /// @dev Allows to update the daily limit for a specified token. This can only be done via a Safe transaction.\n /// @param token Token contract address.\n /// @param dailyLimit Daily limit in smallest token unit.\n function changeDailyLimit(address token, uint256 dailyLimit)\n public\n authorized\n {\n dailyLimits[token].dailyLimit = dailyLimit;\n }\n\n /// @dev Returns if Safe transaction is a valid daily limit transaction.\n /// @param token Address of the token that should be transfered (0 for Ether)\n /// @param to Address to which the tokens should be transfered\n /// @param amount Amount of tokens (or Ether) that should be transfered\n /// @return Returns if transaction can be executed.\n function executeDailyLimit(address token, address to, uint256 amount)\n public\n {\n // Only Safe owners are allowed to execute daily limit transactions.\n require(OwnerManager(manager).isOwner(msg.sender), \"Method can only be called by an owner\");\n require(to != 0, \"Invalid to address provided\");\n require(amount > 0, \"Invalid amount provided\");\n // Validate that transfer is not exceeding daily limit.\n require(isUnderLimit(token, amount), \"Daily limit has been reached\");\n dailyLimits[token].spentToday += amount;\n if (token == 0) {\n require(manager.execTransactionFromModule(to, amount, \"\", Enum.Operation.Call), \"Could not execute ether transfer\");\n } else {\n bytes memory data = abi.encodeWithSignature(\"transfer(address,uint256)\", to, amount);\n require(manager.execTransactionFromModule(token, 0, data, Enum.Operation.Call), \"Could not execute token transfer\");\n }\n }\n\n function isUnderLimit(address token, uint256 amount)\n internal\n returns (bool)\n {\n DailyLimit storage dailyLimit = dailyLimits[token];\n if (today() > dailyLimit.lastDay) {\n dailyLimit.lastDay = today();\n dailyLimit.spentToday = 0;\n }\n if (dailyLimit.spentToday + amount <= dailyLimit.dailyLimit && \n dailyLimit.spentToday + amount > dailyLimit.spentToday)\n return true;\n return false;\n }\n\n /// @dev Returns last midnight as Unix timestamp.\n /// @return Unix timestamp.\n function today()\n public\n view\n returns (uint)\n {\n return now - (now % 1 days);\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", "exportedSymbols": { "DailyLimitModule": [ - 2115 + 2110 ] }, - "id": 2116, + "id": 2111, "nodeType": "SourceUnit", "nodes": [ { - "id": 1878, + "id": 1873, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:20" + "src": "0:23:17" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", - "file": "../Module.sol", - "id": 1879, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "file": "../base/Module.sol", + "id": 1874, "nodeType": "ImportDirective", - "scope": 2116, - "sourceUnit": 914, - "src": "24:23:20", + "scope": 2111, + "sourceUnit": 936, + "src": "24:28:17", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", - "file": "../ModuleManager.sol", - "id": 1880, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "file": "../base/ModuleManager.sol", + "id": 1875, "nodeType": "ImportDirective", - "scope": 2116, - "sourceUnit": 1181, - "src": "48:30:20", + "scope": 2111, + "sourceUnit": 1213, + "src": "53:35:17", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", - "file": "../OwnerManager.sol", - "id": 1881, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "file": "../base/OwnerManager.sol", + "id": 1876, "nodeType": "ImportDirective", - "scope": 2116, - "sourceUnit": 1589, - "src": "79:29:20", + "scope": 2111, + "sourceUnit": 1653, + "src": "89:34:17", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", - "file": "../Enum.sol", - "id": 1882, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "file": "../common/Enum.sol", + "id": 1877, "nodeType": "ImportDirective", - "scope": 2116, - "sourceUnit": 31, - "src": "109:21:20", + "scope": 2111, + "sourceUnit": 1660, + "src": "124:28:17", "symbolAliases": [], "unitAlias": "" }, @@ -233,46 +233,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1883, + "id": 1878, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "325:6:20", + "referencedDeclaration": 935, + "src": "347:6:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, - "id": 1884, + "id": 1879, "nodeType": "InheritanceSpecifier", - "src": "325:6:20" + "src": "347:6:17" } ], "contractDependencies": [ - 813, - 913, - 1765 + 935, + 1693, + 1735 ], "contractKind": "contract", "documentation": "@title Daily Limit Module - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n @author Stefan George - ", "fullyImplemented": true, - "id": 2115, + "id": 2110, "linearizedBaseContracts": [ - 2115, - 913, - 813, - 1765 + 2110, + 935, + 1693, + 1735 ], "name": "DailyLimitModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 1887, + "id": 1882, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "339:50:20", + "scope": 2110, + "src": "361:50:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -280,10 +280,10 @@ "typeString": "string" }, "typeName": { - "id": 1885, + "id": 1880, "name": "string", "nodeType": "ElementaryTypeName", - "src": "339:6:20", + "src": "361:6:17", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -292,14 +292,14 @@ "value": { "argumentTypes": null, "hexValue": "4461696c79204c696d6974204d6f64756c65", - "id": 1886, + "id": 1881, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "369:20:20", + "src": "391:20:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_821ea27acfbc77b49f7a021dbe2eb92017d46b8bdda0bff9901cbc8ee143ceb3", @@ -311,11 +311,11 @@ }, { "constant": true, - "id": 1890, + "id": 1885, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "395:40:20", + "scope": 2110, + "src": "417:40:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -323,10 +323,10 @@ "typeString": "string" }, "typeName": { - "id": 1888, + "id": 1883, "name": "string", "nodeType": "ElementaryTypeName", - "src": "395:6:20", + "src": "417:6:17", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -334,64 +334,64 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e31", - "id": 1889, + "hexValue": "302e302e32", + "id": 1884, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "428:7:20", + "src": "450:7:17", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" + "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", + "typeString": "literal_string \"0.0.2\"" }, - "value": "0.0.1" + "value": "0.0.2" }, "visibility": "public" }, { "constant": false, - "id": 1894, + "id": 1889, "name": "dailyLimits", "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "513:50:20", + "scope": 2110, + "src": "535:50:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "typeName": { - "id": 1893, + "id": 1888, "keyType": { - "id": 1891, + "id": 1886, "name": "address", "nodeType": "ElementaryTypeName", - "src": "522:7:20", + "src": "544:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "513:31:20", + "src": "535:31:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "valueType": { "contractScope": null, - "id": 1892, + "id": 1887, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1901, - "src": "533:10:20", + "referencedDeclaration": 1896, + "src": "555:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } } @@ -401,15 +401,15 @@ }, { "canonicalName": "DailyLimitModule.DailyLimit", - "id": 1901, + "id": 1896, "members": [ { "constant": false, - "id": 1896, + "id": 1891, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1901, - "src": "598:18:20", + "scope": 1896, + "src": "620:18:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -417,10 +417,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1895, + "id": 1890, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "598:7:20", + "src": "620:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -431,11 +431,11 @@ }, { "constant": false, - "id": 1898, + "id": 1893, "name": "spentToday", "nodeType": "VariableDeclaration", - "scope": 1901, - "src": "626:18:20", + "scope": 1896, + "src": "648:18:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -443,10 +443,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1897, + "id": 1892, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "626:7:20", + "src": "648:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -457,11 +457,11 @@ }, { "constant": false, - "id": 1900, + "id": 1895, "name": "lastDay", "nodeType": "VariableDeclaration", - "scope": 1901, - "src": "654:15:20", + "scope": 1896, + "src": "676:15:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -469,10 +469,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1899, + "id": 1894, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "654:7:20", + "src": "676:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -484,15 +484,15 @@ ], "name": "DailyLimit", "nodeType": "StructDefinition", - "scope": 2115, - "src": "570:106:20", + "scope": 2110, + "src": "592:106:17", "visibility": "public" }, { "body": { - "id": 1936, + "id": 1931, "nodeType": "Block", - "src": "994:146:20", + "src": "1016:146:17", "statements": [ { "expression": { @@ -500,18 +500,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1910, + "id": 1905, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 912, - "src": "1004:10:20", + "referencedDeclaration": 934, + "src": "1026:10:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1911, + "id": 1906, "isConstant": false, "isLValue": false, "isPure": false, @@ -519,21 +519,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1004:12:20", + "src": "1026:12:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1912, + "id": 1907, "nodeType": "ExpressionStatement", - "src": "1004:12:20" + "src": "1026:12:17" }, { "body": { "expression": { "argumentTypes": null, - "id": 1933, + "id": 1928, "isConstant": false, "isLValue": false, "isPure": false, @@ -544,42 +544,42 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1924, + "id": 1919, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1082:11:20", + "referencedDeclaration": 1889, + "src": "1104:11:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1928, + "id": 1923, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1925, + "id": 1920, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1904, - "src": "1094:6:20", + "referencedDeclaration": 1899, + "src": "1116:6:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1927, + "id": 1922, "indexExpression": { "argumentTypes": null, - "id": 1926, + "id": 1921, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1914, - "src": "1101:1:20", + "referencedDeclaration": 1909, + "src": "1123:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -590,7 +590,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1094:9:20", + "src": "1116:9:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -601,21 +601,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1082:22:20", + "src": "1104:22:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1929, + "id": 1924, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1896, - "src": "1082:33:20", + "referencedDeclaration": 1891, + "src": "1104:33:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -627,26 +627,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1930, + "id": 1925, "name": "_dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1907, - "src": "1118:12:20", + "referencedDeclaration": 1902, + "src": "1140:12:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1932, + "id": 1927, "indexExpression": { "argumentTypes": null, - "id": 1931, + "id": 1926, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1914, - "src": "1131:1:20", + "referencedDeclaration": 1909, + "src": "1153:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -657,21 +657,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1118:15:20", + "src": "1140:15:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1082:51:20", + "src": "1104:51:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1934, + "id": 1929, "nodeType": "ExpressionStatement", - "src": "1082:51:20" + "src": "1104:51:17" }, "condition": { "argumentTypes": null, @@ -679,19 +679,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1920, + "id": 1915, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1917, + "id": 1912, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1914, - "src": "1046:1:20", + "referencedDeclaration": 1909, + "src": "1068:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -703,18 +703,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1918, + "id": 1913, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1904, - "src": "1050:6:20", + "referencedDeclaration": 1899, + "src": "1072:6:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1919, + "id": 1914, "isConstant": false, "isLValue": false, "isPure": false, @@ -722,31 +722,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1050:13:20", + "src": "1072:13:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1046:17:20", + "src": "1068:17:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1935, + "id": 1930, "initializationExpression": { "assignments": [ - 1914 + 1909 ], "declarations": [ { "constant": false, - "id": 1914, + "id": 1909, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1937, - "src": "1031:9:20", + "scope": 1932, + "src": "1053:9:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -754,10 +754,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1913, + "id": 1908, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1031:7:20", + "src": "1053:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -767,18 +767,18 @@ "visibility": "internal" } ], - "id": 1916, + "id": 1911, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1915, + "id": 1910, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1043:1:20", + "src": "1065:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -787,12 +787,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1031:13:20" + "src": "1053:13:17" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1922, + "id": 1917, "isConstant": false, "isLValue": false, "isPure": false, @@ -800,15 +800,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1065:3:20", + "src": "1087:3:17", "subExpression": { "argumentTypes": null, - "id": 1921, + "id": 1916, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1914, - "src": "1065:1:20", + "referencedDeclaration": 1909, + "src": "1087:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -819,17 +819,17 @@ "typeString": "uint256" } }, - "id": 1923, + "id": 1918, "nodeType": "ExpressionStatement", - "src": "1065:3:20" + "src": "1087:3:17" }, "nodeType": "ForStatement", - "src": "1026:107:20" + "src": "1048:107:17" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param tokens List of token addresses. Ether is represented with address 0x0.\n @param _dailyLimits List of daily limits in smalles units (e.g. Wei for Ether).", - "id": 1937, + "id": 1932, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -837,16 +837,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 1908, + "id": 1903, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1904, + "id": 1899, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 1937, - "src": "933:16:20", + "scope": 1932, + "src": "955:16:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -855,19 +855,19 @@ }, "typeName": { "baseType": { - "id": 1902, + "id": 1897, "name": "address", "nodeType": "ElementaryTypeName", - "src": "933:7:20", + "src": "955:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1903, + "id": 1898, "length": null, "nodeType": "ArrayTypeName", - "src": "933:9:20", + "src": "955:9:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -878,11 +878,11 @@ }, { "constant": false, - "id": 1907, + "id": 1902, "name": "_dailyLimits", "nodeType": "VariableDeclaration", - "scope": 1937, - "src": "951:22:20", + "scope": 1932, + "src": "973:22:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -891,19 +891,19 @@ }, "typeName": { "baseType": { - "id": 1905, + "id": 1900, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "951:7:20", + "src": "973:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1906, + "id": 1901, "length": null, "nodeType": "ArrayTypeName", - "src": "951:9:20", + "src": "973:9:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -913,31 +913,31 @@ "visibility": "internal" } ], - "src": "932:42:20" + "src": "954:42:17" }, "payable": false, "returnParameters": { - "id": 1909, + "id": 1904, "nodeType": "ParameterList", "parameters": [], - "src": "994:0:20" + "src": "1016:0:17" }, - "scope": 2115, - "src": "918:222:20", + "scope": 2110, + "src": "940:222:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1953, + "id": 1948, "nodeType": "Block", - "src": "1467:59:20", + "src": "1489:59:17", "statements": [ { "expression": { "argumentTypes": null, - "id": 1951, + "id": 1946, "isConstant": false, "isLValue": false, "isPure": false, @@ -948,26 +948,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1946, + "id": 1941, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1477:11:20", + "referencedDeclaration": 1889, + "src": "1499:11:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1948, + "id": 1943, "indexExpression": { "argumentTypes": null, - "id": 1947, + "id": 1942, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1939, - "src": "1489:5:20", + "referencedDeclaration": 1934, + "src": "1511:5:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -978,21 +978,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1477:18:20", + "src": "1499:18:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1949, + "id": 1944, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1896, - "src": "1477:29:20", + "referencedDeclaration": 1891, + "src": "1499:29:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1002,68 +1002,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1950, + "id": 1945, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1941, - "src": "1509:10:20", + "referencedDeclaration": 1936, + "src": "1531:10:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1477:42:20", + "src": "1499:42:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1952, + "id": 1947, "nodeType": "ExpressionStatement", - "src": "1477:42:20" + "src": "1499:42:17" } ] }, "documentation": "@dev Allows to update the daily limit for a specified token. This can only be done via a Safe transaction.\n @param token Token contract address.\n @param dailyLimit Daily limit in smallest token unit.", - "id": 1954, + "id": 1949, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1944, + "id": 1939, "modifierName": { "argumentTypes": null, - "id": 1943, + "id": 1938, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 892, - "src": "1452:10:20", + "referencedDeclaration": 914, + "src": "1474:10:17", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1452:10:20" + "src": "1474:10:17" } ], "name": "changeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1942, + "id": 1937, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1939, + "id": 1934, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1954, - "src": "1394:13:20", + "scope": 1949, + "src": "1416:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1071,10 +1071,10 @@ "typeString": "address" }, "typeName": { - "id": 1938, + "id": 1933, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1394:7:20", + "src": "1416:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1085,11 +1085,11 @@ }, { "constant": false, - "id": 1941, + "id": 1936, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1954, - "src": "1409:18:20", + "scope": 1949, + "src": "1431:18:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1097,10 +1097,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1940, + "id": 1935, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1409:7:20", + "src": "1431:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1110,26 +1110,26 @@ "visibility": "internal" } ], - "src": "1393:35:20" + "src": "1415:35:17" }, "payable": false, "returnParameters": { - "id": 1945, + "id": 1940, "nodeType": "ParameterList", "parameters": [], - "src": "1467:0:20" + "src": "1489:0:17" }, - "scope": 2115, - "src": "1368:158:20", + "scope": 2110, + "src": "1390:158:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2044, + "id": 2039, "nodeType": "Block", - "src": "1979:898:20", + "src": "2001:898:17", "statements": [ { "expression": { @@ -1142,18 +1142,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1968, + "id": 1963, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2104:3:20", + "referencedDeclaration": 4491, + "src": "2126:3:17", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1969, + "id": 1964, "isConstant": false, "isLValue": false, "isPure": false, @@ -1161,7 +1161,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2104:10:20", + "src": "2126:10:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1180,14 +1180,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1965, + "id": 1960, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "2087:7:20", + "referencedDeclaration": 900, + "src": "2109:7:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } } @@ -1195,22 +1195,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } ], - "id": 1964, + "id": 1959, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1588, - "src": "2074:12:20", + "referencedDeclaration": 1652, + "src": "2096:12:17", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1588_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", "typeString": "type(contract OwnerManager)" } }, - "id": 1966, + "id": 1961, "isConstant": false, "isLValue": false, "isPure": false, @@ -1218,27 +1218,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2074:21:20", + "src": "2096:21:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1588", + "typeIdentifier": "t_contract$_OwnerManager_$1652", "typeString": "contract OwnerManager" } }, - "id": 1967, + "id": 1962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1538, - "src": "2074:29:20", + "referencedDeclaration": 1602, + "src": "2096:29:17", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 1970, + "id": 1965, "isConstant": false, "isLValue": false, "isPure": false, @@ -1246,7 +1246,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2074:41:20", + "src": "2096:41:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1255,14 +1255,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 1971, + "id": 1966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2117:39:20", + "src": "2139:39:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", @@ -1282,21 +1282,21 @@ "typeString": "literal_string \"Method can only be called by an owner\"" } ], - "id": 1963, + "id": 1958, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2066:7:20", + "referencedDeclaration": 4495, + "src": "2088:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1972, + "id": 1967, "isConstant": false, "isLValue": false, "isPure": false, @@ -1304,15 +1304,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2066:91:20", + "src": "2088:91:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1973, + "id": 1968, "nodeType": "ExpressionStatement", - "src": "2066:91:20" + "src": "2088:91:17" }, { "expression": { @@ -1324,19 +1324,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1977, + "id": 1972, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1975, + "id": 1970, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1958, - "src": "2175:2:20", + "referencedDeclaration": 1953, + "src": "2197:2:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1347,14 +1347,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1976, + "id": 1971, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2181:1:20", + "src": "2203:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1362,7 +1362,7 @@ }, "value": "0" }, - "src": "2175:7:20", + "src": "2197:7:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1371,14 +1371,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420746f20616464726573732070726f7669646564", - "id": 1978, + "id": 1973, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2184:29:20", + "src": "2206:29:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5adba0692e08f8080ea3ec2bf95727d181df9c72d0fc6db8f77e3703d9523f1", @@ -1398,21 +1398,21 @@ "typeString": "literal_string \"Invalid to address provided\"" } ], - "id": 1974, + "id": 1969, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2167:7:20", + "referencedDeclaration": 4495, + "src": "2189:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1979, + "id": 1974, "isConstant": false, "isLValue": false, "isPure": false, @@ -1420,15 +1420,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2167:47:20", + "src": "2189:47:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1980, + "id": 1975, "nodeType": "ExpressionStatement", - "src": "2167:47:20" + "src": "2189:47:17" }, { "expression": { @@ -1440,19 +1440,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1984, + "id": 1979, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1982, + "id": 1977, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1960, - "src": "2232:6:20", + "referencedDeclaration": 1955, + "src": "2254:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1463,14 +1463,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1983, + "id": 1978, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2241:1:20", + "src": "2263:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1478,7 +1478,7 @@ }, "value": "0" }, - "src": "2232:10:20", + "src": "2254:10:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1487,14 +1487,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420616d6f756e742070726f7669646564", - "id": 1985, + "id": 1980, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2244:25:20", + "src": "2266:25:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_991bec80688b0edba4751e32429f6879002de57199ff2c6b5bf0742d348ba58f", @@ -1514,21 +1514,21 @@ "typeString": "literal_string \"Invalid amount provided\"" } ], - "id": 1981, + "id": 1976, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2224:7:20", + "referencedDeclaration": 4495, + "src": "2246:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1986, + "id": 1981, "isConstant": false, "isLValue": false, "isPure": false, @@ -1536,15 +1536,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2224:46:20", + "src": "2246:46:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1987, + "id": 1982, "nodeType": "ExpressionStatement", - "src": "2224:46:20" + "src": "2246:46:17" }, { "expression": { @@ -1555,12 +1555,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1990, + "id": 1985, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1956, - "src": "2365:5:20", + "referencedDeclaration": 1951, + "src": "2387:5:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1568,12 +1568,12 @@ }, { "argumentTypes": null, - "id": 1991, + "id": 1986, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1960, - "src": "2372:6:20", + "referencedDeclaration": 1955, + "src": "2394:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1591,18 +1591,18 @@ "typeString": "uint256" } ], - "id": 1989, + "id": 1984, "name": "isUnderLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2101, - "src": "2352:12:20", + "referencedDeclaration": 2096, + "src": "2374:12:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) returns (bool)" } }, - "id": 1992, + "id": 1987, "isConstant": false, "isLValue": false, "isPure": false, @@ -1610,7 +1610,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2352:27:20", + "src": "2374:27:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1619,14 +1619,14 @@ { "argumentTypes": null, "hexValue": "4461696c79206c696d697420686173206265656e2072656163686564", - "id": 1993, + "id": 1988, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2381:30:20", + "src": "2403:30:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c8c9a9731e3c1970f356c6998c7e6418ab5b55402b68846f03a8bbe49c05905", @@ -1646,21 +1646,21 @@ "typeString": "literal_string \"Daily limit has been reached\"" } ], - "id": 1988, + "id": 1983, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2344:7:20", + "referencedDeclaration": 4495, + "src": "2366:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1994, + "id": 1989, "isConstant": false, "isLValue": false, "isPure": false, @@ -1668,20 +1668,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2344:68:20", + "src": "2366:68:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1995, + "id": 1990, "nodeType": "ExpressionStatement", - "src": "2344:68:20" + "src": "2366:68:17" }, { "expression": { "argumentTypes": null, - "id": 2001, + "id": 1996, "isConstant": false, "isLValue": false, "isPure": false, @@ -1692,26 +1692,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1996, + "id": 1991, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "2422:11:20", + "referencedDeclaration": 1889, + "src": "2444:11:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1998, + "id": 1993, "indexExpression": { "argumentTypes": null, - "id": 1997, + "id": 1992, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1956, - "src": "2434:5:20", + "referencedDeclaration": 1951, + "src": "2456:5:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1722,21 +1722,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2422:18:20", + "src": "2444:18:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1999, + "id": 1994, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1898, - "src": "2422:29:20", + "referencedDeclaration": 1893, + "src": "2444:29:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1746,26 +1746,26 @@ "operator": "+=", "rightHandSide": { "argumentTypes": null, - "id": 2000, + "id": 1995, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1960, - "src": "2455:6:20", + "referencedDeclaration": 1955, + "src": "2477:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2422:39:20", + "src": "2444:39:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2002, + "id": 1997, "nodeType": "ExpressionStatement", - "src": "2422:39:20" + "src": "2444:39:17" }, { "condition": { @@ -1774,19 +1774,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2005, + "id": 2000, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2003, + "id": 1998, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1956, - "src": "2475:5:20", + "referencedDeclaration": 1951, + "src": "2497:5:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1797,14 +1797,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2004, + "id": 1999, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2484:1:20", + "src": "2506:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1812,29 +1812,29 @@ }, "value": "0" }, - "src": "2475:10:20", + "src": "2497:10:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2042, + "id": 2037, "nodeType": "Block", - "src": "2633:238:20", + "src": "2655:238:17", "statements": [ { "assignments": [ - 2021 + 2016 ], "declarations": [ { "constant": false, - "id": 2021, + "id": 2016, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2045, - "src": "2647:17:20", + "scope": 2040, + "src": "2669:17:17", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1842,10 +1842,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2020, + "id": 2015, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2647:5:20", + "src": "2669:5:17", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1855,21 +1855,21 @@ "visibility": "internal" } ], - "id": 2028, + "id": 2023, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 2024, + "id": 2019, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2691:27:20", + "src": "2713:27:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", @@ -1879,12 +1879,12 @@ }, { "argumentTypes": null, - "id": 2025, + "id": 2020, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1958, - "src": "2720:2:20", + "referencedDeclaration": 1953, + "src": "2742:2:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1892,12 +1892,12 @@ }, { "argumentTypes": null, - "id": 2026, + "id": 2021, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1960, - "src": "2724:6:20", + "referencedDeclaration": 1955, + "src": "2746:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1921,18 +1921,18 @@ ], "expression": { "argumentTypes": null, - "id": 2022, + "id": 2017, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "2667:3:20", + "referencedDeclaration": 4478, + "src": "2689:3:17", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 2023, + "id": 2018, "isConstant": false, "isLValue": false, "isPure": true, @@ -1940,13 +1940,13 @@ "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2667:23:20", + "src": "2689:23:17", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 2027, + "id": 2022, "isConstant": false, "isLValue": false, "isPure": false, @@ -1954,14 +1954,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2667:64:20", + "src": "2689:64:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2647:84:20" + "src": "2669:84:17" }, { "expression": { @@ -1972,12 +1972,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2032, + "id": 2027, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1956, - "src": "2787:5:20", + "referencedDeclaration": 1951, + "src": "2809:5:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1986,14 +1986,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2033, + "id": 2028, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2794:1:20", + "src": "2816:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2003,12 +2003,12 @@ }, { "argumentTypes": null, - "id": 2034, + "id": 2029, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2021, - "src": "2797:4:20", + "referencedDeclaration": 2016, + "src": "2819:4:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2020,32 +2020,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2035, + "id": 2030, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "2803:4:20", + "referencedDeclaration": 1659, + "src": "2825:4:17", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", "typeString": "type(contract Enum)" } }, - "id": 2036, + "id": 2031, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "2803:14:20", + "referencedDeclaration": 1658, + "src": "2825:14:17", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2037, + "id": 2032, "isConstant": false, "isLValue": false, "isPure": true, @@ -2053,9 +2053,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2803:19:20", + "src": "2825:19:17", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } } @@ -2075,38 +2075,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2030, + "id": 2025, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "2753:7:20", + "referencedDeclaration": 900, + "src": "2775:7:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, - "id": 2031, + "id": 2026, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1106, - "src": "2753:33:20", + "referencedDeclaration": 1138, + "src": "2775:33:17", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2038, + "id": 2033, "isConstant": false, "isLValue": false, "isPure": false, @@ -2114,7 +2114,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2753:70:20", + "src": "2775:70:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2123,14 +2123,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74206578656375746520746f6b656e207472616e73666572", - "id": 2039, + "id": 2034, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2825:34:20", + "src": "2847:34:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_00c0b742664159361be6aebbe2af44c4ae7eb95e13260265d1e1cf75d2593709", @@ -2150,21 +2150,21 @@ "typeString": "literal_string \"Could not execute token transfer\"" } ], - "id": 2029, + "id": 2024, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2745:7:20", + "referencedDeclaration": 4495, + "src": "2767:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2040, + "id": 2035, "isConstant": false, "isLValue": false, "isPure": false, @@ -2172,25 +2172,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2745:115:20", + "src": "2767:115:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2041, + "id": 2036, "nodeType": "ExpressionStatement", - "src": "2745:115:20" + "src": "2767:115:17" } ] }, - "id": 2043, + "id": 2038, "nodeType": "IfStatement", - "src": "2471:400:20", + "src": "2493:400:17", "trueBody": { - "id": 2019, + "id": 2014, "nodeType": "Block", - "src": "2487:140:20", + "src": "2509:140:17", "statements": [ { "expression": { @@ -2201,12 +2201,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2009, + "id": 2004, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1958, - "src": "2543:2:20", + "referencedDeclaration": 1953, + "src": "2565:2:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2214,12 +2214,12 @@ }, { "argumentTypes": null, - "id": 2010, + "id": 2005, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1960, - "src": "2547:6:20", + "referencedDeclaration": 1955, + "src": "2569:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2228,14 +2228,14 @@ { "argumentTypes": null, "hexValue": "", - "id": 2011, + "id": 2006, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2555:2:20", + "src": "2577:2:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -2249,32 +2249,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2012, + "id": 2007, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "2559:4:20", + "referencedDeclaration": 1659, + "src": "2581:4:17", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", "typeString": "type(contract Enum)" } }, - "id": 2013, + "id": 2008, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "2559:14:20", + "referencedDeclaration": 1658, + "src": "2581:14:17", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2014, + "id": 2009, "isConstant": false, "isLValue": false, "isPure": true, @@ -2282,9 +2282,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2559:19:20", + "src": "2581:19:17", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } } @@ -2304,38 +2304,38 @@ "typeString": "literal_string \"\"" }, { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2007, + "id": 2002, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "2509:7:20", + "referencedDeclaration": 900, + "src": "2531:7:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, - "id": 2008, + "id": 2003, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1106, - "src": "2509:33:20", + "referencedDeclaration": 1138, + "src": "2531:33:17", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2015, + "id": 2010, "isConstant": false, "isLValue": false, "isPure": false, @@ -2343,7 +2343,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2509:70:20", + "src": "2531:70:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2352,14 +2352,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465206574686572207472616e73666572", - "id": 2016, + "id": 2011, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2581:34:20", + "src": "2603:34:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2fae53cac084168982e43888b6e5eff084959ab65d511777b56b4cbb265d2586", @@ -2379,21 +2379,21 @@ "typeString": "literal_string \"Could not execute ether transfer\"" } ], - "id": 2006, + "id": 2001, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2501:7:20", + "referencedDeclaration": 4495, + "src": "2523:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2017, + "id": 2012, "isConstant": false, "isLValue": false, "isPure": false, @@ -2401,15 +2401,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2501:115:20", + "src": "2523:115:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2018, + "id": 2013, "nodeType": "ExpressionStatement", - "src": "2501:115:20" + "src": "2523:115:17" } ] } @@ -2417,7 +2417,7 @@ ] }, "documentation": "@dev Returns if Safe transaction is a valid daily limit transaction.\n @param token Address of the token that should be transfered (0 for Ether)\n @param to Address to which the tokens should be transfered\n @param amount Amount of tokens (or Ether) that should be transfered\n @return Returns if transaction can be executed.", - "id": 2045, + "id": 2040, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2425,16 +2425,16 @@ "name": "executeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1961, + "id": 1956, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1956, + "id": 1951, "name": "token", "nodeType": "VariableDeclaration", - "scope": 2045, - "src": "1917:13:20", + "scope": 2040, + "src": "1939:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2442,10 +2442,10 @@ "typeString": "address" }, "typeName": { - "id": 1955, + "id": 1950, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1917:7:20", + "src": "1939:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2456,11 +2456,11 @@ }, { "constant": false, - "id": 1958, + "id": 1953, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2045, - "src": "1932:10:20", + "scope": 2040, + "src": "1954:10:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2468,10 +2468,10 @@ "typeString": "address" }, "typeName": { - "id": 1957, + "id": 1952, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1932:7:20", + "src": "1954:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2482,11 +2482,11 @@ }, { "constant": false, - "id": 1960, + "id": 1955, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2045, - "src": "1944:14:20", + "scope": 2040, + "src": "1966:14:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2494,10 +2494,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1959, + "id": 1954, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1944:7:20", + "src": "1966:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2507,54 +2507,54 @@ "visibility": "internal" } ], - "src": "1916:43:20" + "src": "1938:43:17" }, "payable": false, "returnParameters": { - "id": 1962, + "id": 1957, "nodeType": "ParameterList", "parameters": [], - "src": "1979:0:20" + "src": "2001:0:17" }, - "scope": 2115, - "src": "1890:987:20", + "scope": 2110, + "src": "1912:987:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2100, + "id": 2095, "nodeType": "Block", - "src": "2980:389:20", + "src": "3002:389:17", "statements": [ { "assignments": [ - 2055 + 2050 ], "declarations": [ { "constant": false, - "id": 2055, + "id": 2050, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 2101, - "src": "2990:29:20", + "scope": 2096, + "src": "3012:29:17", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" }, "typeName": { "contractScope": null, - "id": 2054, + "id": 2049, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1901, - "src": "2990:10:20", + "referencedDeclaration": 1896, + "src": "3012:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } }, @@ -2562,31 +2562,31 @@ "visibility": "internal" } ], - "id": 2059, + "id": 2054, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2056, + "id": 2051, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "3022:11:20", + "referencedDeclaration": 1889, + "src": "3044:11:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 2058, + "id": 2053, "indexExpression": { "argumentTypes": null, - "id": 2057, + "id": 2052, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2047, - "src": "3034:5:20", + "referencedDeclaration": 2042, + "src": "3056:5:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2597,14 +2597,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3022:18:20", + "src": "3044:18:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "2990:50:20" + "src": "3012:50:17" }, { "condition": { @@ -2613,7 +2613,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2064, + "id": 2059, "isConstant": false, "isLValue": false, "isPure": false, @@ -2623,18 +2623,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2060, + "id": 2055, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2114, - "src": "3054:5:20", + "referencedDeclaration": 2109, + "src": "3076:5:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 2061, + "id": 2056, "isConstant": false, "isLValue": false, "isPure": false, @@ -2642,7 +2642,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3054:7:20", + "src": "3076:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2654,50 +2654,50 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2062, + "id": 2057, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2055, - "src": "3064:10:20", + "referencedDeclaration": 2050, + "src": "3086:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2063, + "id": 2058, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 1900, - "src": "3064:18:20", + "referencedDeclaration": 1895, + "src": "3086:18:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3054:28:20", + "src": "3076:28:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2079, + "id": 2074, "nodeType": "IfStatement", - "src": "3050:126:20", + "src": "3072:126:17", "trueBody": { - "id": 2078, + "id": 2073, "nodeType": "Block", - "src": "3084:92:20", + "src": "3106:92:17", "statements": [ { "expression": { "argumentTypes": null, - "id": 2070, + "id": 2065, "isConstant": false, "isLValue": false, "isPure": false, @@ -2706,26 +2706,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2065, + "id": 2060, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2055, - "src": "3098:10:20", + "referencedDeclaration": 2050, + "src": "3120:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2067, + "id": 2062, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 1900, - "src": "3098:18:20", + "referencedDeclaration": 1895, + "src": "3120:18:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2738,18 +2738,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2068, + "id": 2063, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2114, - "src": "3119:5:20", + "referencedDeclaration": 2109, + "src": "3141:5:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 2069, + "id": 2064, "isConstant": false, "isLValue": false, "isPure": false, @@ -2757,26 +2757,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3119:7:20", + "src": "3141:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3098:28:20", + "src": "3120:28:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2071, + "id": 2066, "nodeType": "ExpressionStatement", - "src": "3098:28:20" + "src": "3120:28:17" }, { "expression": { "argumentTypes": null, - "id": 2076, + "id": 2071, "isConstant": false, "isLValue": false, "isPure": false, @@ -2785,26 +2785,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2072, + "id": 2067, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2055, - "src": "3140:10:20", + "referencedDeclaration": 2050, + "src": "3162:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2074, + "id": 2069, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1898, - "src": "3140:21:20", + "referencedDeclaration": 1893, + "src": "3162:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2815,14 +2815,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2075, + "id": 2070, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3164:1:20", + "src": "3186:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2830,15 +2830,15 @@ }, "value": "0" }, - "src": "3140:25:20", + "src": "3162:25:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2077, + "id": 2072, "nodeType": "ExpressionStatement", - "src": "3140:25:20" + "src": "3162:25:17" } ] } @@ -2850,7 +2850,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2094, + "id": 2089, "isConstant": false, "isLValue": false, "isPure": false, @@ -2861,7 +2861,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2086, + "id": 2081, "isConstant": false, "isLValue": false, "isPure": false, @@ -2872,7 +2872,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2083, + "id": 2078, "isConstant": false, "isLValue": false, "isPure": false, @@ -2881,26 +2881,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2080, + "id": 2075, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2055, - "src": "3189:10:20", + "referencedDeclaration": 2050, + "src": "3211:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2081, + "id": 2076, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1898, - "src": "3189:21:20", + "referencedDeclaration": 1893, + "src": "3211:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2910,18 +2910,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2082, + "id": 2077, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2049, - "src": "3213:6:20", + "referencedDeclaration": 2044, + "src": "3235:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3189:30:20", + "src": "3211:30:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2933,32 +2933,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2084, + "id": 2079, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2055, - "src": "3223:10:20", + "referencedDeclaration": 2050, + "src": "3245:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2085, + "id": 2080, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1896, - "src": "3223:21:20", + "referencedDeclaration": 1891, + "src": "3245:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3189:55:20", + "src": "3211:55:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2972,7 +2972,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2093, + "id": 2088, "isConstant": false, "isLValue": false, "isPure": false, @@ -2983,7 +2983,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2090, + "id": 2085, "isConstant": false, "isLValue": false, "isPure": false, @@ -2992,26 +2992,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2087, + "id": 2082, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2055, - "src": "3261:10:20", + "referencedDeclaration": 2050, + "src": "3283:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2088, + "id": 2083, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1898, - "src": "3261:21:20", + "referencedDeclaration": 1893, + "src": "3283:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3021,18 +3021,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2089, + "id": 2084, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2049, - "src": "3285:6:20", + "referencedDeclaration": 2044, + "src": "3307:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3261:30:20", + "src": "3283:30:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3044,59 +3044,59 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2091, + "id": 2086, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2055, - "src": "3294:10:20", + "referencedDeclaration": 2050, + "src": "3316:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2092, + "id": 2087, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1898, - "src": "3294:21:20", + "referencedDeclaration": 1893, + "src": "3316:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3261:54:20", + "src": "3283:54:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3189:126:20", + "src": "3211:126:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2097, + "id": 2092, "nodeType": "IfStatement", - "src": "3185:155:20", + "src": "3207:155:17", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2095, + "id": 2090, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3336:4:20", + "src": "3358:4:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3104,24 +3104,24 @@ }, "value": "true" }, - "functionReturnParameters": 2053, - "id": 2096, + "functionReturnParameters": 2048, + "id": 2091, "nodeType": "Return", - "src": "3329:11:20" + "src": "3351:11:17" } }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2098, + "id": 2093, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3357:5:20", + "src": "3379:5:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3129,15 +3129,15 @@ }, "value": "false" }, - "functionReturnParameters": 2053, - "id": 2099, + "functionReturnParameters": 2048, + "id": 2094, "nodeType": "Return", - "src": "3350:12:20" + "src": "3372:12:17" } ] }, "documentation": null, - "id": 2101, + "id": 2096, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3145,16 +3145,16 @@ "name": "isUnderLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 2050, + "id": 2045, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2047, + "id": 2042, "name": "token", "nodeType": "VariableDeclaration", - "scope": 2101, - "src": "2905:13:20", + "scope": 2096, + "src": "2927:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3162,10 +3162,10 @@ "typeString": "address" }, "typeName": { - "id": 2046, + "id": 2041, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2905:7:20", + "src": "2927:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3176,11 +3176,11 @@ }, { "constant": false, - "id": 2049, + "id": 2044, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2101, - "src": "2920:14:20", + "scope": 2096, + "src": "2942:14:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3188,10 +3188,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2048, + "id": 2043, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2920:7:20", + "src": "2942:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3201,20 +3201,20 @@ "visibility": "internal" } ], - "src": "2904:31:20" + "src": "2926:31:17" }, "payable": false, "returnParameters": { - "id": 2053, + "id": 2048, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2052, + "id": 2047, "name": "", "nodeType": "VariableDeclaration", - "scope": 2101, - "src": "2970:4:20", + "scope": 2096, + "src": "2992:4:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3222,10 +3222,10 @@ "typeString": "bool" }, "typeName": { - "id": 2051, + "id": 2046, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2970:4:20", + "src": "2992:4:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3235,19 +3235,19 @@ "visibility": "internal" } ], - "src": "2969:6:20" + "src": "2991:6:17" }, - "scope": 2115, - "src": "2883:486:20", + "scope": 2110, + "src": "2905:486:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2113, + "id": 2108, "nodeType": "Block", - "src": "3533:44:20", + "src": "3555:44:17", "statements": [ { "expression": { @@ -3256,19 +3256,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2111, + "id": 2106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2106, + "id": 2101, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "3550:3:20", + "referencedDeclaration": 4493, + "src": "3572:3:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3285,19 +3285,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2109, + "id": 2104, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2107, + "id": 2102, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "3557:3:20", + "referencedDeclaration": 4493, + "src": "3579:3:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3308,14 +3308,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2108, + "id": 2103, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3563:6:20", + "src": "3585:6:17", "subdenomination": "days", "typeDescriptions": { "typeIdentifier": "t_rational_86400_by_1", @@ -3323,41 +3323,41 @@ }, "value": "1" }, - "src": "3557:12:20", + "src": "3579:12:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2110, + "id": 2105, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3556:14:20", + "src": "3578:14:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3550:20:20", + "src": "3572:20:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2105, - "id": 2112, + "functionReturnParameters": 2100, + "id": 2107, "nodeType": "Return", - "src": "3543:27:20" + "src": "3565:27:17" } ] }, "documentation": "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp.", - "id": 2114, + "id": 2109, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3365,23 +3365,23 @@ "name": "today", "nodeType": "FunctionDefinition", "parameters": { - "id": 2102, + "id": 2097, "nodeType": "ParameterList", "parameters": [], - "src": "3475:2:20" + "src": "3497:2:17" }, "payable": false, "returnParameters": { - "id": 2105, + "id": 2100, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2104, + "id": 2099, "name": "", "nodeType": "VariableDeclaration", - "scope": 2114, - "src": "3523:4:20", + "scope": 2109, + "src": "3545:4:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3389,10 +3389,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2103, + "id": 2098, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3523:4:20", + "src": "3545:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3402,82 +3402,82 @@ "visibility": "internal" } ], - "src": "3522:6:20" + "src": "3544:6:17" }, - "scope": 2115, - "src": "3461:116:20", + "scope": 2110, + "src": "3483:116:17", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 2116, - "src": "296:3283:20" + "scope": 2111, + "src": "318:3283:17" } ], - "src": "0:3580:20" + "src": "0:3602:17" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", "exportedSymbols": { "DailyLimitModule": [ - 2115 + 2110 ] }, - "id": 2116, + "id": 2111, "nodeType": "SourceUnit", "nodes": [ { - "id": 1878, + "id": 1873, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:20" + "src": "0:23:17" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", - "file": "../Module.sol", - "id": 1879, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "file": "../base/Module.sol", + "id": 1874, "nodeType": "ImportDirective", - "scope": 2116, - "sourceUnit": 914, - "src": "24:23:20", + "scope": 2111, + "sourceUnit": 936, + "src": "24:28:17", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", - "file": "../ModuleManager.sol", - "id": 1880, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "file": "../base/ModuleManager.sol", + "id": 1875, "nodeType": "ImportDirective", - "scope": 2116, - "sourceUnit": 1181, - "src": "48:30:20", + "scope": 2111, + "sourceUnit": 1213, + "src": "53:35:17", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", - "file": "../OwnerManager.sol", - "id": 1881, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "file": "../base/OwnerManager.sol", + "id": 1876, "nodeType": "ImportDirective", - "scope": 2116, - "sourceUnit": 1589, - "src": "79:29:20", + "scope": 2111, + "sourceUnit": 1653, + "src": "89:34:17", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", - "file": "../Enum.sol", - "id": 1882, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "file": "../common/Enum.sol", + "id": 1877, "nodeType": "ImportDirective", - "scope": 2116, - "sourceUnit": 31, - "src": "109:21:20", + "scope": 2111, + "sourceUnit": 1660, + "src": "124:28:17", "symbolAliases": [], "unitAlias": "" }, @@ -3487,46 +3487,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1883, + "id": 1878, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "325:6:20", + "referencedDeclaration": 935, + "src": "347:6:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, - "id": 1884, + "id": 1879, "nodeType": "InheritanceSpecifier", - "src": "325:6:20" + "src": "347:6:17" } ], "contractDependencies": [ - 813, - 913, - 1765 + 935, + 1693, + 1735 ], "contractKind": "contract", "documentation": "@title Daily Limit Module - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n @author Stefan George - ", "fullyImplemented": true, - "id": 2115, + "id": 2110, "linearizedBaseContracts": [ - 2115, - 913, - 813, - 1765 + 2110, + 935, + 1693, + 1735 ], "name": "DailyLimitModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 1887, + "id": 1882, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "339:50:20", + "scope": 2110, + "src": "361:50:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3534,10 +3534,10 @@ "typeString": "string" }, "typeName": { - "id": 1885, + "id": 1880, "name": "string", "nodeType": "ElementaryTypeName", - "src": "339:6:20", + "src": "361:6:17", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3546,14 +3546,14 @@ "value": { "argumentTypes": null, "hexValue": "4461696c79204c696d6974204d6f64756c65", - "id": 1886, + "id": 1881, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "369:20:20", + "src": "391:20:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_821ea27acfbc77b49f7a021dbe2eb92017d46b8bdda0bff9901cbc8ee143ceb3", @@ -3565,11 +3565,11 @@ }, { "constant": true, - "id": 1890, + "id": 1885, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "395:40:20", + "scope": 2110, + "src": "417:40:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3577,10 +3577,10 @@ "typeString": "string" }, "typeName": { - "id": 1888, + "id": 1883, "name": "string", "nodeType": "ElementaryTypeName", - "src": "395:6:20", + "src": "417:6:17", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3588,64 +3588,64 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e31", - "id": 1889, + "hexValue": "302e302e32", + "id": 1884, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "428:7:20", + "src": "450:7:17", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" + "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", + "typeString": "literal_string \"0.0.2\"" }, - "value": "0.0.1" + "value": "0.0.2" }, "visibility": "public" }, { "constant": false, - "id": 1894, + "id": 1889, "name": "dailyLimits", "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "513:50:20", + "scope": 2110, + "src": "535:50:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "typeName": { - "id": 1893, + "id": 1888, "keyType": { - "id": 1891, + "id": 1886, "name": "address", "nodeType": "ElementaryTypeName", - "src": "522:7:20", + "src": "544:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "513:31:20", + "src": "535:31:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "valueType": { "contractScope": null, - "id": 1892, + "id": 1887, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1901, - "src": "533:10:20", + "referencedDeclaration": 1896, + "src": "555:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } } @@ -3655,15 +3655,15 @@ }, { "canonicalName": "DailyLimitModule.DailyLimit", - "id": 1901, + "id": 1896, "members": [ { "constant": false, - "id": 1896, + "id": 1891, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1901, - "src": "598:18:20", + "scope": 1896, + "src": "620:18:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3671,10 +3671,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1895, + "id": 1890, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "598:7:20", + "src": "620:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3685,11 +3685,11 @@ }, { "constant": false, - "id": 1898, + "id": 1893, "name": "spentToday", "nodeType": "VariableDeclaration", - "scope": 1901, - "src": "626:18:20", + "scope": 1896, + "src": "648:18:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3697,10 +3697,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1897, + "id": 1892, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "626:7:20", + "src": "648:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3711,11 +3711,11 @@ }, { "constant": false, - "id": 1900, + "id": 1895, "name": "lastDay", "nodeType": "VariableDeclaration", - "scope": 1901, - "src": "654:15:20", + "scope": 1896, + "src": "676:15:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3723,10 +3723,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1899, + "id": 1894, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "654:7:20", + "src": "676:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3738,15 +3738,15 @@ ], "name": "DailyLimit", "nodeType": "StructDefinition", - "scope": 2115, - "src": "570:106:20", + "scope": 2110, + "src": "592:106:17", "visibility": "public" }, { "body": { - "id": 1936, + "id": 1931, "nodeType": "Block", - "src": "994:146:20", + "src": "1016:146:17", "statements": [ { "expression": { @@ -3754,18 +3754,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1910, + "id": 1905, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 912, - "src": "1004:10:20", + "referencedDeclaration": 934, + "src": "1026:10:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1911, + "id": 1906, "isConstant": false, "isLValue": false, "isPure": false, @@ -3773,21 +3773,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1004:12:20", + "src": "1026:12:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1912, + "id": 1907, "nodeType": "ExpressionStatement", - "src": "1004:12:20" + "src": "1026:12:17" }, { "body": { "expression": { "argumentTypes": null, - "id": 1933, + "id": 1928, "isConstant": false, "isLValue": false, "isPure": false, @@ -3798,42 +3798,42 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1924, + "id": 1919, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1082:11:20", + "referencedDeclaration": 1889, + "src": "1104:11:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1928, + "id": 1923, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1925, + "id": 1920, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1904, - "src": "1094:6:20", + "referencedDeclaration": 1899, + "src": "1116:6:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1927, + "id": 1922, "indexExpression": { "argumentTypes": null, - "id": 1926, + "id": 1921, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1914, - "src": "1101:1:20", + "referencedDeclaration": 1909, + "src": "1123:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3844,7 +3844,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1094:9:20", + "src": "1116:9:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3855,21 +3855,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1082:22:20", + "src": "1104:22:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1929, + "id": 1924, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1896, - "src": "1082:33:20", + "referencedDeclaration": 1891, + "src": "1104:33:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3881,26 +3881,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1930, + "id": 1925, "name": "_dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1907, - "src": "1118:12:20", + "referencedDeclaration": 1902, + "src": "1140:12:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1932, + "id": 1927, "indexExpression": { "argumentTypes": null, - "id": 1931, + "id": 1926, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1914, - "src": "1131:1:20", + "referencedDeclaration": 1909, + "src": "1153:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3911,21 +3911,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1118:15:20", + "src": "1140:15:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1082:51:20", + "src": "1104:51:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1934, + "id": 1929, "nodeType": "ExpressionStatement", - "src": "1082:51:20" + "src": "1104:51:17" }, "condition": { "argumentTypes": null, @@ -3933,19 +3933,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1920, + "id": 1915, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1917, + "id": 1912, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1914, - "src": "1046:1:20", + "referencedDeclaration": 1909, + "src": "1068:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3957,18 +3957,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1918, + "id": 1913, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1904, - "src": "1050:6:20", + "referencedDeclaration": 1899, + "src": "1072:6:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1919, + "id": 1914, "isConstant": false, "isLValue": false, "isPure": false, @@ -3976,31 +3976,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1050:13:20", + "src": "1072:13:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1046:17:20", + "src": "1068:17:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1935, + "id": 1930, "initializationExpression": { "assignments": [ - 1914 + 1909 ], "declarations": [ { "constant": false, - "id": 1914, + "id": 1909, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1937, - "src": "1031:9:20", + "scope": 1932, + "src": "1053:9:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4008,10 +4008,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1913, + "id": 1908, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1031:7:20", + "src": "1053:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4021,18 +4021,18 @@ "visibility": "internal" } ], - "id": 1916, + "id": 1911, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1915, + "id": 1910, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1043:1:20", + "src": "1065:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4041,12 +4041,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1031:13:20" + "src": "1053:13:17" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1922, + "id": 1917, "isConstant": false, "isLValue": false, "isPure": false, @@ -4054,15 +4054,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1065:3:20", + "src": "1087:3:17", "subExpression": { "argumentTypes": null, - "id": 1921, + "id": 1916, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1914, - "src": "1065:1:20", + "referencedDeclaration": 1909, + "src": "1087:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4073,17 +4073,17 @@ "typeString": "uint256" } }, - "id": 1923, + "id": 1918, "nodeType": "ExpressionStatement", - "src": "1065:3:20" + "src": "1087:3:17" }, "nodeType": "ForStatement", - "src": "1026:107:20" + "src": "1048:107:17" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param tokens List of token addresses. Ether is represented with address 0x0.\n @param _dailyLimits List of daily limits in smalles units (e.g. Wei for Ether).", - "id": 1937, + "id": 1932, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4091,16 +4091,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 1908, + "id": 1903, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1904, + "id": 1899, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 1937, - "src": "933:16:20", + "scope": 1932, + "src": "955:16:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4109,19 +4109,19 @@ }, "typeName": { "baseType": { - "id": 1902, + "id": 1897, "name": "address", "nodeType": "ElementaryTypeName", - "src": "933:7:20", + "src": "955:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1903, + "id": 1898, "length": null, "nodeType": "ArrayTypeName", - "src": "933:9:20", + "src": "955:9:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -4132,11 +4132,11 @@ }, { "constant": false, - "id": 1907, + "id": 1902, "name": "_dailyLimits", "nodeType": "VariableDeclaration", - "scope": 1937, - "src": "951:22:20", + "scope": 1932, + "src": "973:22:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4145,19 +4145,19 @@ }, "typeName": { "baseType": { - "id": 1905, + "id": 1900, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "951:7:20", + "src": "973:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1906, + "id": 1901, "length": null, "nodeType": "ArrayTypeName", - "src": "951:9:20", + "src": "973:9:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -4167,31 +4167,31 @@ "visibility": "internal" } ], - "src": "932:42:20" + "src": "954:42:17" }, "payable": false, "returnParameters": { - "id": 1909, + "id": 1904, "nodeType": "ParameterList", "parameters": [], - "src": "994:0:20" + "src": "1016:0:17" }, - "scope": 2115, - "src": "918:222:20", + "scope": 2110, + "src": "940:222:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1953, + "id": 1948, "nodeType": "Block", - "src": "1467:59:20", + "src": "1489:59:17", "statements": [ { "expression": { "argumentTypes": null, - "id": 1951, + "id": 1946, "isConstant": false, "isLValue": false, "isPure": false, @@ -4202,26 +4202,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1946, + "id": 1941, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1477:11:20", + "referencedDeclaration": 1889, + "src": "1499:11:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1948, + "id": 1943, "indexExpression": { "argumentTypes": null, - "id": 1947, + "id": 1942, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1939, - "src": "1489:5:20", + "referencedDeclaration": 1934, + "src": "1511:5:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4232,21 +4232,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1477:18:20", + "src": "1499:18:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1949, + "id": 1944, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1896, - "src": "1477:29:20", + "referencedDeclaration": 1891, + "src": "1499:29:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4256,68 +4256,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1950, + "id": 1945, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1941, - "src": "1509:10:20", + "referencedDeclaration": 1936, + "src": "1531:10:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1477:42:20", + "src": "1499:42:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1952, + "id": 1947, "nodeType": "ExpressionStatement", - "src": "1477:42:20" + "src": "1499:42:17" } ] }, "documentation": "@dev Allows to update the daily limit for a specified token. This can only be done via a Safe transaction.\n @param token Token contract address.\n @param dailyLimit Daily limit in smallest token unit.", - "id": 1954, + "id": 1949, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1944, + "id": 1939, "modifierName": { "argumentTypes": null, - "id": 1943, + "id": 1938, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 892, - "src": "1452:10:20", + "referencedDeclaration": 914, + "src": "1474:10:17", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1452:10:20" + "src": "1474:10:17" } ], "name": "changeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1942, + "id": 1937, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1939, + "id": 1934, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1954, - "src": "1394:13:20", + "scope": 1949, + "src": "1416:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4325,10 +4325,10 @@ "typeString": "address" }, "typeName": { - "id": 1938, + "id": 1933, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1394:7:20", + "src": "1416:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4339,11 +4339,11 @@ }, { "constant": false, - "id": 1941, + "id": 1936, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1954, - "src": "1409:18:20", + "scope": 1949, + "src": "1431:18:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4351,10 +4351,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1940, + "id": 1935, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1409:7:20", + "src": "1431:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4364,26 +4364,26 @@ "visibility": "internal" } ], - "src": "1393:35:20" + "src": "1415:35:17" }, "payable": false, "returnParameters": { - "id": 1945, + "id": 1940, "nodeType": "ParameterList", "parameters": [], - "src": "1467:0:20" + "src": "1489:0:17" }, - "scope": 2115, - "src": "1368:158:20", + "scope": 2110, + "src": "1390:158:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2044, + "id": 2039, "nodeType": "Block", - "src": "1979:898:20", + "src": "2001:898:17", "statements": [ { "expression": { @@ -4396,18 +4396,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1968, + "id": 1963, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2104:3:20", + "referencedDeclaration": 4491, + "src": "2126:3:17", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1969, + "id": 1964, "isConstant": false, "isLValue": false, "isPure": false, @@ -4415,7 +4415,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2104:10:20", + "src": "2126:10:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4434,14 +4434,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1965, + "id": 1960, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "2087:7:20", + "referencedDeclaration": 900, + "src": "2109:7:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } } @@ -4449,22 +4449,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } ], - "id": 1964, + "id": 1959, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1588, - "src": "2074:12:20", + "referencedDeclaration": 1652, + "src": "2096:12:17", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1588_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", "typeString": "type(contract OwnerManager)" } }, - "id": 1966, + "id": 1961, "isConstant": false, "isLValue": false, "isPure": false, @@ -4472,27 +4472,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2074:21:20", + "src": "2096:21:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1588", + "typeIdentifier": "t_contract$_OwnerManager_$1652", "typeString": "contract OwnerManager" } }, - "id": 1967, + "id": 1962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1538, - "src": "2074:29:20", + "referencedDeclaration": 1602, + "src": "2096:29:17", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 1970, + "id": 1965, "isConstant": false, "isLValue": false, "isPure": false, @@ -4500,7 +4500,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2074:41:20", + "src": "2096:41:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4509,14 +4509,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 1971, + "id": 1966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2117:39:20", + "src": "2139:39:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", @@ -4536,21 +4536,21 @@ "typeString": "literal_string \"Method can only be called by an owner\"" } ], - "id": 1963, + "id": 1958, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2066:7:20", + "referencedDeclaration": 4495, + "src": "2088:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1972, + "id": 1967, "isConstant": false, "isLValue": false, "isPure": false, @@ -4558,15 +4558,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2066:91:20", + "src": "2088:91:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1973, + "id": 1968, "nodeType": "ExpressionStatement", - "src": "2066:91:20" + "src": "2088:91:17" }, { "expression": { @@ -4578,19 +4578,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1977, + "id": 1972, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1975, + "id": 1970, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1958, - "src": "2175:2:20", + "referencedDeclaration": 1953, + "src": "2197:2:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4601,14 +4601,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1976, + "id": 1971, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2181:1:20", + "src": "2203:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4616,7 +4616,7 @@ }, "value": "0" }, - "src": "2175:7:20", + "src": "2197:7:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4625,14 +4625,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420746f20616464726573732070726f7669646564", - "id": 1978, + "id": 1973, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2184:29:20", + "src": "2206:29:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5adba0692e08f8080ea3ec2bf95727d181df9c72d0fc6db8f77e3703d9523f1", @@ -4652,21 +4652,21 @@ "typeString": "literal_string \"Invalid to address provided\"" } ], - "id": 1974, + "id": 1969, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2167:7:20", + "referencedDeclaration": 4495, + "src": "2189:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1979, + "id": 1974, "isConstant": false, "isLValue": false, "isPure": false, @@ -4674,15 +4674,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2167:47:20", + "src": "2189:47:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1980, + "id": 1975, "nodeType": "ExpressionStatement", - "src": "2167:47:20" + "src": "2189:47:17" }, { "expression": { @@ -4694,19 +4694,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1984, + "id": 1979, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1982, + "id": 1977, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1960, - "src": "2232:6:20", + "referencedDeclaration": 1955, + "src": "2254:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4717,14 +4717,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1983, + "id": 1978, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2241:1:20", + "src": "2263:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4732,7 +4732,7 @@ }, "value": "0" }, - "src": "2232:10:20", + "src": "2254:10:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4741,14 +4741,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420616d6f756e742070726f7669646564", - "id": 1985, + "id": 1980, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2244:25:20", + "src": "2266:25:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_991bec80688b0edba4751e32429f6879002de57199ff2c6b5bf0742d348ba58f", @@ -4768,21 +4768,21 @@ "typeString": "literal_string \"Invalid amount provided\"" } ], - "id": 1981, + "id": 1976, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2224:7:20", + "referencedDeclaration": 4495, + "src": "2246:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1986, + "id": 1981, "isConstant": false, "isLValue": false, "isPure": false, @@ -4790,15 +4790,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2224:46:20", + "src": "2246:46:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1987, + "id": 1982, "nodeType": "ExpressionStatement", - "src": "2224:46:20" + "src": "2246:46:17" }, { "expression": { @@ -4809,12 +4809,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1990, + "id": 1985, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1956, - "src": "2365:5:20", + "referencedDeclaration": 1951, + "src": "2387:5:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4822,12 +4822,12 @@ }, { "argumentTypes": null, - "id": 1991, + "id": 1986, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1960, - "src": "2372:6:20", + "referencedDeclaration": 1955, + "src": "2394:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4845,18 +4845,18 @@ "typeString": "uint256" } ], - "id": 1989, + "id": 1984, "name": "isUnderLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2101, - "src": "2352:12:20", + "referencedDeclaration": 2096, + "src": "2374:12:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) returns (bool)" } }, - "id": 1992, + "id": 1987, "isConstant": false, "isLValue": false, "isPure": false, @@ -4864,7 +4864,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2352:27:20", + "src": "2374:27:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4873,14 +4873,14 @@ { "argumentTypes": null, "hexValue": "4461696c79206c696d697420686173206265656e2072656163686564", - "id": 1993, + "id": 1988, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2381:30:20", + "src": "2403:30:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c8c9a9731e3c1970f356c6998c7e6418ab5b55402b68846f03a8bbe49c05905", @@ -4900,21 +4900,21 @@ "typeString": "literal_string \"Daily limit has been reached\"" } ], - "id": 1988, + "id": 1983, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2344:7:20", + "referencedDeclaration": 4495, + "src": "2366:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1994, + "id": 1989, "isConstant": false, "isLValue": false, "isPure": false, @@ -4922,20 +4922,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2344:68:20", + "src": "2366:68:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1995, + "id": 1990, "nodeType": "ExpressionStatement", - "src": "2344:68:20" + "src": "2366:68:17" }, { "expression": { "argumentTypes": null, - "id": 2001, + "id": 1996, "isConstant": false, "isLValue": false, "isPure": false, @@ -4946,26 +4946,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1996, + "id": 1991, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "2422:11:20", + "referencedDeclaration": 1889, + "src": "2444:11:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1998, + "id": 1993, "indexExpression": { "argumentTypes": null, - "id": 1997, + "id": 1992, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1956, - "src": "2434:5:20", + "referencedDeclaration": 1951, + "src": "2456:5:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4976,21 +4976,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2422:18:20", + "src": "2444:18:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1999, + "id": 1994, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1898, - "src": "2422:29:20", + "referencedDeclaration": 1893, + "src": "2444:29:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5000,26 +5000,26 @@ "operator": "+=", "rightHandSide": { "argumentTypes": null, - "id": 2000, + "id": 1995, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1960, - "src": "2455:6:20", + "referencedDeclaration": 1955, + "src": "2477:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2422:39:20", + "src": "2444:39:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2002, + "id": 1997, "nodeType": "ExpressionStatement", - "src": "2422:39:20" + "src": "2444:39:17" }, { "condition": { @@ -5028,19 +5028,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2005, + "id": 2000, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2003, + "id": 1998, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1956, - "src": "2475:5:20", + "referencedDeclaration": 1951, + "src": "2497:5:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5051,14 +5051,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2004, + "id": 1999, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2484:1:20", + "src": "2506:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5066,29 +5066,29 @@ }, "value": "0" }, - "src": "2475:10:20", + "src": "2497:10:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2042, + "id": 2037, "nodeType": "Block", - "src": "2633:238:20", + "src": "2655:238:17", "statements": [ { "assignments": [ - 2021 + 2016 ], "declarations": [ { "constant": false, - "id": 2021, + "id": 2016, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2045, - "src": "2647:17:20", + "scope": 2040, + "src": "2669:17:17", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5096,10 +5096,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2020, + "id": 2015, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2647:5:20", + "src": "2669:5:17", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5109,21 +5109,21 @@ "visibility": "internal" } ], - "id": 2028, + "id": 2023, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 2024, + "id": 2019, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2691:27:20", + "src": "2713:27:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", @@ -5133,12 +5133,12 @@ }, { "argumentTypes": null, - "id": 2025, + "id": 2020, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1958, - "src": "2720:2:20", + "referencedDeclaration": 1953, + "src": "2742:2:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5146,12 +5146,12 @@ }, { "argumentTypes": null, - "id": 2026, + "id": 2021, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1960, - "src": "2724:6:20", + "referencedDeclaration": 1955, + "src": "2746:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5175,18 +5175,18 @@ ], "expression": { "argumentTypes": null, - "id": 2022, + "id": 2017, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "2667:3:20", + "referencedDeclaration": 4478, + "src": "2689:3:17", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 2023, + "id": 2018, "isConstant": false, "isLValue": false, "isPure": true, @@ -5194,13 +5194,13 @@ "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2667:23:20", + "src": "2689:23:17", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 2027, + "id": 2022, "isConstant": false, "isLValue": false, "isPure": false, @@ -5208,14 +5208,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2667:64:20", + "src": "2689:64:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2647:84:20" + "src": "2669:84:17" }, { "expression": { @@ -5226,12 +5226,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2032, + "id": 2027, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1956, - "src": "2787:5:20", + "referencedDeclaration": 1951, + "src": "2809:5:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5240,14 +5240,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2033, + "id": 2028, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2794:1:20", + "src": "2816:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5257,12 +5257,12 @@ }, { "argumentTypes": null, - "id": 2034, + "id": 2029, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2021, - "src": "2797:4:20", + "referencedDeclaration": 2016, + "src": "2819:4:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5274,32 +5274,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2035, + "id": 2030, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "2803:4:20", + "referencedDeclaration": 1659, + "src": "2825:4:17", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", "typeString": "type(contract Enum)" } }, - "id": 2036, + "id": 2031, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "2803:14:20", + "referencedDeclaration": 1658, + "src": "2825:14:17", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2037, + "id": 2032, "isConstant": false, "isLValue": false, "isPure": true, @@ -5307,9 +5307,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2803:19:20", + "src": "2825:19:17", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } } @@ -5329,38 +5329,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2030, + "id": 2025, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "2753:7:20", + "referencedDeclaration": 900, + "src": "2775:7:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, - "id": 2031, + "id": 2026, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1106, - "src": "2753:33:20", + "referencedDeclaration": 1138, + "src": "2775:33:17", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2038, + "id": 2033, "isConstant": false, "isLValue": false, "isPure": false, @@ -5368,7 +5368,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2753:70:20", + "src": "2775:70:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5377,14 +5377,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74206578656375746520746f6b656e207472616e73666572", - "id": 2039, + "id": 2034, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2825:34:20", + "src": "2847:34:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_00c0b742664159361be6aebbe2af44c4ae7eb95e13260265d1e1cf75d2593709", @@ -5404,21 +5404,21 @@ "typeString": "literal_string \"Could not execute token transfer\"" } ], - "id": 2029, + "id": 2024, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2745:7:20", + "referencedDeclaration": 4495, + "src": "2767:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2040, + "id": 2035, "isConstant": false, "isLValue": false, "isPure": false, @@ -5426,25 +5426,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2745:115:20", + "src": "2767:115:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2041, + "id": 2036, "nodeType": "ExpressionStatement", - "src": "2745:115:20" + "src": "2767:115:17" } ] }, - "id": 2043, + "id": 2038, "nodeType": "IfStatement", - "src": "2471:400:20", + "src": "2493:400:17", "trueBody": { - "id": 2019, + "id": 2014, "nodeType": "Block", - "src": "2487:140:20", + "src": "2509:140:17", "statements": [ { "expression": { @@ -5455,12 +5455,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2009, + "id": 2004, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1958, - "src": "2543:2:20", + "referencedDeclaration": 1953, + "src": "2565:2:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5468,12 +5468,12 @@ }, { "argumentTypes": null, - "id": 2010, + "id": 2005, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1960, - "src": "2547:6:20", + "referencedDeclaration": 1955, + "src": "2569:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5482,14 +5482,14 @@ { "argumentTypes": null, "hexValue": "", - "id": 2011, + "id": 2006, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2555:2:20", + "src": "2577:2:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -5503,32 +5503,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2012, + "id": 2007, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "2559:4:20", + "referencedDeclaration": 1659, + "src": "2581:4:17", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", "typeString": "type(contract Enum)" } }, - "id": 2013, + "id": 2008, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "2559:14:20", + "referencedDeclaration": 1658, + "src": "2581:14:17", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2014, + "id": 2009, "isConstant": false, "isLValue": false, "isPure": true, @@ -5536,9 +5536,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2559:19:20", + "src": "2581:19:17", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } } @@ -5558,38 +5558,38 @@ "typeString": "literal_string \"\"" }, { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2007, + "id": 2002, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "2509:7:20", + "referencedDeclaration": 900, + "src": "2531:7:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, - "id": 2008, + "id": 2003, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1106, - "src": "2509:33:20", + "referencedDeclaration": 1138, + "src": "2531:33:17", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2015, + "id": 2010, "isConstant": false, "isLValue": false, "isPure": false, @@ -5597,7 +5597,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2509:70:20", + "src": "2531:70:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5606,14 +5606,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465206574686572207472616e73666572", - "id": 2016, + "id": 2011, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2581:34:20", + "src": "2603:34:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2fae53cac084168982e43888b6e5eff084959ab65d511777b56b4cbb265d2586", @@ -5633,21 +5633,21 @@ "typeString": "literal_string \"Could not execute ether transfer\"" } ], - "id": 2006, + "id": 2001, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2501:7:20", + "referencedDeclaration": 4495, + "src": "2523:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2017, + "id": 2012, "isConstant": false, "isLValue": false, "isPure": false, @@ -5655,15 +5655,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2501:115:20", + "src": "2523:115:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2018, + "id": 2013, "nodeType": "ExpressionStatement", - "src": "2501:115:20" + "src": "2523:115:17" } ] } @@ -5671,7 +5671,7 @@ ] }, "documentation": "@dev Returns if Safe transaction is a valid daily limit transaction.\n @param token Address of the token that should be transfered (0 for Ether)\n @param to Address to which the tokens should be transfered\n @param amount Amount of tokens (or Ether) that should be transfered\n @return Returns if transaction can be executed.", - "id": 2045, + "id": 2040, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5679,16 +5679,16 @@ "name": "executeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1961, + "id": 1956, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1956, + "id": 1951, "name": "token", "nodeType": "VariableDeclaration", - "scope": 2045, - "src": "1917:13:20", + "scope": 2040, + "src": "1939:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5696,10 +5696,10 @@ "typeString": "address" }, "typeName": { - "id": 1955, + "id": 1950, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1917:7:20", + "src": "1939:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5710,11 +5710,11 @@ }, { "constant": false, - "id": 1958, + "id": 1953, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2045, - "src": "1932:10:20", + "scope": 2040, + "src": "1954:10:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5722,10 +5722,10 @@ "typeString": "address" }, "typeName": { - "id": 1957, + "id": 1952, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1932:7:20", + "src": "1954:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5736,11 +5736,11 @@ }, { "constant": false, - "id": 1960, + "id": 1955, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2045, - "src": "1944:14:20", + "scope": 2040, + "src": "1966:14:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5748,10 +5748,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1959, + "id": 1954, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1944:7:20", + "src": "1966:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5761,54 +5761,54 @@ "visibility": "internal" } ], - "src": "1916:43:20" + "src": "1938:43:17" }, "payable": false, "returnParameters": { - "id": 1962, + "id": 1957, "nodeType": "ParameterList", "parameters": [], - "src": "1979:0:20" + "src": "2001:0:17" }, - "scope": 2115, - "src": "1890:987:20", + "scope": 2110, + "src": "1912:987:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2100, + "id": 2095, "nodeType": "Block", - "src": "2980:389:20", + "src": "3002:389:17", "statements": [ { "assignments": [ - 2055 + 2050 ], "declarations": [ { "constant": false, - "id": 2055, + "id": 2050, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 2101, - "src": "2990:29:20", + "scope": 2096, + "src": "3012:29:17", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" }, "typeName": { "contractScope": null, - "id": 2054, + "id": 2049, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1901, - "src": "2990:10:20", + "referencedDeclaration": 1896, + "src": "3012:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } }, @@ -5816,31 +5816,31 @@ "visibility": "internal" } ], - "id": 2059, + "id": 2054, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2056, + "id": 2051, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "3022:11:20", + "referencedDeclaration": 1889, + "src": "3044:11:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 2058, + "id": 2053, "indexExpression": { "argumentTypes": null, - "id": 2057, + "id": 2052, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2047, - "src": "3034:5:20", + "referencedDeclaration": 2042, + "src": "3056:5:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5851,14 +5851,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3022:18:20", + "src": "3044:18:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "2990:50:20" + "src": "3012:50:17" }, { "condition": { @@ -5867,7 +5867,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2064, + "id": 2059, "isConstant": false, "isLValue": false, "isPure": false, @@ -5877,18 +5877,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2060, + "id": 2055, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2114, - "src": "3054:5:20", + "referencedDeclaration": 2109, + "src": "3076:5:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 2061, + "id": 2056, "isConstant": false, "isLValue": false, "isPure": false, @@ -5896,7 +5896,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3054:7:20", + "src": "3076:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5908,50 +5908,50 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2062, + "id": 2057, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2055, - "src": "3064:10:20", + "referencedDeclaration": 2050, + "src": "3086:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2063, + "id": 2058, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 1900, - "src": "3064:18:20", + "referencedDeclaration": 1895, + "src": "3086:18:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3054:28:20", + "src": "3076:28:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2079, + "id": 2074, "nodeType": "IfStatement", - "src": "3050:126:20", + "src": "3072:126:17", "trueBody": { - "id": 2078, + "id": 2073, "nodeType": "Block", - "src": "3084:92:20", + "src": "3106:92:17", "statements": [ { "expression": { "argumentTypes": null, - "id": 2070, + "id": 2065, "isConstant": false, "isLValue": false, "isPure": false, @@ -5960,26 +5960,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2065, + "id": 2060, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2055, - "src": "3098:10:20", + "referencedDeclaration": 2050, + "src": "3120:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2067, + "id": 2062, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 1900, - "src": "3098:18:20", + "referencedDeclaration": 1895, + "src": "3120:18:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5992,18 +5992,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2068, + "id": 2063, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2114, - "src": "3119:5:20", + "referencedDeclaration": 2109, + "src": "3141:5:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 2069, + "id": 2064, "isConstant": false, "isLValue": false, "isPure": false, @@ -6011,26 +6011,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3119:7:20", + "src": "3141:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3098:28:20", + "src": "3120:28:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2071, + "id": 2066, "nodeType": "ExpressionStatement", - "src": "3098:28:20" + "src": "3120:28:17" }, { "expression": { "argumentTypes": null, - "id": 2076, + "id": 2071, "isConstant": false, "isLValue": false, "isPure": false, @@ -6039,26 +6039,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2072, + "id": 2067, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2055, - "src": "3140:10:20", + "referencedDeclaration": 2050, + "src": "3162:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2074, + "id": 2069, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1898, - "src": "3140:21:20", + "referencedDeclaration": 1893, + "src": "3162:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6069,14 +6069,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2075, + "id": 2070, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3164:1:20", + "src": "3186:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6084,15 +6084,15 @@ }, "value": "0" }, - "src": "3140:25:20", + "src": "3162:25:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2077, + "id": 2072, "nodeType": "ExpressionStatement", - "src": "3140:25:20" + "src": "3162:25:17" } ] } @@ -6104,7 +6104,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2094, + "id": 2089, "isConstant": false, "isLValue": false, "isPure": false, @@ -6115,7 +6115,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2086, + "id": 2081, "isConstant": false, "isLValue": false, "isPure": false, @@ -6126,7 +6126,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2083, + "id": 2078, "isConstant": false, "isLValue": false, "isPure": false, @@ -6135,26 +6135,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2080, + "id": 2075, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2055, - "src": "3189:10:20", + "referencedDeclaration": 2050, + "src": "3211:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2081, + "id": 2076, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1898, - "src": "3189:21:20", + "referencedDeclaration": 1893, + "src": "3211:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6164,18 +6164,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2082, + "id": 2077, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2049, - "src": "3213:6:20", + "referencedDeclaration": 2044, + "src": "3235:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3189:30:20", + "src": "3211:30:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6187,32 +6187,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2084, + "id": 2079, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2055, - "src": "3223:10:20", + "referencedDeclaration": 2050, + "src": "3245:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2085, + "id": 2080, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1896, - "src": "3223:21:20", + "referencedDeclaration": 1891, + "src": "3245:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3189:55:20", + "src": "3211:55:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6226,7 +6226,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2093, + "id": 2088, "isConstant": false, "isLValue": false, "isPure": false, @@ -6237,7 +6237,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2090, + "id": 2085, "isConstant": false, "isLValue": false, "isPure": false, @@ -6246,26 +6246,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2087, + "id": 2082, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2055, - "src": "3261:10:20", + "referencedDeclaration": 2050, + "src": "3283:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2088, + "id": 2083, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1898, - "src": "3261:21:20", + "referencedDeclaration": 1893, + "src": "3283:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6275,18 +6275,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2089, + "id": 2084, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2049, - "src": "3285:6:20", + "referencedDeclaration": 2044, + "src": "3307:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3261:30:20", + "src": "3283:30:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6298,59 +6298,59 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2091, + "id": 2086, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2055, - "src": "3294:10:20", + "referencedDeclaration": 2050, + "src": "3316:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2092, + "id": 2087, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1898, - "src": "3294:21:20", + "referencedDeclaration": 1893, + "src": "3316:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3261:54:20", + "src": "3283:54:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3189:126:20", + "src": "3211:126:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2097, + "id": 2092, "nodeType": "IfStatement", - "src": "3185:155:20", + "src": "3207:155:17", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2095, + "id": 2090, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3336:4:20", + "src": "3358:4:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6358,24 +6358,24 @@ }, "value": "true" }, - "functionReturnParameters": 2053, - "id": 2096, + "functionReturnParameters": 2048, + "id": 2091, "nodeType": "Return", - "src": "3329:11:20" + "src": "3351:11:17" } }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2098, + "id": 2093, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3357:5:20", + "src": "3379:5:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6383,15 +6383,15 @@ }, "value": "false" }, - "functionReturnParameters": 2053, - "id": 2099, + "functionReturnParameters": 2048, + "id": 2094, "nodeType": "Return", - "src": "3350:12:20" + "src": "3372:12:17" } ] }, "documentation": null, - "id": 2101, + "id": 2096, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6399,16 +6399,16 @@ "name": "isUnderLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 2050, + "id": 2045, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2047, + "id": 2042, "name": "token", "nodeType": "VariableDeclaration", - "scope": 2101, - "src": "2905:13:20", + "scope": 2096, + "src": "2927:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6416,10 +6416,10 @@ "typeString": "address" }, "typeName": { - "id": 2046, + "id": 2041, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2905:7:20", + "src": "2927:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6430,11 +6430,11 @@ }, { "constant": false, - "id": 2049, + "id": 2044, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2101, - "src": "2920:14:20", + "scope": 2096, + "src": "2942:14:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6442,10 +6442,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2048, + "id": 2043, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2920:7:20", + "src": "2942:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6455,20 +6455,20 @@ "visibility": "internal" } ], - "src": "2904:31:20" + "src": "2926:31:17" }, "payable": false, "returnParameters": { - "id": 2053, + "id": 2048, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2052, + "id": 2047, "name": "", "nodeType": "VariableDeclaration", - "scope": 2101, - "src": "2970:4:20", + "scope": 2096, + "src": "2992:4:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6476,10 +6476,10 @@ "typeString": "bool" }, "typeName": { - "id": 2051, + "id": 2046, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2970:4:20", + "src": "2992:4:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6489,19 +6489,19 @@ "visibility": "internal" } ], - "src": "2969:6:20" + "src": "2991:6:17" }, - "scope": 2115, - "src": "2883:486:20", + "scope": 2110, + "src": "2905:486:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2113, + "id": 2108, "nodeType": "Block", - "src": "3533:44:20", + "src": "3555:44:17", "statements": [ { "expression": { @@ -6510,19 +6510,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2111, + "id": 2106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2106, + "id": 2101, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "3550:3:20", + "referencedDeclaration": 4493, + "src": "3572:3:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6539,19 +6539,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2109, + "id": 2104, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2107, + "id": 2102, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "3557:3:20", + "referencedDeclaration": 4493, + "src": "3579:3:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6562,14 +6562,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2108, + "id": 2103, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3563:6:20", + "src": "3585:6:17", "subdenomination": "days", "typeDescriptions": { "typeIdentifier": "t_rational_86400_by_1", @@ -6577,41 +6577,41 @@ }, "value": "1" }, - "src": "3557:12:20", + "src": "3579:12:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2110, + "id": 2105, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3556:14:20", + "src": "3578:14:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3550:20:20", + "src": "3572:20:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2105, - "id": 2112, + "functionReturnParameters": 2100, + "id": 2107, "nodeType": "Return", - "src": "3543:27:20" + "src": "3565:27:17" } ] }, "documentation": "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp.", - "id": 2114, + "id": 2109, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6619,23 +6619,23 @@ "name": "today", "nodeType": "FunctionDefinition", "parameters": { - "id": 2102, + "id": 2097, "nodeType": "ParameterList", "parameters": [], - "src": "3475:2:20" + "src": "3497:2:17" }, "payable": false, "returnParameters": { - "id": 2105, + "id": 2100, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2104, + "id": 2099, "name": "", "nodeType": "VariableDeclaration", - "scope": 2114, - "src": "3523:4:20", + "scope": 2109, + "src": "3545:4:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6643,10 +6643,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2103, + "id": 2098, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3523:4:20", + "src": "3545:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6656,20 +6656,20 @@ "visibility": "internal" } ], - "src": "3522:6:20" + "src": "3544:6:17" }, - "scope": 2115, - "src": "3461:116:20", + "scope": 2110, + "src": "3483:116:17", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 2116, - "src": "296:3283:20" + "scope": 2111, + "src": "318:3283:17" } ], - "src": "0:3580:20" + "src": "0:3602:17" }, "compiler": { "name": "solc", @@ -6679,16 +6679,10 @@ "4": { "events": {}, "links": {}, - "address": "0x1708116ae4531c809100befcfeb0e1d0743ebce3", - "transactionHash": "0x897eb698c0aa6bb52ff33520faf85f7db76e4a2c8cc2e309b56baffa47204b8d" - }, - "1534750848541": { - "events": {}, - "links": {}, - "address": "0x7c728214be9a0049e6a86f2137ec61030d0aa964", - "transactionHash": "0x92a76a340a62bace4afeeea2b945c577aa5e9040fb0a8c0137e10f6295590231" + "address": "0xb2fdbcdbb9b57c5fbc91073840344a015708b480", + "transactionHash": "0x73a2310190df9e9a2d0b58d3ad2221e0650cb3971a657fe91ca2d86f86c247e8" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:50:29.696Z" + "updatedAt": "2018-09-26T08:56:03.722Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/DelegateConstructorProxy.json b/safe-contracts/build/contracts/DelegateConstructorProxy.json index e92e685b..6d1ce729 100644 --- a/safe-contracts/build/contracts/DelegateConstructorProxy.json +++ b/safe-contracts/build/contracts/DelegateConstructorProxy.json @@ -50,40 +50,40 @@ "type": "fallback" } ], - "bytecode": "0x608060405234801561001057600080fd5b506040516102fc3803806102fc83398101806040528101908080519060200190929190805182019291905050508160008173ffffffffffffffffffffffffffffffffffffffff16141515156100f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000815111156101805773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e600082141561017c573d81fd5b5050505b505061016b806101916000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820bab5357556c704bffef0f96326dd27742408be175057ffd8f4f58237314cfd520029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820bab5357556c704bffef0f96326dd27742408be175057ffd8f4f58237314cfd520029", - "sourceMap": "355:882:0:-;;;610:625;8:9:-1;5:2;;;30:1;27;20:12;5:2;610:625:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:11;593:1:13;578:11;:16;;;;570:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;658:11;645:10;;:24;;;;;;;;;;;;;;;;;;508:168;735:1:0;714:11;:18;:22;710:519;;;879:42;875:1;869:8;865:57;1043:1;1040;1026:11;1020:18;1013:4;1000:11;996:22;984:10;976:5;971:3;967:15;954:91;1079:4;1073:11;1124:14;1121:1;1116:3;1101:38;1171:1;1162:7;1159:14;1156:2;;;1188:14;1183:3;1176:27;1156:2;829:390;;;;610:625;;355:882;;;;;;", - "deployedSourceMap": "355:882:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;955:42:13;951:1;945:8;941:57;1030:14;1027:1;1024;1011:34;1125:1;1122;1106:14;1103:1;1091:10;1086:3;1073:54;1161:16;1158:1;1155;1140:38;1206:1;1197:7;1194:14;1191:2;;;1221:16;1218:1;1211:27;1191:2;1263:16;1260:1;1253:27;1426:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1426:104:13;;;;;;;;;;;;;;;;;;;;;;;1302:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302:118:13;;;;;;;;;;;;;;;;;;;;;;;;;;;1426:104;1492:7;1522:1;1515:8;;1426:104;:::o;1302:118::-;1373:7;1403:10;;;;;;;;;;;1396:17;;1302:118;:::o", + "bytecode": "0x608060405234801561001057600080fd5b506040516102fc3803806102fc83398101806040528101908080519060200190929190805182019291905050508160008173ffffffffffffffffffffffffffffffffffffffff16141515156100f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000815111156101805773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e600082141561017c573d81fd5b5050505b505061016b806101916000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820b2de5726e0943c0fae0f20300b651ccee9090eab24beaf21fd7dbc55f5eef5970029", + "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820b2de5726e0943c0fae0f20300b651ccee9090eab24beaf21fd7dbc55f5eef5970029", + "sourceMap": "355:882:21:-;;;610:625;8:9:-1;5:2;;;30:1;27;20:12;5:2;610:625:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:11;593:1:23;578:11;:16;;;;570:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;658:11;645:10;;:24;;;;;;;;;;;;;;;;;;508:168;735:1:21;714:11;:18;:22;710:519;;;879:42;875:1;869:8;865:57;1043:1;1040;1026:11;1020:18;1013:4;1000:11;996:22;984:10;976:5;971:3;967:15;954:91;1079:4;1073:11;1124:14;1121:1;1116:3;1101:38;1171:1;1162:7;1159:14;1156:2;;;1188:14;1183:3;1176:27;1156:2;829:390;;;;610:625;;355:882;;;;;;", + "deployedSourceMap": "355:882:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;955:42:23;951:1;945:8;941:57;1030:14;1027:1;1024;1011:34;1125:1;1122;1106:14;1103:1;1091:10;1086:3;1073:54;1161:16;1158:1;1155;1140:38;1206:1;1197:7;1194:14;1191:2;;;1221:16;1218:1;1211:27;1191:2;1263:16;1260:1;1253:27;1426:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1426:104:23;;;;;;;;;;;;;;;;;;;;;;;1302:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302:118:23;;;;;;;;;;;;;;;;;;;;;;;;;;;1426:104;1492:7;1522:1;1515:8;;1426:104;:::o;1302:118::-;1373:7;1403:10;;;;;;;;;;;1396:17;;1302:118;:::o", "source": "pragma solidity 0.4.24;\nimport \"./Proxy.sol\";\n\n\n/// @title Delegate Constructor Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract DelegateConstructorProxy is Proxy {\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n /// @param initializer Data used for a delegate call to initialize the contract.\n constructor(address _masterCopy, bytes initializer) Proxy(_masterCopy)\n public\n {\n if (initializer.length > 0) {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n let success := delegatecall(sub(gas, 10000), masterCopy, add(initializer, 0x20), mload(initializer), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize)\n if eq(success, 0) { revert(ptr, returndatasize) }\n }\n }\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/DelegateConstructorProxy.sol", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/DelegateConstructorProxy.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", "exportedSymbols": { "DelegateConstructorProxy": [ - 23 + 2740 ] }, - "id": 24, + "id": 2741, "nodeType": "SourceUnit", "nodes": [ { - "id": 1, + "id": 2718, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:0" + "src": "0:23:21" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", "file": "./Proxy.sol", - "id": 2, + "id": 2719, "nodeType": "ImportDirective", - "scope": 24, - "sourceUnit": 1689, - "src": "24:21:0", + "scope": 2741, + "sourceUnit": 2841, + "src": "24:21:21", "symbolAliases": [], "unitAlias": "" }, @@ -93,40 +93,40 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3, + "id": 2720, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1688, - "src": "392:5:0", + "referencedDeclaration": 2840, + "src": "392:5:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } }, - "id": 4, + "id": 2721, "nodeType": "InheritanceSpecifier", - "src": "392:5:0" + "src": "392:5:21" } ], "contractDependencies": [ - 1688 + 2840 ], "contractKind": "contract", "documentation": "@title Delegate Constructor Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 23, + "id": 2740, "linearizedBaseContracts": [ - 23, - 1688 + 2740, + 2840 ], "name": "DelegateConstructorProxy", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 21, + "id": 2738, "nodeType": "Block", - "src": "700:535:0", + "src": "700:535:21", "statements": [ { "condition": { @@ -135,7 +135,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 17, + "id": 2734, "isConstant": false, "isLValue": false, "isPure": false, @@ -144,18 +144,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 14, + "id": 2731, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "714:11:0", + "referencedDeclaration": 2725, + "src": "714:11:21", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 15, + "id": 2732, "isConstant": false, "isLValue": false, "isPure": false, @@ -163,7 +163,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "714:18:0", + "src": "714:18:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -174,14 +174,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 16, + "id": 2733, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "735:1:0", + "src": "735:1:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -189,46 +189,46 @@ }, "value": "0" }, - "src": "714:22:0", + "src": "714:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 20, + "id": 2737, "nodeType": "IfStatement", - "src": "710:519:0", + "src": "710:519:21", "trueBody": { - "id": 19, + "id": 2736, "nodeType": "Block", - "src": "738:491:0", + "src": "738:491:21", "statements": [ { "externalReferences": [ { "initializer": { - "declaration": 8, + "declaration": 2725, "isOffset": false, "isSlot": false, - "src": "1000:11:0", + "src": "1026:11:21", "valueSize": 1 } }, { "initializer": { - "declaration": 8, + "declaration": 2725, "isOffset": false, "isSlot": false, - "src": "1026:11:0", + "src": "1000:11:21", "valueSize": 1 } } ], - "id": 18, + "id": 2735, "nodeType": "InlineAssembly", "operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n let success := delegatecall(sub(gas(), 10000), masterCopy, add(initializer, 0x20), mload(initializer), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n if eq(success, 0)\n {\n revert(ptr, returndatasize())\n }\n}", - "src": "820:409:0" + "src": "820:409:21" } ] } @@ -236,7 +236,7 @@ ] }, "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.", - "id": 22, + "id": 2739, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -245,49 +245,49 @@ "arguments": [ { "argumentTypes": null, - "id": 11, + "id": 2728, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "668:11:0", + "referencedDeclaration": 2723, + "src": "668:11:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 12, + "id": 2729, "modifierName": { "argumentTypes": null, - "id": 10, + "id": 2727, "name": "Proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1688, - "src": "662:5:0", + "referencedDeclaration": 2840, + "src": "662:5:21", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$1688_$", + "typeIdentifier": "t_type$_t_contract$_Proxy_$2840_$", "typeString": "type(contract Proxy)" } }, "nodeType": "ModifierInvocation", - "src": "662:18:0" + "src": "662:18:21" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 9, + "id": 2726, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6, + "id": 2723, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 22, - "src": "622:19:0", + "scope": 2739, + "src": "622:19:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -295,10 +295,10 @@ "typeString": "address" }, "typeName": { - "id": 5, + "id": 2722, "name": "address", "nodeType": "ElementaryTypeName", - "src": "622:7:0", + "src": "622:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -309,11 +309,11 @@ }, { "constant": false, - "id": 8, + "id": 2725, "name": "initializer", "nodeType": "VariableDeclaration", - "scope": 22, - "src": "643:17:0", + "scope": 2739, + "src": "643:17:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -321,10 +321,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7, + "id": 2724, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "643:5:0", + "src": "643:5:21", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -334,56 +334,56 @@ "visibility": "internal" } ], - "src": "621:40:0" + "src": "621:40:21" }, "payable": false, "returnParameters": { - "id": 13, + "id": 2730, "nodeType": "ParameterList", "parameters": [], - "src": "700:0:0" + "src": "700:0:21" }, - "scope": 23, - "src": "610:625:0", + "scope": 2740, + "src": "610:625:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 24, - "src": "355:882:0" + "scope": 2741, + "src": "355:882:21" } ], - "src": "0:1238:0" + "src": "0:1238:21" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/DelegateConstructorProxy.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", "exportedSymbols": { "DelegateConstructorProxy": [ - 23 + 2740 ] }, - "id": 24, + "id": 2741, "nodeType": "SourceUnit", "nodes": [ { - "id": 1, + "id": 2718, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:0" + "src": "0:23:21" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", "file": "./Proxy.sol", - "id": 2, + "id": 2719, "nodeType": "ImportDirective", - "scope": 24, - "sourceUnit": 1689, - "src": "24:21:0", + "scope": 2741, + "sourceUnit": 2841, + "src": "24:21:21", "symbolAliases": [], "unitAlias": "" }, @@ -393,40 +393,40 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3, + "id": 2720, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1688, - "src": "392:5:0", + "referencedDeclaration": 2840, + "src": "392:5:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } }, - "id": 4, + "id": 2721, "nodeType": "InheritanceSpecifier", - "src": "392:5:0" + "src": "392:5:21" } ], "contractDependencies": [ - 1688 + 2840 ], "contractKind": "contract", "documentation": "@title Delegate Constructor Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 23, + "id": 2740, "linearizedBaseContracts": [ - 23, - 1688 + 2740, + 2840 ], "name": "DelegateConstructorProxy", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 21, + "id": 2738, "nodeType": "Block", - "src": "700:535:0", + "src": "700:535:21", "statements": [ { "condition": { @@ -435,7 +435,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 17, + "id": 2734, "isConstant": false, "isLValue": false, "isPure": false, @@ -444,18 +444,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 14, + "id": 2731, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "714:11:0", + "referencedDeclaration": 2725, + "src": "714:11:21", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 15, + "id": 2732, "isConstant": false, "isLValue": false, "isPure": false, @@ -463,7 +463,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "714:18:0", + "src": "714:18:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -474,14 +474,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 16, + "id": 2733, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "735:1:0", + "src": "735:1:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -489,46 +489,46 @@ }, "value": "0" }, - "src": "714:22:0", + "src": "714:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 20, + "id": 2737, "nodeType": "IfStatement", - "src": "710:519:0", + "src": "710:519:21", "trueBody": { - "id": 19, + "id": 2736, "nodeType": "Block", - "src": "738:491:0", + "src": "738:491:21", "statements": [ { "externalReferences": [ { "initializer": { - "declaration": 8, + "declaration": 2725, "isOffset": false, "isSlot": false, - "src": "1000:11:0", + "src": "1026:11:21", "valueSize": 1 } }, { "initializer": { - "declaration": 8, + "declaration": 2725, "isOffset": false, "isSlot": false, - "src": "1026:11:0", + "src": "1000:11:21", "valueSize": 1 } } ], - "id": 18, + "id": 2735, "nodeType": "InlineAssembly", "operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n let success := delegatecall(sub(gas(), 10000), masterCopy, add(initializer, 0x20), mload(initializer), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n if eq(success, 0)\n {\n revert(ptr, returndatasize())\n }\n}", - "src": "820:409:0" + "src": "820:409:21" } ] } @@ -536,7 +536,7 @@ ] }, "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.", - "id": 22, + "id": 2739, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -545,49 +545,49 @@ "arguments": [ { "argumentTypes": null, - "id": 11, + "id": 2728, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "668:11:0", + "referencedDeclaration": 2723, + "src": "668:11:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 12, + "id": 2729, "modifierName": { "argumentTypes": null, - "id": 10, + "id": 2727, "name": "Proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1688, - "src": "662:5:0", + "referencedDeclaration": 2840, + "src": "662:5:21", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$1688_$", + "typeIdentifier": "t_type$_t_contract$_Proxy_$2840_$", "typeString": "type(contract Proxy)" } }, "nodeType": "ModifierInvocation", - "src": "662:18:0" + "src": "662:18:21" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 9, + "id": 2726, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6, + "id": 2723, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 22, - "src": "622:19:0", + "scope": 2739, + "src": "622:19:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -595,10 +595,10 @@ "typeString": "address" }, "typeName": { - "id": 5, + "id": 2722, "name": "address", "nodeType": "ElementaryTypeName", - "src": "622:7:0", + "src": "622:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -609,11 +609,11 @@ }, { "constant": false, - "id": 8, + "id": 2725, "name": "initializer", "nodeType": "VariableDeclaration", - "scope": 22, - "src": "643:17:0", + "scope": 2739, + "src": "643:17:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -621,10 +621,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7, + "id": 2724, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "643:5:0", + "src": "643:5:21", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -634,27 +634,27 @@ "visibility": "internal" } ], - "src": "621:40:0" + "src": "621:40:21" }, "payable": false, "returnParameters": { - "id": 13, + "id": 2730, "nodeType": "ParameterList", "parameters": [], - "src": "700:0:0" + "src": "700:0:21" }, - "scope": 23, - "src": "610:625:0", + "scope": 2740, + "src": "610:625:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 24, - "src": "355:882:0" + "scope": 2741, + "src": "355:882:21" } ], - "src": "0:1238:0" + "src": "0:1238:21" }, "compiler": { "name": "solc", @@ -662,5 +662,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.083Z" + "updatedAt": "2018-09-26T08:32:07.650Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/Enum.json b/safe-contracts/build/contracts/Enum.json index 448fa045..e9353e0b 100644 --- a/safe-contracts/build/contracts/Enum.json +++ b/safe-contracts/build/contracts/Enum.json @@ -1,31 +1,31 @@ { "contractName": "Enum", "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820641ab8b295edfaa2b1c8a8e0ae7d17ea2f4c8b95ea27e45d8947ed9a4799ca1f0029", - "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820641ab8b295edfaa2b1c8a8e0ae7d17ea2f4c8b95ea27e45d8947ed9a4799ca1f0029", - "sourceMap": "115:95:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;115:95:1;;;;;;;", - "deployedSourceMap": "115:95:1:-;;;;;", + "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820e8f35ac07bd2a835eacbee7ba38b086a012b371f6bdc0da93abfb72fe3b38ec20029", + "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820e8f35ac07bd2a835eacbee7ba38b086a012b371f6bdc0da93abfb72fe3b38ec20029", + "sourceMap": "115:95:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;115:95:7;;;;;;;", + "deployedSourceMap": "115:95:7:-;;;;;", "source": "pragma solidity 0.4.24;\n\n\n/// @title Enum - Collection of enums\n/// @author Richard Meissner - \ncontract Enum {\n enum Operation {\n Call,\n DelegateCall,\n Create\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", "exportedSymbols": { "Enum": [ - 30 + 1659 ] }, - "id": 31, + "id": 1660, "nodeType": "SourceUnit", "nodes": [ { - "id": 25, + "id": 1654, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:1" + "src": "0:23:7" }, { "baseContracts": [], @@ -33,66 +33,66 @@ "contractKind": "contract", "documentation": "@title Enum - Collection of enums\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 30, + "id": 1659, "linearizedBaseContracts": [ - 30 + 1659 ], "name": "Enum", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Enum.Operation", - "id": 29, + "id": 1658, "members": [ { - "id": 26, + "id": 1655, "name": "Call", "nodeType": "EnumValue", - "src": "160:4:1" + "src": "160:4:7" }, { - "id": 27, + "id": 1656, "name": "DelegateCall", "nodeType": "EnumValue", - "src": "174:12:1" + "src": "174:12:7" }, { - "id": 28, + "id": 1657, "name": "Create", "nodeType": "EnumValue", - "src": "196:6:1" + "src": "196:6:7" } ], "name": "Operation", "nodeType": "EnumDefinition", - "src": "135:73:1" + "src": "135:73:7" } ], - "scope": 31, - "src": "115:95:1" + "scope": 1660, + "src": "115:95:7" } ], - "src": "0:211:1" + "src": "0:211:7" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", "exportedSymbols": { "Enum": [ - 30 + 1659 ] }, - "id": 31, + "id": 1660, "nodeType": "SourceUnit", "nodes": [ { - "id": 25, + "id": 1654, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:1" + "src": "0:23:7" }, { "baseContracts": [], @@ -100,46 +100,46 @@ "contractKind": "contract", "documentation": "@title Enum - Collection of enums\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 30, + "id": 1659, "linearizedBaseContracts": [ - 30 + 1659 ], "name": "Enum", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Enum.Operation", - "id": 29, + "id": 1658, "members": [ { - "id": 26, + "id": 1655, "name": "Call", "nodeType": "EnumValue", - "src": "160:4:1" + "src": "160:4:7" }, { - "id": 27, + "id": 1656, "name": "DelegateCall", "nodeType": "EnumValue", - "src": "174:12:1" + "src": "174:12:7" }, { - "id": 28, + "id": 1657, "name": "Create", "nodeType": "EnumValue", - "src": "196:6:1" + "src": "196:6:7" } ], "name": "Operation", "nodeType": "EnumDefinition", - "src": "135:73:1" + "src": "135:73:7" } ], - "scope": 31, - "src": "115:95:1" + "scope": 1660, + "src": "115:95:7" } ], - "src": "0:211:1" + "src": "0:211:7" }, "compiler": { "name": "solc", @@ -147,5 +147,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.083Z" + "updatedAt": "2018-09-26T08:32:07.643Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/EtherPaymentFallback.json b/safe-contracts/build/contracts/EtherPaymentFallback.json index 885179c2..27005882 100644 --- a/safe-contracts/build/contracts/EtherPaymentFallback.json +++ b/safe-contracts/build/contracts/EtherPaymentFallback.json @@ -7,31 +7,31 @@ "type": "fallback" } ], - "bytecode": "0x6080604052348015600f57600080fd5b50603280601d6000396000f30060806040520000a165627a7a723058208226d93ca47e5b6cb455362823a9ae7ae1ffe3fb79b732dd39f124670f780a070029", - "deployedBytecode": "0x60806040520000a165627a7a723058208226d93ca47e5b6cb455362823a9ae7ae1ffe3fb79b732dd39f124670f780a070029", - "sourceMap": "167:155:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;167:155:2;;;;;;;", - "deployedSourceMap": "167:155:2:-;;;", + "bytecode": "0x6080604052348015600f57600080fd5b50603280601d6000396000f30060806040520000a165627a7a723058200c4d2e3a714c9a462ec30383030f16e7035d8647c8e18373ebc02f115b5a1d690029", + "deployedBytecode": "0x60806040520000a165627a7a723058200c4d2e3a714c9a462ec30383030f16e7035d8647c8e18373ebc02f115b5a1d690029", + "sourceMap": "167:155:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;167:155:8;;;;;;;", + "deployedSourceMap": "167:155:8:-;;;", "source": "pragma solidity 0.4.24;\n\n\n/// @title EtherPaymentFallback - A contract that has a fallback to accept ether payments\n/// @author Richard Meissner - \ncontract EtherPaymentFallback {\n\n /// @dev Fallback function accepts Ether transactions.\n function ()\n external\n payable\n {\n\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/EtherPaymentFallback.sol", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/EtherPaymentFallback.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", "exportedSymbols": { "EtherPaymentFallback": [ - 37 + 1666 ] }, - "id": 38, + "id": 1667, "nodeType": "SourceUnit", "nodes": [ { - "id": 32, + "id": 1661, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:2" + "src": "0:23:8" }, { "baseContracts": [], @@ -39,22 +39,22 @@ "contractKind": "contract", "documentation": "@title EtherPaymentFallback - A contract that has a fallback to accept ether payments\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 37, + "id": 1666, "linearizedBaseContracts": [ - 37 + 1666 ], "name": "EtherPaymentFallback", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 35, + "id": 1664, "nodeType": "Block", - "src": "312:8:2", + "src": "312:8:8", "statements": [] }, "documentation": "@dev Fallback function accepts Ether transactions.", - "id": 36, + "id": 1665, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -62,50 +62,50 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 33, + "id": 1662, "nodeType": "ParameterList", "parameters": [], - "src": "272:2:2" + "src": "272:2:8" }, "payable": true, "returnParameters": { - "id": 34, + "id": 1663, "nodeType": "ParameterList", "parameters": [], - "src": "312:0:2" + "src": "312:0:8" }, - "scope": 37, - "src": "263:57:2", + "scope": 1666, + "src": "263:57:8", "stateMutability": "payable", "superFunction": null, "visibility": "external" } ], - "scope": 38, - "src": "167:155:2" + "scope": 1667, + "src": "167:155:8" } ], - "src": "0:323:2" + "src": "0:323:8" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/EtherPaymentFallback.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", "exportedSymbols": { "EtherPaymentFallback": [ - 37 + 1666 ] }, - "id": 38, + "id": 1667, "nodeType": "SourceUnit", "nodes": [ { - "id": 32, + "id": 1661, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:2" + "src": "0:23:8" }, { "baseContracts": [], @@ -113,22 +113,22 @@ "contractKind": "contract", "documentation": "@title EtherPaymentFallback - A contract that has a fallback to accept ether payments\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 37, + "id": 1666, "linearizedBaseContracts": [ - 37 + 1666 ], "name": "EtherPaymentFallback", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 35, + "id": 1664, "nodeType": "Block", - "src": "312:8:2", + "src": "312:8:8", "statements": [] }, "documentation": "@dev Fallback function accepts Ether transactions.", - "id": 36, + "id": 1665, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -136,30 +136,30 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 33, + "id": 1662, "nodeType": "ParameterList", "parameters": [], - "src": "272:2:2" + "src": "272:2:8" }, "payable": true, "returnParameters": { - "id": 34, + "id": 1663, "nodeType": "ParameterList", "parameters": [], - "src": "312:0:2" + "src": "312:0:8" }, - "scope": 37, - "src": "263:57:2", + "scope": 1666, + "src": "263:57:8", "stateMutability": "payable", "superFunction": null, "visibility": "external" } ], - "scope": 38, - "src": "167:155:2" + "scope": 1667, + "src": "167:155:8" } ], - "src": "0:323:2" + "src": "0:323:8" }, "compiler": { "name": "solc", @@ -167,5 +167,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.083Z" + "updatedAt": "2018-09-26T08:32:07.643Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/Executor.json b/safe-contracts/build/contracts/Executor.json index a9054a76..ff413951 100644 --- a/safe-contracts/build/contracts/Executor.json +++ b/safe-contracts/build/contracts/Executor.json @@ -1,34 +1,6 @@ { "contractName": "Executor", "abi": [ - { - "constant": true, - "inputs": [], - "name": "NAME", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "payable": true, "stateMutability": "payable", @@ -47,24 +19,24 @@ "type": "event" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061020c806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063a3f4df7e1461004e578063ffa1ad74146100de575b005b34801561005a57600080fd5b5061006361016e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100a3578082015181840152602081019050610088565b50505050905090810190601f1680156100d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156100ea57600080fd5b506100f36101a7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610133578082015181840152602081019050610118565b50505050905090810190601f1680156101605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6040805190810160405280600881526020017f4578656375746f7200000000000000000000000000000000000000000000000081525081565b6040805190810160405280600581526020017f302e302e31000000000000000000000000000000000000000000000000000000815250815600a165627a7a7230582092293e9246a4255b2851599879c24fc9479e6864c75aafeae58e8e9f2e031ac10029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063a3f4df7e1461004e578063ffa1ad74146100de575b005b34801561005a57600080fd5b5061006361016e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100a3578082015181840152602081019050610088565b50505050905090810190601f1680156100d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156100ea57600080fd5b506100f36101a7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610133578082015181840152602081019050610118565b50505050905090810190601f1680156101605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6040805190810160405280600881526020017f4578656375746f7200000000000000000000000000000000000000000000000081525081565b6040805190810160405280600581526020017f302e302e31000000000000000000000000000000000000000000000000000000815250815600a165627a7a7230582092293e9246a4255b2851599879c24fc9479e6864c75aafeae58e8e9f2e031ac10029", - "sourceMap": "198:1633:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;198:1633:3;;;;;;;", - "deployedSourceMap": "198:1633:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;297:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;297:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;297:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;343;;8:9:-1;5:2;;;30:1;27;20:12;5:2;343:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;343:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;297;;;;;;;;;;;;;;;;;;;;:::o;343:::-;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./Enum.sol\";\nimport \"./EtherPaymentFallback.sol\";\n\n\n/// @title Executor - A contract that can execute transactions\n/// @author Richard Meissner - \ncontract Executor is EtherPaymentFallback {\n\n event ContractCreation(address newContract);\n\n string public constant NAME = \"Executor\";\n string public constant VERSION = \"0.0.1\";\n\n function execute(address to, uint256 value, bytes data, Enum.Operation operation, uint256 txGas)\n internal\n returns (bool success)\n {\n if (operation == Enum.Operation.Call)\n success = executeCall(to, value, data, txGas);\n else if (operation == Enum.Operation.DelegateCall)\n success = executeDelegateCall(to, data, txGas);\n else {\n address newContract = executeCreate(data);\n success = newContract != 0;\n emit ContractCreation(newContract);\n }\n }\n\n function executeCall(address to, uint256 value, bytes data, uint256 txGas)\n internal\n returns (bool success)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n }\n }\n\n function executeDelegateCall(address to, bytes data, uint256 txGas)\n internal\n returns (bool success)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n }\n }\n\n function executeCreate(bytes data)\n internal\n returns (address newContract)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n newContract := create(0, add(data, 0x20), mload(data))\n }\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Executor.sol", + "bytecode": "0x6080604052348015600f57600080fd5b50603280601d6000396000f30060806040520000a165627a7a723058204f5ad88ba445e0f0319a85784ddeaeef53872efa9db1711743380c1ef494d78f0029", + "deployedBytecode": "0x60806040520000a165627a7a723058204f5ad88ba445e0f0319a85784ddeaeef53872efa9db1711743380c1ef494d78f0029", + "sourceMap": "214:1540:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;214:1540:3;;;;;;;", + "deployedSourceMap": "214:1540:3:-;;;", + "source": "pragma solidity 0.4.24;\nimport \"../common/Enum.sol\";\nimport \"../common/EtherPaymentFallback.sol\";\n\n\n/// @title Executor - A contract that can execute transactions\n/// @author Richard Meissner - \ncontract Executor is EtherPaymentFallback {\n\n event ContractCreation(address newContract);\n\n function execute(address to, uint256 value, bytes data, Enum.Operation operation, uint256 txGas)\n internal\n returns (bool success)\n {\n if (operation == Enum.Operation.Call)\n success = executeCall(to, value, data, txGas);\n else if (operation == Enum.Operation.DelegateCall)\n success = executeDelegateCall(to, data, txGas);\n else {\n address newContract = executeCreate(data);\n success = newContract != 0;\n emit ContractCreation(newContract);\n }\n }\n\n function executeCall(address to, uint256 value, bytes data, uint256 txGas)\n internal\n returns (bool success)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n }\n }\n\n function executeDelegateCall(address to, bytes data, uint256 txGas)\n internal\n returns (bool success)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n }\n }\n\n function executeCreate(bytes data)\n internal\n returns (address newContract)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n newContract := create(0, add(data, 0x20), mload(data))\n }\n }\n}\n", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Executor.sol", "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Executor.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Executor.sol", "exportedSymbols": { "Executor": [ - 153 + 892 ] }, - "id": 154, + "id": 893, "nodeType": "SourceUnit", "nodes": [ { - "id": 39, + "id": 784, "literals": [ "solidity", "0.4", @@ -74,24 +46,24 @@ "src": "0:23:3" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", - "file": "./Enum.sol", - "id": 40, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "file": "../common/Enum.sol", + "id": 785, "nodeType": "ImportDirective", - "scope": 154, - "sourceUnit": 31, - "src": "24:20:3", + "scope": 893, + "sourceUnit": 1660, + "src": "24:28:3", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/EtherPaymentFallback.sol", - "file": "./EtherPaymentFallback.sol", - "id": 41, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", + "file": "../common/EtherPaymentFallback.sol", + "id": 786, "nodeType": "ImportDirective", - "scope": 154, - "sourceUnit": 38, - "src": "45:36:3", + "scope": 893, + "sourceUnit": 1667, + "src": "53:44:3", "symbolAliases": [], "unitAlias": "" }, @@ -101,31 +73,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 42, + "id": 787, "name": "EtherPaymentFallback", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 37, - "src": "219:20:3", + "referencedDeclaration": 1666, + "src": "235:20:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_EtherPaymentFallback_$37", + "typeIdentifier": "t_contract$_EtherPaymentFallback_$1666", "typeString": "contract EtherPaymentFallback" } }, - "id": 43, + "id": 788, "nodeType": "InheritanceSpecifier", - "src": "219:20:3" + "src": "235:20:3" } ], "contractDependencies": [ - 37 + 1666 ], "contractKind": "contract", "documentation": "@title Executor - A contract that can execute transactions\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 153, + "id": 892, "linearizedBaseContracts": [ - 153, - 37 + 892, + 1666 ], "name": "Executor", "nodeType": "ContractDefinition", @@ -133,21 +105,21 @@ { "anonymous": false, "documentation": null, - "id": 47, + "id": 792, "name": "ContractCreation", "nodeType": "EventDefinition", "parameters": { - "id": 46, + "id": 791, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 45, + "id": 790, "indexed": false, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 47, - "src": "270:19:3", + "scope": 792, + "src": "286:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -155,10 +127,10 @@ "typeString": "address" }, "typeName": { - "id": 44, + "id": 789, "name": "address", "nodeType": "ElementaryTypeName", - "src": "270:7:3", + "src": "286:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -168,124 +140,38 @@ "visibility": "internal" } ], - "src": "269:21:3" + "src": "285:21:3" }, - "src": "247:44:3" - }, - { - "constant": true, - "id": 50, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 153, - "src": "297:40:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 48, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "297:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "4578656375746f72", - "id": 49, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "327:10:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eb35d5f9843d4076628c4747d195abdd0312e0b8b8f5812a706f3d25ea0b1074", - "typeString": "literal_string \"Executor\"" - }, - "value": "Executor" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 53, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 153, - "src": "343:40:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 51, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "343:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e31", - "id": 52, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "376:7:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" - }, - "value": "0.0.1" - }, - "visibility": "public" + "src": "263:44:3" }, { "body": { - "id": 114, + "id": 853, "nodeType": "Block", - "src": "539:399:3", + "src": "462:399:3", "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, - "id": 72, + "id": 811, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 68, + "id": 807, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "553:9:3", + "referencedDeclaration": 800, + "src": "476:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, @@ -297,32 +183,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 69, + "id": 808, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "566:4:3", + "referencedDeclaration": 1659, + "src": "489:4:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", "typeString": "type(contract Enum)" } }, - "id": 70, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "566:14:3", + "referencedDeclaration": 1658, + "src": "489:14:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 71, + "id": 810, "isConstant": false, "isLValue": false, "isPure": true, @@ -330,13 +216,13 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "566:19:3", + "src": "489:19:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, - "src": "553:32:3", + "src": "476:32:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -346,24 +232,24 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, - "id": 86, + "id": 825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 82, + "id": 821, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "663:9:3", + "referencedDeclaration": 800, + "src": "586:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, @@ -375,32 +261,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 83, + "id": 822, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "676:4:3", + "referencedDeclaration": 1659, + "src": "599:4:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", "typeString": "type(contract Enum)" } }, - "id": 84, + "id": 823, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "676:14:3", + "referencedDeclaration": 1658, + "src": "599:14:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 85, + "id": 824, "isConstant": false, "isLValue": false, "isPure": true, @@ -408,35 +294,35 @@ "memberName": "DelegateCall", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "676:27:3", + "src": "599:27:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, - "src": "663:40:3", + "src": "586:40:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 111, + "id": 850, "nodeType": "Block", - "src": "778:154:3", + "src": "701:154:3", "statements": [ { "assignments": [ - 96 + 835 ], "declarations": [ { "constant": false, - "id": 96, + "id": 835, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 115, - "src": "792:19:3", + "scope": 854, + "src": "715:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -444,10 +330,10 @@ "typeString": "address" }, "typeName": { - "id": 95, + "id": 834, "name": "address", "nodeType": "ElementaryTypeName", - "src": "792:7:3", + "src": "715:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -457,18 +343,18 @@ "visibility": "internal" } ], - "id": 100, + "id": 839, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 98, + "id": 837, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59, - "src": "828:4:3", + "referencedDeclaration": 798, + "src": "751:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -482,18 +368,18 @@ "typeString": "bytes memory" } ], - "id": 97, + "id": 836, "name": "executeCreate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 152, - "src": "814:13:3", + "referencedDeclaration": 891, + "src": "737:13:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", "typeString": "function (bytes memory) returns (address)" } }, - "id": 99, + "id": 838, "isConstant": false, "isLValue": false, "isPure": false, @@ -501,31 +387,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "814:19:3", + "src": "737:19:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "792:41:3" + "src": "715:41:3" }, { "expression": { "argumentTypes": null, - "id": 105, + "id": 844, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 101, + "id": 840, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 66, - "src": "847:7:3", + "referencedDeclaration": 805, + "src": "770:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -539,19 +425,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 104, + "id": 843, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 102, + "id": 841, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "857:11:3", + "referencedDeclaration": 835, + "src": "780:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -562,14 +448,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 103, + "id": 842, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "872:1:3", + "src": "795:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -577,21 +463,21 @@ }, "value": "0" }, - "src": "857:16:3", + "src": "780:16:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "847:26:3", + "src": "770:26:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 106, + "id": 845, "nodeType": "ExpressionStatement", - "src": "847:26:3" + "src": "770:26:3" }, { "eventCall": { @@ -599,12 +485,12 @@ "arguments": [ { "argumentTypes": null, - "id": 108, + "id": 847, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "909:11:3", + "referencedDeclaration": 835, + "src": "832:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -618,18 +504,18 @@ "typeString": "address" } ], - "id": 107, + "id": 846, "name": "ContractCreation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 47, - "src": "892:16:3", + "referencedDeclaration": 792, + "src": "815:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 109, + "id": 848, "isConstant": false, "isLValue": false, "isPure": false, @@ -637,37 +523,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "892:29:3", + "src": "815:29:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 110, + "id": 849, "nodeType": "EmitStatement", - "src": "887:34:3" + "src": "810:34:3" } ] }, - "id": 112, + "id": 851, "nodeType": "IfStatement", - "src": "659:273:3", + "src": "582:273:3", "trueBody": { "expression": { "argumentTypes": null, - "id": 93, + "id": 832, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 87, + "id": 826, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 66, - "src": "717:7:3", + "referencedDeclaration": 805, + "src": "640:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -680,12 +566,12 @@ "arguments": [ { "argumentTypes": null, - "id": 89, + "id": 828, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55, - "src": "747:2:3", + "referencedDeclaration": 794, + "src": "670:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -693,12 +579,12 @@ }, { "argumentTypes": null, - "id": 90, + "id": 829, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59, - "src": "751:4:3", + "referencedDeclaration": 798, + "src": "674:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -706,12 +592,12 @@ }, { "argumentTypes": null, - "id": 91, + "id": 830, "name": "txGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "757:5:3", + "referencedDeclaration": 802, + "src": "680:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -733,18 +619,18 @@ "typeString": "uint256" } ], - "id": 88, + "id": 827, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "727:19:3", + "referencedDeclaration": 882, + "src": "650:19:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,bytes memory,uint256) returns (bool)" } }, - "id": 92, + "id": 831, "isConstant": false, "isLValue": false, "isPure": false, @@ -752,42 +638,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "727:36:3", + "src": "650:36:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "717:46:3", + "src": "640:46:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 94, + "id": 833, "nodeType": "ExpressionStatement", - "src": "717:46:3" + "src": "640:46:3" } }, - "id": 113, + "id": 852, "nodeType": "IfStatement", - "src": "549:383:3", + "src": "472:383:3", "trueBody": { "expression": { "argumentTypes": null, - "id": 80, + "id": 819, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 73, + "id": 812, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 66, - "src": "599:7:3", + "referencedDeclaration": 805, + "src": "522:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -800,12 +686,12 @@ "arguments": [ { "argumentTypes": null, - "id": 75, + "id": 814, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55, - "src": "621:2:3", + "referencedDeclaration": 794, + "src": "544:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -813,12 +699,12 @@ }, { "argumentTypes": null, - "id": 76, + "id": 815, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "625:5:3", + "referencedDeclaration": 796, + "src": "548:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -826,12 +712,12 @@ }, { "argumentTypes": null, - "id": 77, + "id": 816, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59, - "src": "632:4:3", + "referencedDeclaration": 798, + "src": "555:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -839,12 +725,12 @@ }, { "argumentTypes": null, - "id": 78, + "id": 817, "name": "txGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "638:5:3", + "referencedDeclaration": 802, + "src": "561:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -870,18 +756,18 @@ "typeString": "uint256" } ], - "id": 74, + "id": 813, "name": "executeCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "609:11:3", + "referencedDeclaration": 869, + "src": "532:11:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,uint256) returns (bool)" } }, - "id": 79, + "id": 818, "isConstant": false, "isLValue": false, "isPure": false, @@ -889,27 +775,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "609:35:3", + "src": "532:35:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "599:45:3", + "src": "522:45:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 81, + "id": 820, "nodeType": "ExpressionStatement", - "src": "599:45:3" + "src": "522:45:3" } } ] }, "documentation": null, - "id": 115, + "id": 854, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -917,16 +803,16 @@ "name": "execute", "nodeType": "FunctionDefinition", "parameters": { - "id": 64, + "id": 803, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55, + "id": 794, "name": "to", "nodeType": "VariableDeclaration", - "scope": 115, - "src": "407:10:3", + "scope": 854, + "src": "330:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -934,10 +820,10 @@ "typeString": "address" }, "typeName": { - "id": 54, + "id": 793, "name": "address", "nodeType": "ElementaryTypeName", - "src": "407:7:3", + "src": "330:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -948,11 +834,11 @@ }, { "constant": false, - "id": 57, + "id": 796, "name": "value", "nodeType": "VariableDeclaration", - "scope": 115, - "src": "419:13:3", + "scope": 854, + "src": "342:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -960,10 +846,10 @@ "typeString": "uint256" }, "typeName": { - "id": 56, + "id": 795, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "419:7:3", + "src": "342:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -974,11 +860,11 @@ }, { "constant": false, - "id": 59, + "id": 798, "name": "data", "nodeType": "VariableDeclaration", - "scope": 115, - "src": "434:10:3", + "scope": 854, + "src": "357:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -986,10 +872,10 @@ "typeString": "bytes" }, "typeName": { - "id": 58, + "id": 797, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "434:5:3", + "src": "357:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1000,26 +886,26 @@ }, { "constant": false, - "id": 61, + "id": 800, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 115, - "src": "446:24:3", + "scope": 854, + "src": "369:24:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 60, + "id": 799, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "446:14:3", + "referencedDeclaration": 1658, + "src": "369:14:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, @@ -1028,11 +914,11 @@ }, { "constant": false, - "id": 63, + "id": 802, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 115, - "src": "472:13:3", + "scope": 854, + "src": "395:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1040,10 +926,10 @@ "typeString": "uint256" }, "typeName": { - "id": 62, + "id": 801, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "472:7:3", + "src": "395:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1053,20 +939,20 @@ "visibility": "internal" } ], - "src": "406:80:3" + "src": "329:80:3" }, "payable": false, "returnParameters": { - "id": 67, + "id": 806, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 66, + "id": 805, "name": "success", "nodeType": "VariableDeclaration", - "scope": 115, - "src": "521:12:3", + "scope": 854, + "src": "444:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1074,10 +960,10 @@ "typeString": "bool" }, "typeName": { - "id": 65, + "id": 804, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "521:4:3", + "src": "444:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1087,86 +973,86 @@ "visibility": "internal" } ], - "src": "520:14:3" + "src": "443:14:3" }, - "scope": 153, - "src": "390:548:3", + "scope": 892, + "src": "313:548:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 129, + "id": 868, "nodeType": "Block", - "src": "1071:182:3", + "src": "994:182:3", "statements": [ { "externalReferences": [ { - "txGas": { - "declaration": 123, + "data": { + "declaration": 860, "isOffset": false, "isSlot": false, - "src": "1184:5:3", - "valueSize": 1 - } - }, - { - "to": { - "declaration": 117, - "isOffset": false, - "isSlot": false, - "src": "1191:2:3", - "valueSize": 1 - } - }, - { - "value": { - "declaration": 119, - "isOffset": false, - "isSlot": false, - "src": "1195:5:3", + "src": "1148:4:3", "valueSize": 1 } }, { "data": { - "declaration": 121, + "declaration": 860, "isOffset": false, "isSlot": false, - "src": "1225:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 121, - "isOffset": false, - "isSlot": false, - "src": "1206:4:3", + "src": "1129:4:3", "valueSize": 1 } }, { "success": { - "declaration": 126, + "declaration": 865, "isOffset": false, "isSlot": false, - "src": "1168:7:3", + "src": "1091:7:3", + "valueSize": 1 + } + }, + { + "txGas": { + "declaration": 862, + "isOffset": false, + "isSlot": false, + "src": "1107:5:3", + "valueSize": 1 + } + }, + { + "to": { + "declaration": 856, + "isOffset": false, + "isSlot": false, + "src": "1114:2:3", + "valueSize": 1 + } + }, + { + "value": { + "declaration": 858, + "isOffset": false, + "isSlot": false, + "src": "1118:5:3", "valueSize": 1 } } ], - "id": 128, + "id": 867, "nodeType": "InlineAssembly", "operations": "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1145:108:3" + "src": "1068:108:3" } ] }, "documentation": null, - "id": 130, + "id": 869, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1174,16 +1060,16 @@ "name": "executeCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 124, + "id": 863, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 117, + "id": 856, "name": "to", "nodeType": "VariableDeclaration", - "scope": 130, - "src": "965:10:3", + "scope": 869, + "src": "888:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1191,10 +1077,10 @@ "typeString": "address" }, "typeName": { - "id": 116, + "id": 855, "name": "address", "nodeType": "ElementaryTypeName", - "src": "965:7:3", + "src": "888:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1205,11 +1091,11 @@ }, { "constant": false, - "id": 119, + "id": 858, "name": "value", "nodeType": "VariableDeclaration", - "scope": 130, - "src": "977:13:3", + "scope": 869, + "src": "900:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1217,10 +1103,10 @@ "typeString": "uint256" }, "typeName": { - "id": 118, + "id": 857, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "977:7:3", + "src": "900:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1231,11 +1117,11 @@ }, { "constant": false, - "id": 121, + "id": 860, "name": "data", "nodeType": "VariableDeclaration", - "scope": 130, - "src": "992:10:3", + "scope": 869, + "src": "915:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1243,10 +1129,10 @@ "typeString": "bytes" }, "typeName": { - "id": 120, + "id": 859, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "992:5:3", + "src": "915:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1257,11 +1143,11 @@ }, { "constant": false, - "id": 123, + "id": 862, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 130, - "src": "1004:13:3", + "scope": 869, + "src": "927:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1269,10 +1155,10 @@ "typeString": "uint256" }, "typeName": { - "id": 122, + "id": 861, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1004:7:3", + "src": "927:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1282,20 +1168,20 @@ "visibility": "internal" } ], - "src": "964:54:3" + "src": "887:54:3" }, "payable": false, "returnParameters": { - "id": 127, + "id": 866, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 126, + "id": 865, "name": "success", "nodeType": "VariableDeclaration", - "scope": 130, - "src": "1053:12:3", + "scope": 869, + "src": "976:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1303,10 +1189,10 @@ "typeString": "bool" }, "typeName": { - "id": 125, + "id": 864, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1053:4:3", + "src": "976:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1316,77 +1202,77 @@ "visibility": "internal" } ], - "src": "1052:14:3" + "src": "975:14:3" }, - "scope": 153, - "src": "944:309:3", + "scope": 892, + "src": "867:309:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 142, + "id": 881, "nodeType": "Block", - "src": "1379:183:3", + "src": "1302:183:3", "statements": [ { "externalReferences": [ { "data": { - "declaration": 134, + "declaration": 873, "isOffset": false, "isSlot": false, - "src": "1534:4:3", - "valueSize": 1 - } - }, - { - "txGas": { - "declaration": 136, - "isOffset": false, - "isSlot": false, - "src": "1500:5:3", - "valueSize": 1 - } - }, - { - "to": { - "declaration": 132, - "isOffset": false, - "isSlot": false, - "src": "1507:2:3", + "src": "1457:4:3", "valueSize": 1 } }, { "data": { - "declaration": 134, + "declaration": 873, "isOffset": false, "isSlot": false, - "src": "1515:4:3", + "src": "1438:4:3", "valueSize": 1 } }, { "success": { - "declaration": 139, + "declaration": 878, "isOffset": false, "isSlot": false, - "src": "1476:7:3", + "src": "1399:7:3", + "valueSize": 1 + } + }, + { + "txGas": { + "declaration": 875, + "isOffset": false, + "isSlot": false, + "src": "1423:5:3", + "valueSize": 1 + } + }, + { + "to": { + "declaration": 871, + "isOffset": false, + "isSlot": false, + "src": "1430:2:3", "valueSize": 1 } } ], - "id": 141, + "id": 880, "nodeType": "InlineAssembly", "operations": "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1453:109:3" + "src": "1376:109:3" } ] }, "documentation": null, - "id": 143, + "id": 882, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1394,16 +1280,16 @@ "name": "executeDelegateCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 137, + "id": 876, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 132, + "id": 871, "name": "to", "nodeType": "VariableDeclaration", - "scope": 143, - "src": "1288:10:3", + "scope": 882, + "src": "1211:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1411,10 +1297,10 @@ "typeString": "address" }, "typeName": { - "id": 131, + "id": 870, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1288:7:3", + "src": "1211:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1425,11 +1311,11 @@ }, { "constant": false, - "id": 134, + "id": 873, "name": "data", "nodeType": "VariableDeclaration", - "scope": 143, - "src": "1300:10:3", + "scope": 882, + "src": "1223:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1437,10 +1323,10 @@ "typeString": "bytes" }, "typeName": { - "id": 133, + "id": 872, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1300:5:3", + "src": "1223:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1451,11 +1337,11 @@ }, { "constant": false, - "id": 136, + "id": 875, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 143, - "src": "1312:13:3", + "scope": 882, + "src": "1235:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1463,10 +1349,10 @@ "typeString": "uint256" }, "typeName": { - "id": 135, + "id": 874, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1312:7:3", + "src": "1235:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1476,20 +1362,20 @@ "visibility": "internal" } ], - "src": "1287:39:3" + "src": "1210:39:3" }, "payable": false, "returnParameters": { - "id": 140, + "id": 879, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 139, + "id": 878, "name": "success", "nodeType": "VariableDeclaration", - "scope": 143, - "src": "1361:12:3", + "scope": 882, + "src": "1284:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1497,10 +1383,10 @@ "typeString": "bool" }, "typeName": { - "id": 138, + "id": 877, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1361:4:3", + "src": "1284:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1510,59 +1396,59 @@ "visibility": "internal" } ], - "src": "1360:14:3" + "src": "1283:14:3" }, - "scope": 153, - "src": "1259:303:3", + "scope": 892, + "src": "1182:303:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 151, + "id": 890, "nodeType": "Block", - "src": "1662:167:3", + "src": "1585:167:3", "statements": [ { "externalReferences": [ - { - "data": { - "declaration": 145, - "isOffset": false, - "isSlot": false, - "src": "1788:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 145, - "isOffset": false, - "isSlot": false, - "src": "1807:4:3", - "valueSize": 1 - } - }, { "newContract": { - "declaration": 148, + "declaration": 887, "isOffset": false, "isSlot": false, - "src": "1759:11:3", + "src": "1682:11:3", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 884, + "isOffset": false, + "isSlot": false, + "src": "1711:4:3", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 884, + "isOffset": false, + "isSlot": false, + "src": "1730:4:3", "valueSize": 1 } } ], - "id": 150, + "id": 889, "nodeType": "InlineAssembly", "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", - "src": "1736:93:3" + "src": "1659:93:3" } ] }, "documentation": null, - "id": 152, + "id": 891, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1570,16 +1456,16 @@ "name": "executeCreate", "nodeType": "FunctionDefinition", "parameters": { - "id": 146, + "id": 885, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 145, + "id": 884, "name": "data", "nodeType": "VariableDeclaration", - "scope": 152, - "src": "1591:10:3", + "scope": 891, + "src": "1514:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1587,10 +1473,10 @@ "typeString": "bytes" }, "typeName": { - "id": 144, + "id": 883, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1591:5:3", + "src": "1514:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1600,20 +1486,20 @@ "visibility": "internal" } ], - "src": "1590:12:3" + "src": "1513:12:3" }, "payable": false, "returnParameters": { - "id": 149, + "id": 888, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 148, + "id": 887, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 152, - "src": "1637:19:3", + "scope": 891, + "src": "1560:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1621,10 +1507,10 @@ "typeString": "address" }, "typeName": { - "id": 147, + "id": 886, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1637:7:3", + "src": "1560:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1634,33 +1520,33 @@ "visibility": "internal" } ], - "src": "1636:21:3" + "src": "1559:21:3" }, - "scope": 153, - "src": "1568:261:3", + "scope": 892, + "src": "1491:261:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 154, - "src": "198:1633:3" + "scope": 893, + "src": "214:1540:3" } ], - "src": "0:1832:3" + "src": "0:1755:3" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Executor.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Executor.sol", "exportedSymbols": { "Executor": [ - 153 + 892 ] }, - "id": 154, + "id": 893, "nodeType": "SourceUnit", "nodes": [ { - "id": 39, + "id": 784, "literals": [ "solidity", "0.4", @@ -1670,24 +1556,24 @@ "src": "0:23:3" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", - "file": "./Enum.sol", - "id": 40, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "file": "../common/Enum.sol", + "id": 785, "nodeType": "ImportDirective", - "scope": 154, - "sourceUnit": 31, - "src": "24:20:3", + "scope": 893, + "sourceUnit": 1660, + "src": "24:28:3", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/EtherPaymentFallback.sol", - "file": "./EtherPaymentFallback.sol", - "id": 41, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", + "file": "../common/EtherPaymentFallback.sol", + "id": 786, "nodeType": "ImportDirective", - "scope": 154, - "sourceUnit": 38, - "src": "45:36:3", + "scope": 893, + "sourceUnit": 1667, + "src": "53:44:3", "symbolAliases": [], "unitAlias": "" }, @@ -1697,31 +1583,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 42, + "id": 787, "name": "EtherPaymentFallback", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 37, - "src": "219:20:3", + "referencedDeclaration": 1666, + "src": "235:20:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_EtherPaymentFallback_$37", + "typeIdentifier": "t_contract$_EtherPaymentFallback_$1666", "typeString": "contract EtherPaymentFallback" } }, - "id": 43, + "id": 788, "nodeType": "InheritanceSpecifier", - "src": "219:20:3" + "src": "235:20:3" } ], "contractDependencies": [ - 37 + 1666 ], "contractKind": "contract", "documentation": "@title Executor - A contract that can execute transactions\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 153, + "id": 892, "linearizedBaseContracts": [ - 153, - 37 + 892, + 1666 ], "name": "Executor", "nodeType": "ContractDefinition", @@ -1729,21 +1615,21 @@ { "anonymous": false, "documentation": null, - "id": 47, + "id": 792, "name": "ContractCreation", "nodeType": "EventDefinition", "parameters": { - "id": 46, + "id": 791, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 45, + "id": 790, "indexed": false, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 47, - "src": "270:19:3", + "scope": 792, + "src": "286:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1751,10 +1637,10 @@ "typeString": "address" }, "typeName": { - "id": 44, + "id": 789, "name": "address", "nodeType": "ElementaryTypeName", - "src": "270:7:3", + "src": "286:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1764,124 +1650,38 @@ "visibility": "internal" } ], - "src": "269:21:3" + "src": "285:21:3" }, - "src": "247:44:3" - }, - { - "constant": true, - "id": 50, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 153, - "src": "297:40:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 48, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "297:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "4578656375746f72", - "id": 49, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "327:10:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eb35d5f9843d4076628c4747d195abdd0312e0b8b8f5812a706f3d25ea0b1074", - "typeString": "literal_string \"Executor\"" - }, - "value": "Executor" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 53, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 153, - "src": "343:40:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 51, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "343:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e31", - "id": 52, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "376:7:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" - }, - "value": "0.0.1" - }, - "visibility": "public" + "src": "263:44:3" }, { "body": { - "id": 114, + "id": 853, "nodeType": "Block", - "src": "539:399:3", + "src": "462:399:3", "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, - "id": 72, + "id": 811, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 68, + "id": 807, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "553:9:3", + "referencedDeclaration": 800, + "src": "476:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, @@ -1893,32 +1693,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 69, + "id": 808, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "566:4:3", + "referencedDeclaration": 1659, + "src": "489:4:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", "typeString": "type(contract Enum)" } }, - "id": 70, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "566:14:3", + "referencedDeclaration": 1658, + "src": "489:14:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 71, + "id": 810, "isConstant": false, "isLValue": false, "isPure": true, @@ -1926,13 +1726,13 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "566:19:3", + "src": "489:19:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, - "src": "553:32:3", + "src": "476:32:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1942,24 +1742,24 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, - "id": 86, + "id": 825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 82, + "id": 821, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "663:9:3", + "referencedDeclaration": 800, + "src": "586:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, @@ -1971,32 +1771,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 83, + "id": 822, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "676:4:3", + "referencedDeclaration": 1659, + "src": "599:4:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", "typeString": "type(contract Enum)" } }, - "id": 84, + "id": 823, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "676:14:3", + "referencedDeclaration": 1658, + "src": "599:14:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 85, + "id": 824, "isConstant": false, "isLValue": false, "isPure": true, @@ -2004,35 +1804,35 @@ "memberName": "DelegateCall", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "676:27:3", + "src": "599:27:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, - "src": "663:40:3", + "src": "586:40:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 111, + "id": 850, "nodeType": "Block", - "src": "778:154:3", + "src": "701:154:3", "statements": [ { "assignments": [ - 96 + 835 ], "declarations": [ { "constant": false, - "id": 96, + "id": 835, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 115, - "src": "792:19:3", + "scope": 854, + "src": "715:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2040,10 +1840,10 @@ "typeString": "address" }, "typeName": { - "id": 95, + "id": 834, "name": "address", "nodeType": "ElementaryTypeName", - "src": "792:7:3", + "src": "715:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2053,18 +1853,18 @@ "visibility": "internal" } ], - "id": 100, + "id": 839, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 98, + "id": 837, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59, - "src": "828:4:3", + "referencedDeclaration": 798, + "src": "751:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2078,18 +1878,18 @@ "typeString": "bytes memory" } ], - "id": 97, + "id": 836, "name": "executeCreate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 152, - "src": "814:13:3", + "referencedDeclaration": 891, + "src": "737:13:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", "typeString": "function (bytes memory) returns (address)" } }, - "id": 99, + "id": 838, "isConstant": false, "isLValue": false, "isPure": false, @@ -2097,31 +1897,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "814:19:3", + "src": "737:19:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "792:41:3" + "src": "715:41:3" }, { "expression": { "argumentTypes": null, - "id": 105, + "id": 844, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 101, + "id": 840, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 66, - "src": "847:7:3", + "referencedDeclaration": 805, + "src": "770:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2135,19 +1935,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 104, + "id": 843, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 102, + "id": 841, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "857:11:3", + "referencedDeclaration": 835, + "src": "780:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2158,14 +1958,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 103, + "id": 842, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "872:1:3", + "src": "795:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2173,21 +1973,21 @@ }, "value": "0" }, - "src": "857:16:3", + "src": "780:16:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "847:26:3", + "src": "770:26:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 106, + "id": 845, "nodeType": "ExpressionStatement", - "src": "847:26:3" + "src": "770:26:3" }, { "eventCall": { @@ -2195,12 +1995,12 @@ "arguments": [ { "argumentTypes": null, - "id": 108, + "id": 847, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "909:11:3", + "referencedDeclaration": 835, + "src": "832:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2214,18 +2014,18 @@ "typeString": "address" } ], - "id": 107, + "id": 846, "name": "ContractCreation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 47, - "src": "892:16:3", + "referencedDeclaration": 792, + "src": "815:16:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 109, + "id": 848, "isConstant": false, "isLValue": false, "isPure": false, @@ -2233,37 +2033,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "892:29:3", + "src": "815:29:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 110, + "id": 849, "nodeType": "EmitStatement", - "src": "887:34:3" + "src": "810:34:3" } ] }, - "id": 112, + "id": 851, "nodeType": "IfStatement", - "src": "659:273:3", + "src": "582:273:3", "trueBody": { "expression": { "argumentTypes": null, - "id": 93, + "id": 832, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 87, + "id": 826, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 66, - "src": "717:7:3", + "referencedDeclaration": 805, + "src": "640:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2276,12 +2076,12 @@ "arguments": [ { "argumentTypes": null, - "id": 89, + "id": 828, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55, - "src": "747:2:3", + "referencedDeclaration": 794, + "src": "670:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2289,12 +2089,12 @@ }, { "argumentTypes": null, - "id": 90, + "id": 829, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59, - "src": "751:4:3", + "referencedDeclaration": 798, + "src": "674:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2302,12 +2102,12 @@ }, { "argumentTypes": null, - "id": 91, + "id": 830, "name": "txGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "757:5:3", + "referencedDeclaration": 802, + "src": "680:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2329,18 +2129,18 @@ "typeString": "uint256" } ], - "id": 88, + "id": 827, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "727:19:3", + "referencedDeclaration": 882, + "src": "650:19:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,bytes memory,uint256) returns (bool)" } }, - "id": 92, + "id": 831, "isConstant": false, "isLValue": false, "isPure": false, @@ -2348,42 +2148,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "727:36:3", + "src": "650:36:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "717:46:3", + "src": "640:46:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 94, + "id": 833, "nodeType": "ExpressionStatement", - "src": "717:46:3" + "src": "640:46:3" } }, - "id": 113, + "id": 852, "nodeType": "IfStatement", - "src": "549:383:3", + "src": "472:383:3", "trueBody": { "expression": { "argumentTypes": null, - "id": 80, + "id": 819, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 73, + "id": 812, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 66, - "src": "599:7:3", + "referencedDeclaration": 805, + "src": "522:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2396,12 +2196,12 @@ "arguments": [ { "argumentTypes": null, - "id": 75, + "id": 814, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55, - "src": "621:2:3", + "referencedDeclaration": 794, + "src": "544:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2409,12 +2209,12 @@ }, { "argumentTypes": null, - "id": 76, + "id": 815, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "625:5:3", + "referencedDeclaration": 796, + "src": "548:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2422,12 +2222,12 @@ }, { "argumentTypes": null, - "id": 77, + "id": 816, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59, - "src": "632:4:3", + "referencedDeclaration": 798, + "src": "555:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2435,12 +2235,12 @@ }, { "argumentTypes": null, - "id": 78, + "id": 817, "name": "txGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "638:5:3", + "referencedDeclaration": 802, + "src": "561:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2466,18 +2266,18 @@ "typeString": "uint256" } ], - "id": 74, + "id": 813, "name": "executeCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "609:11:3", + "referencedDeclaration": 869, + "src": "532:11:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,uint256) returns (bool)" } }, - "id": 79, + "id": 818, "isConstant": false, "isLValue": false, "isPure": false, @@ -2485,27 +2285,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "609:35:3", + "src": "532:35:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "599:45:3", + "src": "522:45:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 81, + "id": 820, "nodeType": "ExpressionStatement", - "src": "599:45:3" + "src": "522:45:3" } } ] }, "documentation": null, - "id": 115, + "id": 854, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2513,16 +2313,16 @@ "name": "execute", "nodeType": "FunctionDefinition", "parameters": { - "id": 64, + "id": 803, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55, + "id": 794, "name": "to", "nodeType": "VariableDeclaration", - "scope": 115, - "src": "407:10:3", + "scope": 854, + "src": "330:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2530,10 +2330,10 @@ "typeString": "address" }, "typeName": { - "id": 54, + "id": 793, "name": "address", "nodeType": "ElementaryTypeName", - "src": "407:7:3", + "src": "330:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2544,11 +2344,11 @@ }, { "constant": false, - "id": 57, + "id": 796, "name": "value", "nodeType": "VariableDeclaration", - "scope": 115, - "src": "419:13:3", + "scope": 854, + "src": "342:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2556,10 +2356,10 @@ "typeString": "uint256" }, "typeName": { - "id": 56, + "id": 795, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "419:7:3", + "src": "342:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2570,11 +2370,11 @@ }, { "constant": false, - "id": 59, + "id": 798, "name": "data", "nodeType": "VariableDeclaration", - "scope": 115, - "src": "434:10:3", + "scope": 854, + "src": "357:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2582,10 +2382,10 @@ "typeString": "bytes" }, "typeName": { - "id": 58, + "id": 797, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "434:5:3", + "src": "357:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2596,26 +2396,26 @@ }, { "constant": false, - "id": 61, + "id": 800, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 115, - "src": "446:24:3", + "scope": 854, + "src": "369:24:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 60, + "id": 799, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "446:14:3", + "referencedDeclaration": 1658, + "src": "369:14:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, @@ -2624,11 +2424,11 @@ }, { "constant": false, - "id": 63, + "id": 802, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 115, - "src": "472:13:3", + "scope": 854, + "src": "395:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2636,10 +2436,10 @@ "typeString": "uint256" }, "typeName": { - "id": 62, + "id": 801, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "472:7:3", + "src": "395:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2649,20 +2449,20 @@ "visibility": "internal" } ], - "src": "406:80:3" + "src": "329:80:3" }, "payable": false, "returnParameters": { - "id": 67, + "id": 806, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 66, + "id": 805, "name": "success", "nodeType": "VariableDeclaration", - "scope": 115, - "src": "521:12:3", + "scope": 854, + "src": "444:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2670,10 +2470,10 @@ "typeString": "bool" }, "typeName": { - "id": 65, + "id": 804, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "521:4:3", + "src": "444:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2683,86 +2483,86 @@ "visibility": "internal" } ], - "src": "520:14:3" + "src": "443:14:3" }, - "scope": 153, - "src": "390:548:3", + "scope": 892, + "src": "313:548:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 129, + "id": 868, "nodeType": "Block", - "src": "1071:182:3", + "src": "994:182:3", "statements": [ { "externalReferences": [ { - "txGas": { - "declaration": 123, + "data": { + "declaration": 860, "isOffset": false, "isSlot": false, - "src": "1184:5:3", - "valueSize": 1 - } - }, - { - "to": { - "declaration": 117, - "isOffset": false, - "isSlot": false, - "src": "1191:2:3", - "valueSize": 1 - } - }, - { - "value": { - "declaration": 119, - "isOffset": false, - "isSlot": false, - "src": "1195:5:3", + "src": "1148:4:3", "valueSize": 1 } }, { "data": { - "declaration": 121, + "declaration": 860, "isOffset": false, "isSlot": false, - "src": "1225:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 121, - "isOffset": false, - "isSlot": false, - "src": "1206:4:3", + "src": "1129:4:3", "valueSize": 1 } }, { "success": { - "declaration": 126, + "declaration": 865, "isOffset": false, "isSlot": false, - "src": "1168:7:3", + "src": "1091:7:3", + "valueSize": 1 + } + }, + { + "txGas": { + "declaration": 862, + "isOffset": false, + "isSlot": false, + "src": "1107:5:3", + "valueSize": 1 + } + }, + { + "to": { + "declaration": 856, + "isOffset": false, + "isSlot": false, + "src": "1114:2:3", + "valueSize": 1 + } + }, + { + "value": { + "declaration": 858, + "isOffset": false, + "isSlot": false, + "src": "1118:5:3", "valueSize": 1 } } ], - "id": 128, + "id": 867, "nodeType": "InlineAssembly", "operations": "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1145:108:3" + "src": "1068:108:3" } ] }, "documentation": null, - "id": 130, + "id": 869, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2770,16 +2570,16 @@ "name": "executeCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 124, + "id": 863, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 117, + "id": 856, "name": "to", "nodeType": "VariableDeclaration", - "scope": 130, - "src": "965:10:3", + "scope": 869, + "src": "888:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2787,10 +2587,10 @@ "typeString": "address" }, "typeName": { - "id": 116, + "id": 855, "name": "address", "nodeType": "ElementaryTypeName", - "src": "965:7:3", + "src": "888:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2801,11 +2601,11 @@ }, { "constant": false, - "id": 119, + "id": 858, "name": "value", "nodeType": "VariableDeclaration", - "scope": 130, - "src": "977:13:3", + "scope": 869, + "src": "900:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2813,10 +2613,10 @@ "typeString": "uint256" }, "typeName": { - "id": 118, + "id": 857, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "977:7:3", + "src": "900:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2827,11 +2627,11 @@ }, { "constant": false, - "id": 121, + "id": 860, "name": "data", "nodeType": "VariableDeclaration", - "scope": 130, - "src": "992:10:3", + "scope": 869, + "src": "915:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2839,10 +2639,10 @@ "typeString": "bytes" }, "typeName": { - "id": 120, + "id": 859, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "992:5:3", + "src": "915:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2853,11 +2653,11 @@ }, { "constant": false, - "id": 123, + "id": 862, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 130, - "src": "1004:13:3", + "scope": 869, + "src": "927:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2865,10 +2665,10 @@ "typeString": "uint256" }, "typeName": { - "id": 122, + "id": 861, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1004:7:3", + "src": "927:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2878,20 +2678,20 @@ "visibility": "internal" } ], - "src": "964:54:3" + "src": "887:54:3" }, "payable": false, "returnParameters": { - "id": 127, + "id": 866, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 126, + "id": 865, "name": "success", "nodeType": "VariableDeclaration", - "scope": 130, - "src": "1053:12:3", + "scope": 869, + "src": "976:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2899,10 +2699,10 @@ "typeString": "bool" }, "typeName": { - "id": 125, + "id": 864, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1053:4:3", + "src": "976:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2912,77 +2712,77 @@ "visibility": "internal" } ], - "src": "1052:14:3" + "src": "975:14:3" }, - "scope": 153, - "src": "944:309:3", + "scope": 892, + "src": "867:309:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 142, + "id": 881, "nodeType": "Block", - "src": "1379:183:3", + "src": "1302:183:3", "statements": [ { "externalReferences": [ { "data": { - "declaration": 134, + "declaration": 873, "isOffset": false, "isSlot": false, - "src": "1534:4:3", - "valueSize": 1 - } - }, - { - "txGas": { - "declaration": 136, - "isOffset": false, - "isSlot": false, - "src": "1500:5:3", - "valueSize": 1 - } - }, - { - "to": { - "declaration": 132, - "isOffset": false, - "isSlot": false, - "src": "1507:2:3", + "src": "1457:4:3", "valueSize": 1 } }, { "data": { - "declaration": 134, + "declaration": 873, "isOffset": false, "isSlot": false, - "src": "1515:4:3", + "src": "1438:4:3", "valueSize": 1 } }, { "success": { - "declaration": 139, + "declaration": 878, "isOffset": false, "isSlot": false, - "src": "1476:7:3", + "src": "1399:7:3", + "valueSize": 1 + } + }, + { + "txGas": { + "declaration": 875, + "isOffset": false, + "isSlot": false, + "src": "1423:5:3", + "valueSize": 1 + } + }, + { + "to": { + "declaration": 871, + "isOffset": false, + "isSlot": false, + "src": "1430:2:3", "valueSize": 1 } } ], - "id": 141, + "id": 880, "nodeType": "InlineAssembly", "operations": "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1453:109:3" + "src": "1376:109:3" } ] }, "documentation": null, - "id": 143, + "id": 882, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2990,16 +2790,16 @@ "name": "executeDelegateCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 137, + "id": 876, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 132, + "id": 871, "name": "to", "nodeType": "VariableDeclaration", - "scope": 143, - "src": "1288:10:3", + "scope": 882, + "src": "1211:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3007,10 +2807,10 @@ "typeString": "address" }, "typeName": { - "id": 131, + "id": 870, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1288:7:3", + "src": "1211:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3021,11 +2821,11 @@ }, { "constant": false, - "id": 134, + "id": 873, "name": "data", "nodeType": "VariableDeclaration", - "scope": 143, - "src": "1300:10:3", + "scope": 882, + "src": "1223:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3033,10 +2833,10 @@ "typeString": "bytes" }, "typeName": { - "id": 133, + "id": 872, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1300:5:3", + "src": "1223:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3047,11 +2847,11 @@ }, { "constant": false, - "id": 136, + "id": 875, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 143, - "src": "1312:13:3", + "scope": 882, + "src": "1235:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3059,10 +2859,10 @@ "typeString": "uint256" }, "typeName": { - "id": 135, + "id": 874, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1312:7:3", + "src": "1235:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3072,20 +2872,20 @@ "visibility": "internal" } ], - "src": "1287:39:3" + "src": "1210:39:3" }, "payable": false, "returnParameters": { - "id": 140, + "id": 879, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 139, + "id": 878, "name": "success", "nodeType": "VariableDeclaration", - "scope": 143, - "src": "1361:12:3", + "scope": 882, + "src": "1284:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3093,10 +2893,10 @@ "typeString": "bool" }, "typeName": { - "id": 138, + "id": 877, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1361:4:3", + "src": "1284:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3106,59 +2906,59 @@ "visibility": "internal" } ], - "src": "1360:14:3" + "src": "1283:14:3" }, - "scope": 153, - "src": "1259:303:3", + "scope": 892, + "src": "1182:303:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 151, + "id": 890, "nodeType": "Block", - "src": "1662:167:3", + "src": "1585:167:3", "statements": [ { "externalReferences": [ - { - "data": { - "declaration": 145, - "isOffset": false, - "isSlot": false, - "src": "1788:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 145, - "isOffset": false, - "isSlot": false, - "src": "1807:4:3", - "valueSize": 1 - } - }, { "newContract": { - "declaration": 148, + "declaration": 887, "isOffset": false, "isSlot": false, - "src": "1759:11:3", + "src": "1682:11:3", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 884, + "isOffset": false, + "isSlot": false, + "src": "1711:4:3", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 884, + "isOffset": false, + "isSlot": false, + "src": "1730:4:3", "valueSize": 1 } } ], - "id": 150, + "id": 889, "nodeType": "InlineAssembly", "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", - "src": "1736:93:3" + "src": "1659:93:3" } ] }, "documentation": null, - "id": 152, + "id": 891, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3166,16 +2966,16 @@ "name": "executeCreate", "nodeType": "FunctionDefinition", "parameters": { - "id": 146, + "id": 885, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 145, + "id": 884, "name": "data", "nodeType": "VariableDeclaration", - "scope": 152, - "src": "1591:10:3", + "scope": 891, + "src": "1514:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3183,10 +2983,10 @@ "typeString": "bytes" }, "typeName": { - "id": 144, + "id": 883, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1591:5:3", + "src": "1514:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3196,20 +2996,20 @@ "visibility": "internal" } ], - "src": "1590:12:3" + "src": "1513:12:3" }, "payable": false, "returnParameters": { - "id": 149, + "id": 888, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 148, + "id": 887, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 152, - "src": "1637:19:3", + "scope": 891, + "src": "1560:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3217,10 +3017,10 @@ "typeString": "address" }, "typeName": { - "id": 147, + "id": 886, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1637:7:3", + "src": "1560:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3230,20 +3030,20 @@ "visibility": "internal" } ], - "src": "1636:21:3" + "src": "1559:21:3" }, - "scope": 153, - "src": "1568:261:3", + "scope": 892, + "src": "1491:261:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 154, - "src": "198:1633:3" + "scope": 893, + "src": "214:1540:3" } ], - "src": "0:1832:3" + "src": "0:1755:3" }, "compiler": { "name": "solc", @@ -3251,5 +3051,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.083Z" + "updatedAt": "2018-09-26T08:32:07.631Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/GnosisSafe.json b/safe-contracts/build/contracts/GnosisSafe.json index fc42c2d0..a3754675 100644 --- a/safe-contracts/build/contracts/GnosisSafe.json +++ b/safe-contracts/build/contracts/GnosisSafe.json @@ -22,7 +22,7 @@ { "constant": true, "inputs": [], - "name": "DOMAIN_SEPERATOR_TYPEHASH", + "name": "DOMAIN_SEPARATOR_TYPEHASH", "outputs": [ { "name": "", @@ -111,6 +111,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "_masterCopy", + "type": "address" + } + ], + "name": "changeMasterCopy", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], @@ -167,6 +181,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "nonce", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [], @@ -184,7 +212,21 @@ { "constant": true, "inputs": [], - "name": "domainSeperator", + "name": "SAFE_MSG_TYPEHASH", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "SAFE_TX_TYPEHASH", "outputs": [ { "name": "", @@ -249,6 +291,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "domainSeparator", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [ @@ -290,6 +346,78 @@ "stateMutability": "payable", "type": "fallback" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "txHash", + "type": "bytes32" + } + ], + "name": "ExecutionFailed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "owner", + "type": "address" + } + ], + "name": "AddedOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "owner", + "type": "address" + } + ], + "name": "RemovedOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "threshold", + "type": "uint256" + } + ], + "name": "ChangedThreshold", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "module", + "type": "address" + } + ], + "name": "EnabledModule", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "module", + "type": "address" + } + ], + "name": "DisabledModule", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -327,64 +455,352 @@ "payable": false, "stateMutability": "nonpayable", "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "operation", + "type": "uint8" + }, + { + "name": "safeTxGas", + "type": "uint256" + }, + { + "name": "dataGas", + "type": "uint256" + }, + { + "name": "gasPrice", + "type": "uint256" + }, + { + "name": "gasToken", + "type": "address" + }, + { + "name": "refundReceiver", + "type": "address" + }, + { + "name": "signatures", + "type": "bytes" + } + ], + "name": "execTransaction", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "operation", + "type": "uint8" + } + ], + "name": "requiredTxGas", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "hashToApprove", + "type": "bytes32" + } + ], + "name": "approveHash", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_data", + "type": "bytes" + } + ], + "name": "signMessage", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_data", + "type": "bytes" + }, + { + "name": "_signature", + "type": "bytes" + } + ], + "name": "isValidSignature", + "outputs": [ + { + "name": "isValid", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "message", + "type": "bytes" + } + ], + "name": "getMessageHash", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "operation", + "type": "uint8" + }, + { + "name": "safeTxGas", + "type": "uint256" + }, + { + "name": "dataGas", + "type": "uint256" + }, + { + "name": "gasPrice", + "type": "uint256" + }, + { + "name": "gasToken", + "type": "address" + }, + { + "name": "refundReceiver", + "type": "address" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "encodeTransactionData", + "outputs": [ + { + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "operation", + "type": "uint8" + }, + { + "name": "safeTxGas", + "type": "uint256" + }, + { + "name": "dataGas", + "type": "uint256" + }, + { + "name": "gasPrice", + "type": "uint256" + }, + { + "name": "gasToken", + "type": "address" + }, + { + "name": "refundReceiver", + "type": "address" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "getTransactionHash", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506131eb806100206000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100fe5780630ec78d9e1461014b5780631da5187f146102215780632f54bf6e14610254578063468721a7146102af578063610b592514610367578063694e80c3146103aa57806385e332cd146103d75780638cff63551461042e578063a0e67e2b14610485578063a3f4df7e146104f1578063b2494df314610581578063cb73ac56146105ed578063e009cfde14610620578063e318b52b14610683578063e75235b814610706578063f8dc5dd914610731578063ffa1ad741461079e575b005b34801561010a57600080fd5b50610149600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061082e565b005b34801561015757600080fd5b5061021f6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c34565b005b34801561022d57600080fd5b50610236610dba565b60405180826000191660001916815260200191505060405180910390f35b34801561026057600080fd5b50610295600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610de1565b604051808215151515815260200191505060405180910390f35b3480156102bb57600080fd5b5061034d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610e63565b604051808215151515815260200191505060405180910390f35b34801561037357600080fd5b506103a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f8e565b005b3480156103b657600080fd5b506103d560048036038101908080359060200190929190505050611368565b005b3480156103e357600080fd5b506103ec61157a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043a57600080fd5b5061044361157f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561049157600080fd5b5061049a611584565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104dd5780820151818401526020810190506104c2565b505050509050019250505060405180910390f35b3480156104fd57600080fd5b5061050661171f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054657808201518184015260208101905061052b565b50505050905090810190601f1680156105735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561058d57600080fd5b50610596611758565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105d95780820151818401526020810190506105be565b505050509050019250505060405180910390f35b3480156105f957600080fd5b506106026119fb565b60405180826000191660001916815260200191505060405180910390f35b34801561062c57600080fd5b50610681600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a01565b005b34801561068f57600080fd5b50610704600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e16565b005b34801561071257600080fd5b5061071b612463565b6040518082815260200191505060405180910390f35b34801561073d57600080fd5b5061079c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061246d565b005b3480156107aa57600080fd5b506107b3612952565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107f35780820151818401526020810190506107d8565b50505050905090810190601f1680156108205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561094b5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156109bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610aac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060026000815480929190600101919050555080600354141515610c3057610c2f81611368565b5b5050565b600060010260045460001916141515610cb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570657261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515610d695780518252602082019150602081019050602083039250610d44565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060048160001916905550610daa848461298b565b610db48282612e4a565b50505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610f77576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610f84858585855a613080565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156110ab5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561111f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60025481111515156114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611570576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060038190555050565b600181565b600181565b6060806000806002546040519080825280602002602001820160405280156115bb5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156117165780838381518110151561166b57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611626565b82935050505090565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561186a576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506117c6565b826040519080825280602002602001820160405280156118995781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156119f25781818481518110151561194857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611903565b80935050505090565b60045481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611aca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611b1e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611b92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611cb9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611edf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611f335750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611fa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156120e85750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561215c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612284576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160025403101515156125d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561262d5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156126a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156127c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055508060035414151561294d5761294c81611368565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b600080600080600354141515612a09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515612aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515612b47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015612db6578482815181101515612b6757fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015612bc75750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612c3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612d28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050612b50565b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600281905550836003819055505050505050565b6000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff1614151561307c5761300782825a61317d565b151561307b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b6000806000600281111561309057fe5b84600281111561309c57fe5b14156130b5576130ae87878786613194565b9150613173565b600160028111156130c257fe5b8460028111156130ce57fe5b14156130e6576130df87868561317d565b9150613172565b6130ef856131ad565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008451602086018786f490509392505050565b6000806000845160208601878987f19050949350505050565b60008151602083016000f090509190505600a165627a7a72305820affd13be83ad3f1907ab4cfd7c1fcfd0e0e0a4618e72901b2913e0953ed472c50029", - "deployedBytecode": "0x6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100fe5780630ec78d9e1461014b5780631da5187f146102215780632f54bf6e14610254578063468721a7146102af578063610b592514610367578063694e80c3146103aa57806385e332cd146103d75780638cff63551461042e578063a0e67e2b14610485578063a3f4df7e146104f1578063b2494df314610581578063cb73ac56146105ed578063e009cfde14610620578063e318b52b14610683578063e75235b814610706578063f8dc5dd914610731578063ffa1ad741461079e575b005b34801561010a57600080fd5b50610149600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061082e565b005b34801561015757600080fd5b5061021f6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c34565b005b34801561022d57600080fd5b50610236610dba565b60405180826000191660001916815260200191505060405180910390f35b34801561026057600080fd5b50610295600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610de1565b604051808215151515815260200191505060405180910390f35b3480156102bb57600080fd5b5061034d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610e63565b604051808215151515815260200191505060405180910390f35b34801561037357600080fd5b506103a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f8e565b005b3480156103b657600080fd5b506103d560048036038101908080359060200190929190505050611368565b005b3480156103e357600080fd5b506103ec61157a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043a57600080fd5b5061044361157f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561049157600080fd5b5061049a611584565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104dd5780820151818401526020810190506104c2565b505050509050019250505060405180910390f35b3480156104fd57600080fd5b5061050661171f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054657808201518184015260208101905061052b565b50505050905090810190601f1680156105735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561058d57600080fd5b50610596611758565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105d95780820151818401526020810190506105be565b505050509050019250505060405180910390f35b3480156105f957600080fd5b506106026119fb565b60405180826000191660001916815260200191505060405180910390f35b34801561062c57600080fd5b50610681600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a01565b005b34801561068f57600080fd5b50610704600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e16565b005b34801561071257600080fd5b5061071b612463565b6040518082815260200191505060405180910390f35b34801561073d57600080fd5b5061079c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061246d565b005b3480156107aa57600080fd5b506107b3612952565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107f35780820151818401526020810190506107d8565b50505050905090810190601f1680156108205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561094b5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156109bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610aac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060026000815480929190600101919050555080600354141515610c3057610c2f81611368565b5b5050565b600060010260045460001916141515610cb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570657261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515610d695780518252602082019150602081019050602083039250610d44565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060048160001916905550610daa848461298b565b610db48282612e4a565b50505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610f77576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610f84858585855a613080565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156110ab5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561111f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60025481111515156114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611570576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060038190555050565b600181565b600181565b6060806000806002546040519080825280602002602001820160405280156115bb5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156117165780838381518110151561166b57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611626565b82935050505090565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561186a576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506117c6565b826040519080825280602002602001820160405280156118995781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156119f25781818481518110151561194857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611903565b80935050505090565b60045481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611aca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611b1e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611b92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611cb9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611edf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611f335750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611fa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156120e85750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561215c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612284576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160025403101515156125d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561262d5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156126a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156127c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055508060035414151561294d5761294c81611368565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b600080600080600354141515612a09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515612aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515612b47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015612db6578482815181101515612b6757fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015612bc75750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612c3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612d28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050612b50565b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600281905550836003819055505050505050565b6000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff1614151561307c5761300782825a61317d565b151561307b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b6000806000600281111561309057fe5b84600281111561309c57fe5b14156130b5576130ae87878786613194565b9150613173565b600160028111156130c257fe5b8460028111156130ce57fe5b14156130e6576130df87868561317d565b9150613172565b6130ef856131ad565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008451602086018786f490509392505050565b6000806000845160208601878987f19050949350505050565b60008151602083016000f090509190505600a165627a7a72305820affd13be83ad3f1907ab4cfd7c1fcfd0e0e0a4618e72901b2913e0953ed472c50029", - "sourceMap": "322:1070:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;322:1070:4;;;;;;;", - "deployedSourceMap": "322:1070:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2093:595:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;933:457:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;933:457:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;458:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;458:118:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5613:129:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5613:129:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2712:429:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2712:429:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:459:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;5087:399:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5087:399:11;;;;;;;;;;;;;;;;;;;;;;;;;;488:55:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:10;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5824:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5824:458:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5824:458:11;;;;;;;;;;;;;;;;;390:46:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;390:46:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;390:46:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3220:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3220:738:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3220:738:10;;;;;;;;;;;;;;;;;583:30:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;583:30:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1902:474:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1902:474:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4147:751:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4147:751:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:115:11;;;;;;;;;;;;;;;;;;;;;;;3030:783;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3030:783:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;442:40:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;442:40:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;442:40:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:11;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:1:11;2256:5;:10;;;;:38;;;;;337:3;2270:24;;:5;:24;;;;2256:38;2248:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:1;2387:6;:13;2394:5;2387:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2379:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2463:6;:23;337:3;2463:23;;;;;;;;;;;;;;;;;;;;;;;;;2447:6;:13;2454:5;2447:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2522:5;2496:6;:23;337:3;2496:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2537:10;;:12;;;;;;;;;;;;;2630:10;2617:9;;:23;;2613:68;;;2654:27;2670:10;2654:15;:27::i;:::-;2613:68;2093:595;;:::o;933:457:4:-;1067:1;1048:20;;:15;;:20;;;;1040:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;510:66;1151:25;;1178:4;1140:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1140:43:4;;;1130:54;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1130:54:4;;;;;;;;;;;;;;;;1112:15;:72;;;;;;;1194:32;1206:7;1215:10;1194:11;:32::i;:::-;1361:22;1374:2;1378:4;1361:12;:22::i;:::-;933:457;;;;:::o;458:118::-;510:66;458:118;;;:::o;5613:129:11:-;5690:4;5734:1;5717:6;:13;5724:5;5717:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5710:25;;5613:129;;;:::o;2712:429:10:-;2844:12;2952:1;2929:7;:19;2937:10;2929:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2921:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3088:46;3096:2;3100:5;3107:4;3113:9;3124;3088:7;:46::i;:::-;3078:56;;2712:429;;;;;;:::o;1182:459::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:10;1337:6;1329:20;;;;:59;;;;;539:3;1353:35;;1361:6;1353:35;;;;1329:59;1321:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:1;1483:7;:15;1491:6;1483:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1475:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1565:7;:25;539:3;1565:25;;;;;;;;;;;;;;;;;;;;;;;;;1547:7;:15;1555:6;1547:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1628:6;1600:7;:25;539:3;1600:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1182:459;:::o;5087:399:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5271:10:11;;5257;:24;;5249:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5405:1;5391:10;:15;;5383:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:10;5457:9;:22;;;;5087:399;:::o;488:55:10:-;539:3;488:55;:::o;287:54:11:-;337:3;287:54;:::o;5824:458::-;5890:9;5915:22;6009:13;6036:20;5954:10;;5940:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5940:25:11;;;;5915:50;;6025:1;6009:17;;6059:6;:23;337:3;6059:23;;;;;;;;;;;;;;;;;;;;;;;;;6036:46;;6092:162;337:3;6098:31;;:12;:31;;;;6092:162;;;6160:12;6145:5;6151;6145:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6201:6;:20;6208:12;6201:20;;;;;;;;;;;;;;;;;;;;;;;;;6186:35;;6235:8;;;;;;;6092:162;;;6270:5;6263:12;;5824:458;;;;:::o;390:46:10:-;;;;;;;;;;;;;;;;;;;;:::o;3220:738::-;3287:9;3346:19;3379:21;3579:22;3368:1;3346:23;;3403:7;:25;539:3;3403:25;;;;;;;;;;;;;;;;;;;;;;;;;3379:49;;3438:132;539:3;3444:33;;:13;:33;;;;3438:132;;;3509:7;:22;3517:13;3509:22;;;;;;;;;;;;;;;;;;;;;;;;;3493:38;;3545:14;;;;;;;3438:132;;;3618:11;3604:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3604:26:10;;;;3579:51;;3688:1;3674:15;;3715:7;:25;539:3;3715:25;;;;;;;;;;;;;;;;;;;;;;;;;3699:41;;3750:180;539:3;3756:33;;:13;:33;;;;3750:180;;;3826:13;3805:5;3811:11;3805:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3869:7;:22;3877:13;3869:22;;;;;;;;;;;;;;;;;;;;;;;;;3853:38;;3905:14;;;;;;;3750:180;;;3946:5;3939:12;;3220:738;;;;:::o;583:30:4:-;;;;:::o;1902:474:10:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2116:1:10;2105:6;2097:20;;;;:59;;;;;539:3;2121:35;;2129:6;2121:35;;;;2097:59;2089:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:6;2210:38;;:7;:19;2218:10;2210:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2202:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2325:7;:15;2333:6;2325:15;;;;;;;;;;;;;;;;;;;;;;;;;2303:7;:19;2311:10;2303:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2368:1;2350:7;:15;2358:6;2350:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1902:474;;:::o;4147:751:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:1:11;4318:8;:13;;;;:44;;;;;337:3;4335:27;;:8;:27;;;;4318:44;4310:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4475:1;4455:6;:16;4462:8;4455:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4447:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4621:1;4609:8;:13;;;;:44;;;;;337:3;4626:27;;:8;:27;;;;4609:44;4601:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:8;4706:29;;:6;:17;4713:9;4706:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4698:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4807:6;:16;4814:8;4807:16;;;;;;;;;;;;;;;;;;;;;;;;;4788:6;:16;4795:8;4788:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4853:8;4833:6;:17;4840:9;4833:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4890:1;4871:6;:16;4878:8;4871:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4147:751;;;:::o;5492:115::-;5561:7;5591:9;;5584:16;;5492:115;:::o;3030:783::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3256:10:11;3251:1;3238:10;;:14;:28;;3230:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3431:1;3422:5;:10;;;;:38;;;;;337:3;3436:24;;:5;:24;;;;3422:38;3414:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3534:5;3513:26;;:6;:17;3520:9;3513:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3505:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:6;:13;3619:5;3612:13;;;;;;;;;;;;;;;;;;;;;;;;;3592:6;:17;3599:9;3592:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3651:1;3635:6;:13;3642:5;3635:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3662:10;;:12;;;;;;;;;;;;;;3755:10;3742:9;;:23;;3738:68;;;3779:27;3795:10;3779:15;:27::i;:::-;3738:68;3030:783;;;:::o;442:40:10:-;;;;;;;;;;;;;;;;;;;;:::o;643:1210:11:-;1249:20;1302:9;1401:13;879:1;866:9;;:14;858:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1022:7;:14;1008:10;:28;;1000:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:1;1146:10;:15;;1138:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:3;1249:38;;1314:1;1302:13;;1297:433;1321:7;:14;1317:1;:18;1297:433;;;1417:7;1425:1;1417:10;;;;;;;;;;;;;;;;;;1401:26;;1458:1;1449:5;:10;;;;:38;;;;;337:3;1463:24;;:5;:24;;;;1449:38;1441:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1605:1;1588:6;:13;1595:5;1588:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1580:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1680:5;1657:6;:20;1664:12;1657:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1714:5;1699:20;;1337:3;;;;;;;1297:433;;;337:3;1739:6;:20;1746:12;1739:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1800:7;:14;1787:10;:27;;;;1836:10;1824:9;:22;;;;643:1210;;;;;:::o;606:409:10:-;720:1;691:7;:25;539:3;691:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;683:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;539:3;773:7;:25;539:3;773:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;837:1;831:2;:7;;;;827:181;;;932:40;952:2;956:4;962:9;932:19;:40::i;:::-;924:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:181;606:409;;:::o;390:548:3:-;521:12;792:19;566;553:32;;;;;;;;:9;:32;;;;;;;;;549:383;;;609:35;621:2;625:5;632:4;638:5;609:11;:35::i;:::-;599:45;;549:383;;;676:27;663:40;;;;;;;;:9;:40;;;;;;;;;659:273;;;727:36;747:2;751:4;757:5;727:19;:36::i;:::-;717:46;;659:273;;;814:19;828:4;814:13;:19::i;:::-;792:41;;872:1;857:11;:16;;;;847:26;;892:29;909:11;892:29;;;;;;;;;;;;;;;;;;;;;;659:273;549:383;390:548;;;;;;;;:::o;1259:303::-;1361:12;1544:1;1541;1534:4;1528:11;1521:4;1515;1511:15;1507:2;1500:5;1487:59;1476:70;;1462:94;;;;;:::o;944:309::-;1053:12;1235:1;1232;1225:4;1219:11;1212:4;1206;1202:15;1195:5;1191:2;1184:5;1179:58;1168:69;;1154:93;;;;;;:::o;1568:261::-;1637:19;1807:4;1801:11;1794:4;1788;1784:15;1781:1;1774:39;1759:54;;1745:78;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./Module.sol\";\nimport \"./ModuleManager.sol\";\nimport \"./OwnerManager.sol\";\n\n\n/// @title Gnosis Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n/// @author Stefan George - \ncontract GnosisSafe is ModuleManager, OwnerManager {\n\n //keccak256(\n // \"EIP712Domain(address verifyingContract)\"\n //);\n bytes32 public constant DOMAIN_SEPERATOR_TYPEHASH = 0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749;\n\n bytes32 public domainSeperator;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n /// @param to Contract address for optional delegate call.\n /// @param data Data payload for optional delegate call.\n function setup(address[] _owners, uint256 _threshold, address to, bytes data)\n public\n {\n require(domainSeperator == 0, \"Domain Seperator already set!\");\n domainSeperator = keccak256(abi.encode(DOMAIN_SEPERATOR_TYPEHASH, this));\n setupOwners(_owners, _threshold);\n // As setupOwners can only be called if the contract has not been initialized we don't need a check for setupModules\n setupModules(to, data);\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b506153e7806100206000396000f300608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a1028c4146101825780630d582f13146102075780630ec78d9e146102545780631db61b541461032a57806320c13b0b1461035d5780632f54bf6e14610424578063468721a71461047f578063610b592514610537578063694e80c31461057a5780636a761202146105a75780637de7edef1461070357806385a5affe1461074657806385e332cd146107af5780638cff635514610806578063a0e67e2b1461085d578063a3f4df7e146108c9578063affed0e014610959578063b2494df314610984578063c0856ffc146109f0578063c4ca3a9c14610a23578063ccafc38714610ad7578063d4d9bdcd14610b0a578063d8d11f7814610b3b578063e009cfde14610c5f578063e318b52b14610cc2578063e75235b814610d45578063e86637db14610d70578063f698da2514610ef1578063f8dc5dd914610f24578063ffa1ad7414610f91575b005b34801561018e57600080fd5b506101e9600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611021565b60405180826000191660001916815260200191505060405180910390f35b34801561021357600080fd5b50610252600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112c7565b005b34801561026057600080fd5b506103286004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611730565b005b34801561033657600080fd5b5061033f6118ae565b60405180826000191660001916815260200191505060405180910390f35b34801561036957600080fd5b5061040a600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506118d5565b604051808215151515815260200191505060405180910390f35b34801561043057600080fd5b50610465600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061192b565b604051808215151515815260200191505060405180910390f35b34801561048b57600080fd5b5061051d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506119ad565b604051808215151515815260200191505060405180910390f35b34801561054357600080fd5b50610578600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ad9565b005b34801561058657600080fd5b506105a560048036038101908080359060200190929190505050611f1a565b005b3480156105b357600080fd5b506106e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612165565b604051808215151515815260200191505060405180910390f35b34801561070f57600080fd5b50610744600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612410565b005b34801561075257600080fd5b506107ad600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506125d1565b005b3480156107bb57600080fd5b506107c46126c6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561081257600080fd5b5061081b6126cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561086957600080fd5b506108726126d0565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156108b557808201518184015260208101905061089a565b505050509050019250505060405180910390f35b3480156108d557600080fd5b506108de61286b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561091e578082015181840152602081019050610903565b50505050905090810190601f16801561094b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561096557600080fd5b5061096e6128a4565b6040518082815260200191505060405180910390f35b34801561099057600080fd5b506109996128aa565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156109dc5780820151818401526020810190506109c1565b505050509050019250505060405180910390f35b3480156109fc57600080fd5b50610a05612b51565b60405180826000191660001916815260200191505060405180910390f35b348015610a2f57600080fd5b50610ac1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050612b78565b6040518082815260200191505060405180910390f35b348015610ae357600080fd5b50610aec612d27565b60405180826000191660001916815260200191505060405180910390f35b348015610b1657600080fd5b50610b396004803603810190808035600019169060200190929190505050612d4e565b005b348015610b4757600080fd5b50610c41600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612e9d565b60405180826000191660001916815260200191505060405180910390f35b348015610c6b57600080fd5b50610cc0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f23565b005b348015610cce57600080fd5b50610d43600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061339f565b005b348015610d5157600080fd5b50610d5a613ab2565b6040518082815260200191505060405180910390f35b348015610d7c57600080fd5b50610e76600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613abc565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610eb6578082015181840152602081019050610e9b565b50505050905090810190601f168015610ee35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610efd57600080fd5b50610f06613de4565b60405180826000191660001916815260200191505060405180910390f35b348015610f3057600080fd5b50610f8f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613dea565b005b348015610f9d57600080fd5b50610fa6614332565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fe6578082015181840152602081019050610fcb565b50505050905090810190601f1680156110135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000807f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca600102836040518082805190602001908083835b60208310151561107e5780518252602082019150602081019050602083039250611059565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206040516020018083600019166000191681526020018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310151561111657805182526020820191506020810190506020830392506110f1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f0100000000000000000000000000000000000000000000000000000000000000026006548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101836000191660001916815260200182600019166000191681526020019450505050506040516020818303038152906040526040518082805190602001908083835b602083101515611292578051825260208201915060208101905060208303925061126d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156113e45750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414151561172c5761172b81611f1a565b5b5050565b6000600102600654600019161415156117b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570617261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156118655780518252602082019150602081019050602083039250611840565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600681600019169055506118a88484848461436b565b50505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b6000806118e184611021565b90506000835114156119145760006007600083600019166000191681526020019081526020016000205414159150611924565b6119218185856000614385565b91505b5092915050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611ac2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611acf858585855a61483b565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ba2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611bf65750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611c6a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611fe3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515612083576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515612122576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806004819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936004546040518082815260200191505060405180910390a150565b60008060605a91506121818d8d8d8d8d8d8d8d8d600554613abc565b90506121f2816040518082805190602001908083835b6020831015156121bc5780518252602082019150602081019050602083039250612197565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902082866001614385565b1515612266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c6964207369676e6174757265732070726f7669646564000000000081525060200191505060405180910390fd5b600560008154809291906001019190505550885a10151515612316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f7420656e6f7567682067617320746f20657865637574652073616665207481526020017f72616e73616374696f6e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61233e8d8d8d8d60008e14801561232d575060008c145b612337578d612339565b5a5b61483b565b92508215156123e9577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c816040518082805190602001908083835b60208310151561239e5780518252602082019150602081019050602083039250612379565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060405180826000191660001916815260200191505060405180910390a15b6000871115612400576123ff8289898989614938565b5b50509a9950505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561258e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561269a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600760006126a984611021565b600019166000191681526020019081526020016000208190555050565b600181565b600181565b6060806000806003546040519080825280602002602001820160405280156127075781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515612862578083838151811015156127b757fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050612772565b82935050505090565b6040805190810160405280600b81526020017f476e6f736973205361666500000000000000000000000000000000000000000081525081565b60055481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156129be57600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612919565b826040519080825280602002602001820160405280156129ed5781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515612b4857818184815181101515612a9d57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612a58565b80935050505090565b7f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca60010281565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b5a9150612c56878787875a61483b565b1515612c6157600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612cec578082015181840152602081019050612cd1565b50505050905090810190601f168015612d195780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b7f14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b2060010281565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515612e3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f6e6c79206f776e6572732063616e20617070726f766520612068617368000081525060200191505060405180910390fd5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083600019166000191681526020019081526020016000208190555050565b6000612eb18b8b8b8b8b8b8b8b8b8b613abc565b6040518082805190602001908083835b602083101515612ee65780518252602082019150602081019050602083039250612ec1565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509a9950505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156130405750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156130b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156131dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156134bc5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515613530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561361d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156136715750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156136e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561380d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600454905090565b606060007f14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b206001028c8c8c6040518082805190602001908083835b602083101515613b1c5780518252602082019150602081019050602083039250613af7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208c8c8c8c8c8c8c604051602001808c600019166000191681526020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a81526020018960001916600019168152602001886002811115613bb757fe5b60ff1681526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019b5050505050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515613c8c5780518252602082019150602081019050602083039250613c67565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f0100000000000000000000000000000000000000000000000000000000000000026006548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101836000191660001916815260200182600019166000191681526020019450505050506040516020818303038152906040529150509a9950505050505050505050565b60065481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613eb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016003540310151515613f56576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015613faa5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561401e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614146576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414151561432d5761432c81611f1a565b5b505050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6143758484614b3a565b61437f8282614ffa565b50505050565b600080600080600080600060606041600454028a5110156143a9576000975061482c565b60009650600091505b600454821015614827576143c68a83615231565b80955081965082975050505060008560ff16141561457d57836001900495506020838b010190508573ffffffffffffffffffffffffffffffffffffffff166320c13b0b8c836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561447a57808201518184015260208101905061445f565b50505050905090810190601f1680156144a75780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156144e05780820151818401526020810190506144c5565b50505050905090810190601f16801561450d5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561452e57600080fd5b505af1158015614542573d6000803e3d6000fd5b505050506040513d602081101561455857600080fd5b81019080805190602001909291905050501515614578576000975061482c565b614759565b60018560ff1614156146d457836001900495508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561462457506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e6000191660001916815260200190815260200160002054145b15614632576000975061482c565b88801561466b57508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156146cf576000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e60001916600019168152602001908152602001600020819055505b614758565b60018c868686604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561474b573d6000803e3d6000fd5b5050506020604051035195505b5b8673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1611158061480957506000600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15614817576000975061482c565b85965081806001019250506143b2565b600197505b50505050505050949350505050565b6000806000600281111561484b57fe5b84600281111561485757fe5b14156148705761486987878786615260565b915061492e565b6001600281111561487d57fe5b84600281111561488957fe5b14156148a15761489a878685615279565b915061492d565b6148aa85615290565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008084865a890301029150600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461497e5782614980565b325b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614a8b578073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515614a86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f73747320776974682065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b614b31565b614a968482846152a2565b1515614b30576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f737473207769746820746f6b81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b50505050505050565b600080600080600454141515614bb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515614c57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515614cf6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015614f65578482815181101515614d1657fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015614d765750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515614dea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614ed7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050614cff565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561510e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff1614151561522d576151b882825a615279565b151561522c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d6000811461539e57602081146153a657600094506153b0565b8294506153b0565b8151158315171594505b5050505093925050505600a165627a7a72305820b33ce345e025ad93709c35dec1e8be2f16ebd2fd36af8615af6eab1cfef85b1b0029", + "deployedBytecode": "0x608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a1028c4146101825780630d582f13146102075780630ec78d9e146102545780631db61b541461032a57806320c13b0b1461035d5780632f54bf6e14610424578063468721a71461047f578063610b592514610537578063694e80c31461057a5780636a761202146105a75780637de7edef1461070357806385a5affe1461074657806385e332cd146107af5780638cff635514610806578063a0e67e2b1461085d578063a3f4df7e146108c9578063affed0e014610959578063b2494df314610984578063c0856ffc146109f0578063c4ca3a9c14610a23578063ccafc38714610ad7578063d4d9bdcd14610b0a578063d8d11f7814610b3b578063e009cfde14610c5f578063e318b52b14610cc2578063e75235b814610d45578063e86637db14610d70578063f698da2514610ef1578063f8dc5dd914610f24578063ffa1ad7414610f91575b005b34801561018e57600080fd5b506101e9600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611021565b60405180826000191660001916815260200191505060405180910390f35b34801561021357600080fd5b50610252600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112c7565b005b34801561026057600080fd5b506103286004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611730565b005b34801561033657600080fd5b5061033f6118ae565b60405180826000191660001916815260200191505060405180910390f35b34801561036957600080fd5b5061040a600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506118d5565b604051808215151515815260200191505060405180910390f35b34801561043057600080fd5b50610465600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061192b565b604051808215151515815260200191505060405180910390f35b34801561048b57600080fd5b5061051d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506119ad565b604051808215151515815260200191505060405180910390f35b34801561054357600080fd5b50610578600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ad9565b005b34801561058657600080fd5b506105a560048036038101908080359060200190929190505050611f1a565b005b3480156105b357600080fd5b506106e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612165565b604051808215151515815260200191505060405180910390f35b34801561070f57600080fd5b50610744600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612410565b005b34801561075257600080fd5b506107ad600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506125d1565b005b3480156107bb57600080fd5b506107c46126c6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561081257600080fd5b5061081b6126cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561086957600080fd5b506108726126d0565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156108b557808201518184015260208101905061089a565b505050509050019250505060405180910390f35b3480156108d557600080fd5b506108de61286b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561091e578082015181840152602081019050610903565b50505050905090810190601f16801561094b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561096557600080fd5b5061096e6128a4565b6040518082815260200191505060405180910390f35b34801561099057600080fd5b506109996128aa565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156109dc5780820151818401526020810190506109c1565b505050509050019250505060405180910390f35b3480156109fc57600080fd5b50610a05612b51565b60405180826000191660001916815260200191505060405180910390f35b348015610a2f57600080fd5b50610ac1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050612b78565b6040518082815260200191505060405180910390f35b348015610ae357600080fd5b50610aec612d27565b60405180826000191660001916815260200191505060405180910390f35b348015610b1657600080fd5b50610b396004803603810190808035600019169060200190929190505050612d4e565b005b348015610b4757600080fd5b50610c41600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612e9d565b60405180826000191660001916815260200191505060405180910390f35b348015610c6b57600080fd5b50610cc0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f23565b005b348015610cce57600080fd5b50610d43600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061339f565b005b348015610d5157600080fd5b50610d5a613ab2565b6040518082815260200191505060405180910390f35b348015610d7c57600080fd5b50610e76600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613abc565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610eb6578082015181840152602081019050610e9b565b50505050905090810190601f168015610ee35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610efd57600080fd5b50610f06613de4565b60405180826000191660001916815260200191505060405180910390f35b348015610f3057600080fd5b50610f8f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613dea565b005b348015610f9d57600080fd5b50610fa6614332565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fe6578082015181840152602081019050610fcb565b50505050905090810190601f1680156110135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000807f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca600102836040518082805190602001908083835b60208310151561107e5780518252602082019150602081019050602083039250611059565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206040516020018083600019166000191681526020018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310151561111657805182526020820191506020810190506020830392506110f1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f0100000000000000000000000000000000000000000000000000000000000000026006548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101836000191660001916815260200182600019166000191681526020019450505050506040516020818303038152906040526040518082805190602001908083835b602083101515611292578051825260208201915060208101905060208303925061126d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156113e45750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414151561172c5761172b81611f1a565b5b5050565b6000600102600654600019161415156117b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570617261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156118655780518252602082019150602081019050602083039250611840565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600681600019169055506118a88484848461436b565b50505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b6000806118e184611021565b90506000835114156119145760006007600083600019166000191681526020019081526020016000205414159150611924565b6119218185856000614385565b91505b5092915050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611ac2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611acf858585855a61483b565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ba2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611bf65750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611c6a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611fe3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515612083576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515612122576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806004819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936004546040518082815260200191505060405180910390a150565b60008060605a91506121818d8d8d8d8d8d8d8d8d600554613abc565b90506121f2816040518082805190602001908083835b6020831015156121bc5780518252602082019150602081019050602083039250612197565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902082866001614385565b1515612266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c6964207369676e6174757265732070726f7669646564000000000081525060200191505060405180910390fd5b600560008154809291906001019190505550885a10151515612316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f7420656e6f7567682067617320746f20657865637574652073616665207481526020017f72616e73616374696f6e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61233e8d8d8d8d60008e14801561232d575060008c145b612337578d612339565b5a5b61483b565b92508215156123e9577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c816040518082805190602001908083835b60208310151561239e5780518252602082019150602081019050602083039250612379565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060405180826000191660001916815260200191505060405180910390a15b6000871115612400576123ff8289898989614938565b5b50509a9950505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561258e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561269a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600760006126a984611021565b600019166000191681526020019081526020016000208190555050565b600181565b600181565b6060806000806003546040519080825280602002602001820160405280156127075781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515612862578083838151811015156127b757fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050612772565b82935050505090565b6040805190810160405280600b81526020017f476e6f736973205361666500000000000000000000000000000000000000000081525081565b60055481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156129be57600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612919565b826040519080825280602002602001820160405280156129ed5781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515612b4857818184815181101515612a9d57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612a58565b80935050505090565b7f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca60010281565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b5a9150612c56878787875a61483b565b1515612c6157600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612cec578082015181840152602081019050612cd1565b50505050905090810190601f168015612d195780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b7f14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b2060010281565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515612e3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f6e6c79206f776e6572732063616e20617070726f766520612068617368000081525060200191505060405180910390fd5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083600019166000191681526020019081526020016000208190555050565b6000612eb18b8b8b8b8b8b8b8b8b8b613abc565b6040518082805190602001908083835b602083101515612ee65780518252602082019150602081019050602083039250612ec1565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509a9950505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156130405750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156130b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156131dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156134bc5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515613530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561361d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156136715750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156136e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561380d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600454905090565b606060007f14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b206001028c8c8c6040518082805190602001908083835b602083101515613b1c5780518252602082019150602081019050602083039250613af7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208c8c8c8c8c8c8c604051602001808c600019166000191681526020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a81526020018960001916600019168152602001886002811115613bb757fe5b60ff1681526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019b5050505050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515613c8c5780518252602082019150602081019050602083039250613c67565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f0100000000000000000000000000000000000000000000000000000000000000026006548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101836000191660001916815260200182600019166000191681526020019450505050506040516020818303038152906040529150509a9950505050505050505050565b60065481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613eb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016003540310151515613f56576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015613faa5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561401e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614146576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414151561432d5761432c81611f1a565b5b505050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6143758484614b3a565b61437f8282614ffa565b50505050565b600080600080600080600060606041600454028a5110156143a9576000975061482c565b60009650600091505b600454821015614827576143c68a83615231565b80955081965082975050505060008560ff16141561457d57836001900495506020838b010190508573ffffffffffffffffffffffffffffffffffffffff166320c13b0b8c836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561447a57808201518184015260208101905061445f565b50505050905090810190601f1680156144a75780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156144e05780820151818401526020810190506144c5565b50505050905090810190601f16801561450d5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561452e57600080fd5b505af1158015614542573d6000803e3d6000fd5b505050506040513d602081101561455857600080fd5b81019080805190602001909291905050501515614578576000975061482c565b614759565b60018560ff1614156146d457836001900495508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561462457506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e6000191660001916815260200190815260200160002054145b15614632576000975061482c565b88801561466b57508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156146cf576000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e60001916600019168152602001908152602001600020819055505b614758565b60018c868686604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561474b573d6000803e3d6000fd5b5050506020604051035195505b5b8673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1611158061480957506000600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15614817576000975061482c565b85965081806001019250506143b2565b600197505b50505050505050949350505050565b6000806000600281111561484b57fe5b84600281111561485757fe5b14156148705761486987878786615260565b915061492e565b6001600281111561487d57fe5b84600281111561488957fe5b14156148a15761489a878685615279565b915061492d565b6148aa85615290565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008084865a890301029150600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461497e5782614980565b325b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614a8b578073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515614a86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f73747320776974682065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b614b31565b614a968482846152a2565b1515614b30576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f737473207769746820746f6b81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b50505050505050565b600080600080600454141515614bb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515614c57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515614cf6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015614f65578482815181101515614d1657fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015614d765750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515614dea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614ed7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050614cff565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561510e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff1614151561522d576151b882825a615279565b151561522c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d6000811461539e57602081146153a657600094506153b0565b8294506153b0565b8151158315171594505b5050505093925050505600a165627a7a72305820b33ce345e025ad93709c35dec1e8be2f16ebd2fd36af8615af6eab1cfef85b1b0029", + "sourceMap": "534:14275:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;534:14275:0;;;;;;;", + "deployedSourceMap": "534:14275:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11905:357;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11905:357:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2225:627:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2187:308:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2187:308:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;820:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11301:446;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11301:446:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5925:129:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5925:129:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:429:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2785:429:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:495;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:495:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:441:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5357:441:6;;;;;;;;;;;;;;;;;;;;;;;;;;3483:1462:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3483:1462:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;10838:130:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10838:130:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:55:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;419:54:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;419:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;6136:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6136:458:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6136:458:6;;;;;;;;;;;;;;;;;646:43:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;646:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;646:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1494:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1494:20:0;;;;;;;;;;;;;;;;;;;;;;;3293:738:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3293:738:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3293:738:5;;;;;;;;;;;;;;;;;1329:110:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1329:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9657:572;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9657:572:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1148:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1148:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10473:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10473:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14303:504;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14303:504:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1938:511:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1938:511:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4345:823:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4345:823:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5804:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5804:115:6;;;;;;;;;;;;;;;;;;;;;;;12975:642:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12975:642:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12975:642:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1520:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1520:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3194:817:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3194:817:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;695:40:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;695:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;695:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11905:357;12003:7;12026:23;1373:66;12086:17;;12115:7;12105:18;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12105:18:0;;;;;;;;;;;;;;;;12075:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12075::0;;;12052:82;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12052:82:0;;;;;;;;;;;;;;;;12026:108;;12196:4;12191:10;;12208:1;12203:7;;12212:15;;12229;12174:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12174:71:0;;;12151:104;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12151:104:0;;;;;;;;;;;;;;;;12144:111;;11905:357;;;;:::o;2225:627:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2397:1:6;2388:5;:10;;;;:38;;;;;469:3;2402:24;;:5;:24;;;;2388:38;2380:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:1;2519:6;:13;2526:5;2519:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2511:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2595:6;:23;469:3;2595:23;;;;;;;;;;;;;;;;;;;;;;;;;2579:6;:13;2586:5;2579:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2654:5;2628:6;:23;469:3;2628:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2669:10;;:12;;;;;;;;;;;;;2696:17;2707:5;2696:17;;;;;;;;;;;;;;;;;;;;;;2794:10;2781:9;;:23;;2777:68;;;2818:27;2834:10;2818:15;:27::i;:::-;2777:68;2225:627;;:::o;2187:308:0:-;2321:1;2302:20;;:15;;:20;;;;2294:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;872:66;2405:25;;2432:4;2394:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2394:43:0;;;2384:54;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2384:54:0;;;;;;;;;;;;;;;;2366:15;:72;;;;;;;2448:40;2458:7;2467:10;2479:2;2483:4;2448:9;:40::i;:::-;2187:308;;;;:::o;820:118::-;872:66;820:118;;;:::o;11301:446::-;11390:12;11418:19;11440:21;11455:5;11440:14;:21::i;:::-;11418:43;;11496:1;11475:10;:17;:22;11471:270;;;11553:1;11523:13;:26;11537:11;11523:26;;;;;;;;;;;;;;;;;;:31;;11513:41;;11471:270;;;11676:54;11692:11;11705:5;11712:10;11724:5;11676:15;:54::i;:::-;11666:64;;11471:270;11301:446;;;;;:::o;5925:129:6:-;6002:4;6046:1;6029:6;:13;6036:5;6029:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;6022:25;;5925:129;;;:::o;2785:429:5:-;2917:12;3025:1;3002:7;:19;3010:10;3002:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2994:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3161:46;3169:2;3173:5;3180:4;3186:9;3197;3161:7;:46::i;:::-;3151:56;;2785:429;;;;;;:::o;1182:495::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:5;1337:6;1329:20;;;;:59;;;;;539:3;1353:35;;1361:6;1353:35;;;;1329:59;1321:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:1;1483:7;:15;1491:6;1483:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1475:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1565:7;:25;539:3;1565:25;;;;;;;;;;;;;;;;;;;;;;;;;1547:7;:15;1555:6;1547:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1628:6;1600:7;:25;539:3;1600:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1649:21;1663:6;1649:21;;;;;;;;;;;;;;;;;;;;;;1182:495;:::o;5357:441:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:10:6;;5527;:24;;5519:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5675:1;5661:10;:15;;5653:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5739:10;5727:9;:22;;;;5764:27;5781:9;;5764:27;;;;;;;;;;;;;;;;;;5357:441;:::o;3483:1462:0:-;3809:12;3837:16;3875:23;3856:9;3837:28;;3901:194;3936:2;3940:5;3947:4;3953:9;3996;4007:7;4016:8;4026;4036:14;4080:5;;3901:21;:194::i;:::-;3875:220;;4113:68;4139:10;4129:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4129:21:0;;;;;;;;;;;;;;;;4152:10;4164;4176:4;4113:15;:68::i;:::-;4105:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4274:5;;:7;;;;;;;;;;;;;4312:9;4299;:22;;4291:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4495:92;4503:2;4507:5;4514:4;4520:9;4544:1;4531:9;:14;:31;;;;;4561:1;4549:8;:13;4531:31;:55;;4577:9;4531:55;;;4565:9;4531:55;4495:7;:92::i;:::-;4485:102;;4602:7;4601:8;4597:82;;;4630:38;4656:10;4646:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4646:21:0;;;;;;;;;;;;;;;;4630:38;;;;;;;;;;;;;;;;;;;;;;;;4597:82;4843:1;4832:8;:12;4828:111;;;4860:68;4874:8;4884:7;4893:8;4903;4913:14;4860:13;:68::i;:::-;4828:111;3483:1462;;;;;;;;;;;;;;:::o;626:248:9:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;10838:130:0:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10960:1:0;10921:13;:36;10935:21;10950:5;10935:14;:21::i;:::-;10921:36;;;;;;;;;;;;;;;;;:40;;;;10838:130;:::o;488:55:5:-;539:3;488:55;:::o;419:54:6:-;469:3;419:54;:::o;6136:458::-;6202:9;6227:22;6321:13;6348:20;6266:10;;6252:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6252:25:6;;;;6227:50;;6337:1;6321:17;;6371:6;:23;469:3;6371:23;;;;;;;;;;;;;;;;;;;;;;;;;6348:46;;6404:162;469:3;6410:31;;:12;:31;;;;6404:162;;;6472:12;6457:5;6463;6457:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6513:6;:20;6520:12;6513:20;;;;;;;;;;;;;;;;;;;;;;;;;6498:35;;6547:8;;;;;;;6404:162;;;6582:5;6575:12;;6136:458;;;;:::o;646:43:0:-;;;;;;;;;;;;;;;;;;;;:::o;1494:20::-;;;;:::o;3293:738:5:-;3360:9;3419:19;3452:21;3652:22;3441:1;3419:23;;3476:7;:25;539:3;3476:25;;;;;;;;;;;;;;;;;;;;;;;;;3452:49;;3511:132;539:3;3517:33;;:13;:33;;;;3511:132;;;3582:7;:22;3590:13;3582:22;;;;;;;;;;;;;;;;;;;;;;;;;3566:38;;3618:14;;;;;;;3511:132;;;3691:11;3677:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3677:26:5;;;;3652:51;;3761:1;3747:15;;3788:7;:25;539:3;3788:25;;;;;;;;;;;;;;;;;;;;;;;;;3772:41;;3823:180;539:3;3829:33;;:13;:33;;;;3823:180;;;3899:13;3878:5;3884:11;3878:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3942:7;:22;3950:13;3942:22;;;;;;;;;;;;;;;;;;;;;;;;;3926:38;;3978:14;;;;;;;3823:180;;;4019:5;4012:12;;3293:738;;;;:::o;1329:110:0:-;1373:66;1329:110;;;:::o;9657:572::-;9796:7;9819:16;10058:19;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9838:9:0;9819:28;;10001:46;10009:2;10013:5;10020:4;10026:9;10037;10001:7;:46::i;:::-;9993:55;;;;;;;;10091:9;10080:8;:20;10058:42;;10208:11;10191:29;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10191:29:0;;;10177:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10177:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1148:109;1191:66;1148:109;;;:::o;10473:202::-;10577:1;10555:6;:18;10562:10;10555:18;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;10547:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10667:1;10623:14;:26;10638:10;10623:26;;;;;;;;;;;;;;;:41;10650:13;10623:41;;;;;;;;;;;;;;;;;:45;;;;10473:202;:::o;14303:504::-;14646:7;14686:113;14708:2;14712:5;14719:4;14725:9;14736;14747:7;14756:8;14766;14776:14;14792:6;14686:21;:113::i;:::-;14676:124;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;14676:124:0;;;;;;;;;;;;;;;;14669:131;;14303:504;;;;;;;;;;;;:::o;1938:511:5:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2152:1:5;2141:6;2133:20;;;;:59;;;;;539:3;2157:35;;2165:6;2157:35;;;;2133:59;2125:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:6;2246:38;;:7;:19;2254:10;2246:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2238:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2361:7;:15;2369:6;2361:15;;;;;;;;;;;;;;;;;;;;;;;;;2339:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2404:1;2386:7;:15;2394:6;2386:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2420:22;2435:6;2420:22;;;;;;;;;;;;;;;;;;;;;;1938:511;;:::o;4345:823:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4528:1:6;4516:8;:13;;;;:44;;;;;469:3;4533:27;;:8;:27;;;;4516:44;4508:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4673:1;4653:6;:16;4660:8;4653:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4645:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4819:1;4807:8;:13;;;;:44;;;;;469:3;4824:27;;:8;:27;;;;4807:44;4799:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4925:8;4904:29;;:6;:17;4911:9;4904:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4896:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5005:6;:16;5012:8;5005:16;;;;;;;;;;;;;;;;;;;;;;;;;4986:6;:16;4993:8;4986:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;5051:8;5031:6;:17;5038:9;5031:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;5088:1;5069:6;:16;5076:8;5069:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;5104:22;5117:8;5104:22;;;;;;;;;;;;;;;;;;;;;;5141:20;5152:8;5141:20;;;;;;;;;;;;;;;;;;;;;;4345:823;;;:::o;5804:115::-;5873:7;5903:9;;5896:16;;5804:115;:::o;12975:642:0:-;13321:5;13342:18;1191:66;13397:16;;13415:2;13419:5;13436:4;13426:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13426:15:0;;;;;;;;;;;;;;;;13443:9;13454;13465:7;13474:8;13484;13494:14;13510:6;13386:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13386:131:0;;;13363:164;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13363:164:0;;;;;;;;;;;;;;;;13342:185;;13566:4;13561:10;;13578:1;13573:7;;13582:15;;13599:10;13544:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13544:66:0;;;13537:73;;12975:642;;;;;;;;;;;;;:::o;1520:30::-;;;;:::o;3194:817:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:10:6;3415:1;3402:10;;:14;:28;;3394:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3595:1;3586:5;:10;;;;:38;;;;;469:3;3600:24;;:5;:24;;;;3586:38;3578:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3698:5;3677:26;;:6;:17;3684:9;3677:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3669:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3776:6;:13;3783:5;3776:13;;;;;;;;;;;;;;;;;;;;;;;;;3756:6;:17;3763:9;3756:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3815:1;3799:6;:13;3806:5;3799:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3826:10;;:12;;;;;;;;;;;;;;3853:19;3866:5;3853:19;;;;;;;;;;;;;;;;;;;;;;3953:10;3940:9;;:23;;3936:68;;;3977:27;3993:10;3977:15;:27::i;:::-;3936:68;3194:817;;;:::o;695:40:0:-;;;;;;;;;;;;;;;;;;;;:::o;740:309:2:-;853:32;865:7;874:10;853:11;:32::i;:::-;1020:22;1033:2;1037:4;1020:12;:22::i;:::-;740:309;;;;:::o;6284:2461:0:-;6409:4;6634:17;6674:20;6704:7;6721:9;6740;6759;7108:30;6532:2;6520:9;;:14;6500:10;:17;:34;6496:77;;;6557:5;6550:12;;;;6496:77;6662:1;6634:30;;6787:1;6783:5;;6778:1940;6794:9;;6790:1;:13;6778:1940;;;6836:29;6851:10;6863:1;6836:14;:29::i;:::-;6824:41;;;;;;;;;;;;6945:1;6940;:6;;;6936:1616;;;7088:1;7080:10;;;7065:25;;7443:4;7439:1;7427:10;7423:18;7419:29;7398:50;;7508:12;7488:50;;;7539:4;7545:17;7488:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7488:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7488:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7488:75:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7488:75:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7488:75:0;;;;;;;;;;;;;;;;7487:76;7483:135;;;7594:5;7587:12;;;;7483:135;6936:1616;;;7700:1;7695;:6;;;7691:861;;;7839:1;7831:10;;;7816:25;;8022:12;8008:26;;:10;:26;;;;:73;;;;;8080:1;8038:14;:28;8053:12;8038:28;;;;;;;;;;;;;;;:38;8067:8;8038:38;;;;;;;;;;;;;;;;;;:43;8008:73;8004:132;;;8112:5;8105:12;;;;8004:132;8257:11;:41;;;;;8286:12;8272:26;;:10;:26;;;;8257:41;8253:130;;;8363:1;8322:14;:28;8337:12;8322:28;;;;;;;;;;;;;;;:38;8351:8;8322:38;;;;;;;;;;;;;;;;;:42;;;;8253:130;7691:861;;;8509:28;8519:8;8529:1;8532;8535;8509:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8509:28:0;;;;;;;;8494:43;;7691:861;6936:1616;8585:9;8569:25;;:12;:25;;;;:54;;;;8622:1;8598:6;:20;8605:12;8598:20;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;8569:54;8565:105;;;8650:5;8643:12;;;;8565:105;8695:12;8683:24;;6805:3;;;;;;;6778:1940;;;8734:4;8727:11;;6284:2461;;;;;;;;;;;;;;:::o;313:548:3:-;444:12;715:19;489;476:32;;;;;;;;:9;:32;;;;;;;;;472:383;;;532:35;544:2;548:5;555:4;561:5;532:11;:35::i;:::-;522:45;;472:383;;;599:27;586:40;;;;;;;;:9;:40;;;;;;;;;582:273;;;650:36;670:2;674:4;680:5;650:19;:36::i;:::-;640:46;;582:273;;;737:19;751:4;737:13;:19::i;:::-;715:41;;795:1;780:11;:16;;;;770:26;;815:29;832:11;815:29;;;;;;;;;;;;;;;;;;;;;;582:273;472:383;313:548;;;;;;;;:::o;4951:716:0:-;5145:14;5274:16;5198:8;5187:7;5174:9;5164:7;:19;5163:31;5162:44;5145:61;;5319:1;5293:28;;:14;:28;;;:57;;5336:14;5293:57;;;5324:9;5293:57;5274:76;;5384:1;5364:22;;:8;:22;;;5360:301;;;5471:8;:13;;:21;5485:6;5471:21;;;;;;;;;;;;;;;;;;;;;;;5463:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5360:301;;;5570:41;5584:8;5594;5604:6;5570:13;:41::i;:::-;5562:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5360:301;4951:716;;;;;;;:::o;775:1210:6:-;1381:20;1434:9;1533:13;1011:1;998:9;;:14;990:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1154:7;:14;1140:10;:28;;1132:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1292:1;1278:10;:15;;1270:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;469:3;1381:38;;1446:1;1434:13;;1429:433;1453:7;:14;1449:1;:18;1429:433;;;1549:7;1557:1;1549:10;;;;;;;;;;;;;;;;;;1533:26;;1590:1;1581:5;:10;;;;:38;;;;;469:3;1595:24;;:5;:24;;;;1581:38;1573:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1737:1;1720:6;:13;1727:5;1720:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1712:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1812:5;1789:6;:20;1796:12;1789:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1846:5;1831:20;;1469:3;;;;;;;1429:433;;;469:3;1871:6;:20;1878:12;1871:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1932:7;:14;1919:10;:27;;;;1968:10;1956:9;:22;;;;775:1210;;;;;:::o;606:409:5:-;720:1;691:7;:25;539:3;691:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;683:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;539:3;773:7;:25;539:3;773:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;837:1;831:2;:7;;;;827:181;;;932:40;952:2;956:4;962:9;932:19;:40::i;:::-;924:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:181;606:409;;:::o;1002:914:12:-;1104:7;1113:9;1124;1424:3;1418:4;1414:14;1486:4;1472:12;1468:23;1456:10;1452:40;1446:47;1441:52;;1551:4;1537:12;1533:23;1521:10;1517:40;1511:47;1506:52;;1895:4;1886;1872:12;1868:23;1856:10;1852:40;1846:47;1842:58;1837:63;;1380:530;;;;;;:::o;867:309:3:-;976:12;1158:1;1155;1148:4;1142:11;1135:4;1129;1125:15;1118:5;1114:2;1107:5;1102:58;1091:69;;1077:93;;;;;;:::o;1182:303::-;1284:12;1467:1;1464;1457:4;1451:11;1444:4;1438;1434:15;1430:2;1423:5;1410:59;1399:70;;1385:94;;;;;:::o;1491:261::-;1560:19;1730:4;1724:11;1717:4;1711;1707:15;1704:1;1697:39;1682:54;;1668:78;;;:::o;430:752:10:-;568:16;600:17;673:8;683:6;620:70;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;620:70:10;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;620:70:10;600:90;;867:1;864;857:4;851:11;844:4;838;834:15;831:1;824:5;816;811:3;807:15;802:67;899:4;893:11;940:14;937:1;932:3;917:38;975:14;1008:1;1003:33;;;;1054:4;1049:76;;;;1163:1;1148:16;;968:198;;1003:33;1027:7;1012:22;;1003:33;;1049:76;1116:3;1110:10;1103:18;1093:7;1086:15;1083:39;1076:47;1061:62;;968:198;;773:403;;;;;;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./base/BaseSafe.sol\";\nimport \"./common/MasterCopy.sol\";\nimport \"./common/SignatureDecoder.sol\";\nimport \"./common/SecuredTokenTransfer.sol\";\nimport \"./interfaces/ISignatureValidator.sol\";\n\n/// @title Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n/// @author Stefan George - \n/// @author Richard Meissner - \n/// @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment\ncontract GnosisSafe is MasterCopy, BaseSafe, SignatureDecoder, SecuredTokenTransfer, ISignatureValidator {\n\n string public constant NAME = \"Gnosis Safe\";\n string public constant VERSION = \"0.0.2\";\n\n //keccak256(\n // \"EIP712Domain(address verifyingContract)\"\n //);\n bytes32 public constant DOMAIN_SEPARATOR_TYPEHASH = 0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749;\n\n //keccak256(\n // \"SafeTx(address to,uint256 value,bytes data,uint8 operation,uint256 safeTxGas,uint256 dataGas,uint256 gasPrice,address gasToken,address refundReceiver,uint256 nonce)\"\n //);\n bytes32 public constant SAFE_TX_TYPEHASH = 0x14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b20;\n\n //keccak256(\n // \"SafeMessage(bytes message)\"\n //);\n bytes32 public constant SAFE_MSG_TYPEHASH = 0x60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca;\n \n event ExecutionFailed(bytes32 txHash);\n\n uint256 public nonce;\n bytes32 public domainSeparator;\n // Mapping to keep track of all message hashes that have been approve by ALL REQUIRED owners\n mapping(bytes32 => uint256) signedMessage;\n // Mapping to keep track of all hashes (message or transaction) that have been approve by ANY owners\n mapping(address => mapping(bytes32 => uint256)) approvedHashes;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n /// @param to Contract address for optional delegate call.\n /// @param data Data payload for optional delegate call.\n function setup(address[] _owners, uint256 _threshold, address to, bytes data)\n public\n {\n require(domainSeparator == 0, \"Domain Separator already set!\");\n domainSeparator = keccak256(abi.encode(DOMAIN_SEPARATOR_TYPEHASH, this));\n setupSafe(_owners, _threshold, to, data);\n }\n\n /// @dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n /// Note: The fees are always transfered, even if the user transaction fails. \n /// @param to Destination address of Safe transaction.\n /// @param value Ether value of Safe transaction.\n /// @param data Data payload of Safe transaction.\n /// @param operation Operation type of Safe transaction.\n /// @param safeTxGas Gas that should be used for the Safe transaction.\n /// @param dataGas Gas costs for data used to trigger the safe transaction and to pay the payment transfer\n /// @param gasPrice Gas price that should be used for the payment calculation.\n /// @param gasToken Token address (or 0 if ETH) that is used for the payment.\n /// @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n /// @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})\n function execTransaction(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 safeTxGas,\n uint256 dataGas,\n uint256 gasPrice,\n address gasToken,\n address refundReceiver,\n bytes signatures\n )\n public\n returns (bool success)\n {\n uint256 startGas = gasleft();\n bytes memory txHashData = encodeTransactionData(\n to, value, data, operation, // Transaction info\n safeTxGas, dataGas, gasPrice, gasToken, refundReceiver, // Payment info\n nonce\n );\n require(checkSignatures(keccak256(txHashData), txHashData, signatures, true), \"Invalid signatures provided\");\n // Increase nonce and execute transaction.\n nonce++;\n require(gasleft() >= safeTxGas, \"Not enough gas to execute safe transaction\");\n // If no safeTxGas has been set and the gasPrice is 0 we assume that all available gas can be used\n success = execute(to, value, data, operation, safeTxGas == 0 && gasPrice == 0 ? gasleft() : safeTxGas);\n if (!success) {\n emit ExecutionFailed(keccak256(txHashData));\n }\n \n // We transfer the calculated tx costs to the tx.origin to avoid sending it to intermediate contracts that have made calls\n if (gasPrice > 0) {\n handlePayment(startGas, dataGas, gasPrice, gasToken, refundReceiver);\n }\n }\n\n function handlePayment(\n uint256 gasUsed,\n uint256 dataGas,\n uint256 gasPrice,\n address gasToken,\n address refundReceiver\n ) \n private\n {\n uint256 amount = ((gasUsed - gasleft()) + dataGas) * gasPrice;\n // solium-disable-next-line security/no-tx-origin\n address receiver = refundReceiver == address(0) ? tx.origin : refundReceiver;\n if (gasToken == address(0)) {\n // solium-disable-next-line security/no-send\n require(receiver.send(amount), \"Could not pay gas costs with ether\");\n } else {\n require(transferToken(gasToken, receiver, amount), \"Could not pay gas costs with token\");\n }\n } \n\n /**\n * @dev Should return whether the signature provided is valid for the provided data, hash\n * @param dataHash Hash of the data (could be either a message hash or transaction hash)\n * @param data That should be signed (this is passed to an external validator contract)\n * @param signatures Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash.\n * @param consumeHash Indicates that in case of an approved hash the storage can be freed to save gas\n * @return a bool upon valid or invalid signature with corresponding _data\n */\n function checkSignatures(bytes32 dataHash, bytes data, bytes signatures, bool consumeHash)\n internal\n returns (bool)\n {\n // Check that the provided signature data is not too short\n if (signatures.length < threshold * 65) {\n return false;\n }\n // There cannot be an owner with address 0.\n address lastOwner = address(0);\n address currentOwner;\n uint8 v;\n bytes32 r;\n bytes32 s;\n uint256 i;\n for (i = 0; i < threshold; i++) {\n (v, r, s) = signatureSplit(signatures, i);\n // If v is 0 then it is a contract signature\n if (v == 0) {\n // When handling contract signatures the address of the contract is encoded into r\n currentOwner = address(r);\n bytes memory contractSignature;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n // The signature data for contract signatures is appended to the concatenated signatures and the offset is stored in s\n contractSignature := add(add(signatures, s), 0x20)\n }\n if (!ISignatureValidator(currentOwner).isValidSignature(data, contractSignature)) {\n return false;\n }\n // If v is 1 then it is an approved hash\n } else if (v == 1) {\n // When handling approved hashes the address of the approver is encoded into r\n currentOwner = address(r);\n // Hashes are automatically approved by the sender of the message or when they have been pre-approved via a separate transaction\n if (msg.sender != currentOwner && approvedHashes[currentOwner][dataHash] == 0) {\n return false;\n }\n // Hash has been marked for consumption. If this hash was pre-approved free storage\n if (consumeHash && msg.sender != currentOwner) {\n approvedHashes[currentOwner][dataHash] = 0;\n }\n } else {\n // Use ecrecover with the messageHash for EOA signatures\n currentOwner = ecrecover(dataHash, v, r, s);\n }\n if (currentOwner <= lastOwner || owners[currentOwner] == 0) {\n return false;\n }\n lastOwner = currentOwner;\n }\n return true;\n }\n\n /// @dev Allows to estimate a Safe transaction. \n /// This method is only meant for estimation purpose, therfore two different protection mechanism against execution in a transaction have been made:\n /// 1.) The method can only be called from the safe itself\n /// 2.) The response is returned with a revert\n /// When estimating set `from` to the address of the safe.\n /// Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`\n /// @param to Destination address of Safe transaction.\n /// @param value Ether value of Safe transaction.\n /// @param data Data payload of Safe transaction.\n /// @param operation Operation type of Safe transaction.\n /// @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).\n function requiredTxGas(address to, uint256 value, bytes data, Enum.Operation operation)\n public\n authorized\n returns (uint256)\n {\n uint256 startGas = gasleft();\n // We don't provide an error message here, as we use it to return the estimate\n // solium-disable-next-line error-reason\n require(execute(to, value, data, operation, gasleft()));\n uint256 requiredGas = startGas - gasleft();\n // Convert response to string and return via error message\n revert(string(abi.encodePacked(requiredGas)));\n }\n\n /**\n * @dev Marks a hash as approved. This can be used to validate a hash that is used by a signature.\n * @param hashToApprove The hash that should be marked as approved for signatures that are verified by this contract.\n */\n function approveHash(bytes32 hashToApprove) \n public\n {\n require(owners[msg.sender] != 0, \"Only owners can approve a hash\");\n approvedHashes[msg.sender][hashToApprove] = 1;\n }\n\n /**\n * @dev Marks a message as signed\n * @param _data Arbitrary length data that should be marked as signed on the behalf of address(this)\n */ \n function signMessage(bytes _data) \n public\n authorized\n {\n signedMessage[getMessageHash(_data)] = 1;\n }\n\n /**\n * @dev Should return whether the signature provided is valid for the provided data\n * @param _data Arbitrary length data signed on the behalf of address(this)\n * @param _signature Signature byte array associated with _data\n * @return a bool upon valid or invalid signature with corresponding _data\n */ \n function isValidSignature(bytes _data, bytes _signature)\n public\n returns (bool isValid)\n {\n bytes32 messageHash = getMessageHash(_data);\n if (_signature.length == 0) {\n isValid = signedMessage[messageHash] != 0;\n } else {\n // consumeHash needs to be false, as the state should not be changed\n isValid = checkSignatures(messageHash, _data, _signature, false);\n }\n }\n\n /// @dev Returns hash of a message that can be signed by owners.\n /// @param message Message that should be hashed\n /// @return Message hash.\n function getMessageHash(\n bytes message\n )\n public\n view\n returns (bytes32)\n {\n bytes32 safeMessageHash = keccak256(\n abi.encode(SAFE_MSG_TYPEHASH, keccak256(message))\n );\n return keccak256(\n abi.encodePacked(byte(0x19), byte(1), domainSeparator, safeMessageHash)\n );\n }\n\n /// @dev Returns the bytes that are hashed to be signed by owners.\n /// @param to Destination address.\n /// @param value Ether value.\n /// @param data Data payload.\n /// @param operation Operation type.\n /// @param safeTxGas Fas that should be used for the safe transaction.\n /// @param dataGas Gas costs for data used to trigger the safe transaction.\n /// @param gasPrice Maximum gas price that should be used for this transaction.\n /// @param gasToken Token address (or 0 if ETH) that is used for the payment.\n /// @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n /// @param _nonce Transaction nonce.\n /// @return Transaction hash bytes.\n function encodeTransactionData(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 safeTxGas, \n uint256 dataGas, \n uint256 gasPrice, \n address gasToken,\n address refundReceiver,\n uint256 _nonce\n )\n public\n view\n returns (bytes)\n {\n bytes32 safeTxHash = keccak256(\n abi.encode(SAFE_TX_TYPEHASH, to, value, keccak256(data), operation, safeTxGas, dataGas, gasPrice, gasToken, refundReceiver, _nonce)\n );\n return abi.encodePacked(byte(0x19), byte(1), domainSeparator, safeTxHash);\n }\n\n /// @dev Returns hash to be signed by owners.\n /// @param to Destination address.\n /// @param value Ether value.\n /// @param data Data payload.\n /// @param operation Operation type.\n /// @param safeTxGas Fas that should be used for the safe transaction.\n /// @param dataGas Gas costs for data used to trigger the safe transaction.\n /// @param gasPrice Maximum gas price that should be used for this transaction.\n /// @param gasToken Token address (or 0 if ETH) that is used for the payment.\n /// @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n /// @param _nonce Transaction nonce.\n /// @return Transaction hash.\n function getTransactionHash(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 safeTxGas, \n uint256 dataGas, \n uint256 gasPrice, \n address gasToken,\n address refundReceiver,\n uint256 _nonce\n )\n public\n view\n returns (bytes32)\n {\n return keccak256(encodeTransactionData(to, value, data, operation, safeTxGas, dataGas, gasPrice, gasToken, refundReceiver, _nonce));\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "exportedSymbols": { "GnosisSafe": [ - 208 + 692 ] }, - "id": 209, + "id": 693, "nodeType": "SourceUnit", "nodes": [ { - "id": 155, + "id": 1, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:4" + "src": "0:23:0" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", - "file": "./Module.sol", - "id": 156, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", + "file": "./base/BaseSafe.sol", + "id": 2, "nodeType": "ImportDirective", - "scope": 209, - "sourceUnit": 914, - "src": "24:22:4", + "scope": 693, + "sourceUnit": 783, + "src": "24:29:0", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", - "file": "./ModuleManager.sol", - "id": 157, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", + "file": "./common/MasterCopy.sol", + "id": 3, "nodeType": "ImportDirective", - "scope": 209, - "sourceUnit": 1181, - "src": "47:29:4", + "scope": 693, + "sourceUnit": 1694, + "src": "54:33:0", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", - "file": "./OwnerManager.sol", - "id": 158, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", + "file": "./common/SignatureDecoder.sol", + "id": 4, "nodeType": "ImportDirective", - "scope": 209, - "sourceUnit": 1589, - "src": "77:28:4", + "scope": 693, + "sourceUnit": 1792, + "src": "88:39:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", + "file": "./common/SecuredTokenTransfer.sol", + "id": 5, + "nodeType": "ImportDirective", + "scope": 693, + "sourceUnit": 1719, + "src": "128:43:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", + "file": "./interfaces/ISignatureValidator.sol", + "id": 6, + "nodeType": "ImportDirective", + "scope": 693, + "sourceUnit": 1804, + "src": "172:46:0", "symbolAliases": [], "unitAlias": "" }, @@ -394,68 +810,218 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 159, - "name": "ModuleManager", + "id": 7, + "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1180, - "src": "345:13:4", + "referencedDeclaration": 1693, + "src": "557:10:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_contract$_MasterCopy_$1693", + "typeString": "contract MasterCopy" } }, - "id": 160, + "id": 8, "nodeType": "InheritanceSpecifier", - "src": "345:13:4" + "src": "557:10:0" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 161, - "name": "OwnerManager", + "id": 9, + "name": "BaseSafe", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1588, - "src": "360:12:4", + "referencedDeclaration": 782, + "src": "569:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1588", - "typeString": "contract OwnerManager" + "typeIdentifier": "t_contract$_BaseSafe_$782", + "typeString": "contract BaseSafe" } }, - "id": 162, + "id": 10, "nodeType": "InheritanceSpecifier", - "src": "360:12:4" + "src": "569:8:0" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 11, + "name": "SignatureDecoder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1791, + "src": "579:16:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SignatureDecoder_$1791", + "typeString": "contract SignatureDecoder" + } + }, + "id": 12, + "nodeType": "InheritanceSpecifier", + "src": "579:16:0" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 13, + "name": "SecuredTokenTransfer", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1718, + "src": "597:20:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1718", + "typeString": "contract SecuredTokenTransfer" + } + }, + "id": 14, + "nodeType": "InheritanceSpecifier", + "src": "597:20:0" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 15, + "name": "ISignatureValidator", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "619:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISignatureValidator_$1803", + "typeString": "contract ISignatureValidator" + } + }, + "id": 16, + "nodeType": "InheritanceSpecifier", + "src": "619:19:0" } ], "contractDependencies": [ - 153, - 37, - 1180, - 1588, - 1765 + 782, + 892, + 1212, + 1652, + 1666, + 1693, + 1718, + 1735, + 1791, + 1803 ], "contractKind": "contract", - "documentation": "@title Gnosis Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n @author Stefan George - ", + "documentation": "@title Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n @author Stefan George - \n @author Richard Meissner - \n @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment", "fullyImplemented": true, - "id": 208, + "id": 692, "linearizedBaseContracts": [ - 208, - 1588, - 1180, - 153, - 37, - 1765 + 692, + 1803, + 1718, + 1791, + 782, + 1652, + 1212, + 892, + 1666, + 1693, + 1735 ], "name": "GnosisSafe", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 165, - "name": "DOMAIN_SEPERATOR_TYPEHASH", + "id": 19, + "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 208, - "src": "458:118:4", + "scope": 692, + "src": "646:43:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 17, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "646:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "476e6f7369732053616665", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "676:13:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_72ec6775392f699e8ffd72b7c600556d49bdc746bf22bce93d3ae6019cdaff63", + "typeString": "literal_string \"Gnosis Safe\"" + }, + "value": "Gnosis Safe" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 22, + "name": "VERSION", + "nodeType": "VariableDeclaration", + "scope": 692, + "src": "695:40:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 20, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "695:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "302e302e32", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "728:7:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", + "typeString": "literal_string \"0.0.2\"" + }, + "value": "0.0.2" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 25, + "name": "DOMAIN_SEPARATOR_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 692, + "src": "820:118:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -463,10 +1029,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 163, + "id": 23, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "458:7:4", + "src": "820:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -475,14 +1041,14 @@ "value": { "argumentTypes": null, "hexValue": "307830333561666638336438363933376433356233326530346630646463366666343639323930656566326631623639326438613831356338393430346434373439", - "id": 164, + "id": 24, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "510:66:4", + "src": "872:66:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1517718281442037948617199096126532355110765202990829672390711201829802035017_by_1", @@ -493,12 +1059,12 @@ "visibility": "public" }, { - "constant": false, - "id": 167, - "name": "domainSeperator", + "constant": true, + "id": 28, + "name": "SAFE_TX_TYPEHASH", "nodeType": "VariableDeclaration", - "scope": 208, - "src": "583:30:4", + "scope": 692, + "src": "1148:109:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -506,10 +1072,164 @@ "typeString": "bytes32" }, "typeName": { - "id": 166, + "id": 26, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "583:7:4", + "src": "1148:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307831346434363162633734313233363765393234363337623336336337626632396238663437653266383438363966343432366535363333643861663437623230", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1191:66:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9421503099487675527562227662599058764916562750590033657944341861770225548064_by_1", + "typeString": "int_const 9421...(68 digits omitted)...8064" + }, + "value": "0x14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b20" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 31, + "name": "SAFE_MSG_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 692, + "src": "1329:110:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1329:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836306233636266386234613232336436386436343162336236646466396132393865376633333731306366336433613964313134366235613631353066626361", + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1373:66:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_43739706848186989041152069077571617734008543096732098246335109361212071148490_by_1", + "typeString": "int_const 4373...(69 digits omitted)...8490" + }, + "value": "0x60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca" + }, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 35, + "name": "ExecutionFailed", + "nodeType": "EventDefinition", + "parameters": { + "id": 34, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33, + "indexed": false, + "name": "txHash", + "nodeType": "VariableDeclaration", + "scope": 35, + "src": "1472:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 32, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1472:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1471:16:0" + }, + "src": "1450:38:0" + }, + { + "constant": false, + "id": 37, + "name": "nonce", + "nodeType": "VariableDeclaration", + "scope": 692, + "src": "1494:20:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 36, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1494:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 39, + "name": "domainSeparator", + "nodeType": "VariableDeclaration", + "scope": 692, + "src": "1520:30:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 38, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1520:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -518,11 +1238,120 @@ "value": null, "visibility": "public" }, + { + "constant": false, + "id": 43, + "name": "signedMessage", + "nodeType": "VariableDeclaration", + "scope": 692, + "src": "1653:41:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 42, + "keyType": { + "id": 40, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1661:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1653:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 41, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1672:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 49, + "name": "approvedHashes", + "nodeType": "VariableDeclaration", + "scope": 692, + "src": "1805:62:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(bytes32 => uint256))" + }, + "typeName": { + "id": 48, + "keyType": { + "id": 44, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1813:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1805:47:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(bytes32 => uint256))" + }, + "valueType": { + "id": 47, + "keyType": { + "id": 45, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1832:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1824:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 46, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1843:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, { "body": { - "id": 206, + "id": 85, "nodeType": "Block", - "src": "1030:360:4", + "src": "2284:211:0", "statements": [ { "expression": { @@ -534,19 +1363,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 182, + "id": 64, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 180, - "name": "domainSeperator", + "id": 62, + "name": "domainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "1048:15:4", + "referencedDeclaration": 39, + "src": "2302:15:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -557,14 +1386,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 181, + "id": 63, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1067:1:4", + "src": "2321:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -572,7 +1401,7 @@ }, "value": "0" }, - "src": "1048:20:4", + "src": "2302:20:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -580,21 +1409,21 @@ }, { "argumentTypes": null, - "hexValue": "446f6d61696e20536570657261746f7220616c72656164792073657421", - "id": 183, + "hexValue": "446f6d61696e20536570617261746f7220616c72656164792073657421", + "id": 65, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1070:31:4", + "src": "2324:31:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_76b336706355b2c543d4f566e8de773fa4e586723c61d024c00ec0bb4ad3fcae", - "typeString": "literal_string \"Domain Seperator already set!\"" + "typeIdentifier": "t_stringliteral_a2e1f2db9cd32eaa6a2caa3d6caa726a30dc0417d866440bfe13d6a6d030e5e2", + "typeString": "literal_string \"Domain Separator already set!\"" }, - "value": "Domain Seperator already set!" + "value": "Domain Separator already set!" } ], "expression": { @@ -604,25 +1433,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_76b336706355b2c543d4f566e8de773fa4e586723c61d024c00ec0bb4ad3fcae", - "typeString": "literal_string \"Domain Seperator already set!\"" + "typeIdentifier": "t_stringliteral_a2e1f2db9cd32eaa6a2caa3d6caa726a30dc0417d866440bfe13d6a6d030e5e2", + "typeString": "literal_string \"Domain Separator already set!\"" } ], - "id": 179, + "id": 61, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1040:7:4", + "referencedDeclaration": 4495, + "src": "2294:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 184, + "id": 66, "isConstant": false, "isLValue": false, "isPure": false, @@ -630,32 +1459,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1040:62:4", + "src": "2294:62:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 185, + "id": 67, "nodeType": "ExpressionStatement", - "src": "1040:62:4" + "src": "2294:62:0" }, { "expression": { "argumentTypes": null, - "id": 194, + "id": 76, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 186, - "name": "domainSeperator", + "id": 68, + "name": "domainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "1112:15:4", + "referencedDeclaration": 39, + "src": "2366:15:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -671,12 +1500,12 @@ "arguments": [ { "argumentTypes": null, - "id": 190, - "name": "DOMAIN_SEPERATOR_TYPEHASH", + "id": 72, + "name": "DOMAIN_SEPARATOR_TYPEHASH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 165, - "src": "1151:25:4", + "referencedDeclaration": 25, + "src": "2405:25:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -684,14 +1513,14 @@ }, { "argumentTypes": null, - "id": 191, + "id": 73, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3861, - "src": "1178:4:4", + "referencedDeclaration": 4528, + "src": "2432:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$208", + "typeIdentifier": "t_contract$_GnosisSafe_$692", "typeString": "contract GnosisSafe" } } @@ -703,24 +1532,24 @@ "typeString": "bytes32" }, { - "typeIdentifier": "t_contract$_GnosisSafe_$208", + "typeIdentifier": "t_contract$_GnosisSafe_$692", "typeString": "contract GnosisSafe" } ], "expression": { "argumentTypes": null, - "id": 188, + "id": 70, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "1140:3:4", + "referencedDeclaration": 4478, + "src": "2394:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 189, + "id": 71, "isConstant": false, "isLValue": false, "isPure": true, @@ -728,13 +1557,13 @@ "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1140:10:4", + "src": "2394:10:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 192, + "id": 74, "isConstant": false, "isLValue": false, "isPure": false, @@ -742,7 +1571,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1140:43:4", + "src": "2394:43:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -756,18 +1585,18 @@ "typeString": "bytes memory" } ], - "id": 187, + "id": 69, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "1130:9:4", + "referencedDeclaration": 4485, + "src": "2384:9:0", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 193, + "id": 75, "isConstant": false, "isLValue": false, "isPure": false, @@ -775,21 +1604,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1130:54:4", + "src": "2384:54:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "1112:72:4", + "src": "2366:72:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 195, + "id": 77, "nodeType": "ExpressionStatement", - "src": "1112:72:4" + "src": "2366:72:0" }, { "expression": { @@ -797,12 +1626,12 @@ "arguments": [ { "argumentTypes": null, - "id": 197, + "id": 79, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "1206:7:4", + "referencedDeclaration": 52, + "src": "2458:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -810,16 +1639,42 @@ }, { "argumentTypes": null, - "id": 198, + "id": 80, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 172, - "src": "1215:10:4", + "referencedDeclaration": 54, + "src": "2467:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "argumentTypes": null, + "id": 81, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "2479:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 82, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "2483:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } } ], "expression": { @@ -831,70 +1686,7 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - ], - "id": 196, - "name": "setupOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1297, - "src": "1194:11:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (address[] memory,uint256)" - } - }, - "id": 199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1194:32:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 200, - "nodeType": "ExpressionStatement", - "src": "1194:32:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 202, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 174, - "src": "1374:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 203, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 176, - "src": "1378:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ + }, { "typeIdentifier": "t_address", "typeString": "address" @@ -904,18 +1696,18 @@ "typeString": "bytes memory" } ], - "id": 201, - "name": "setupModules", + "id": 78, + "name": "setupSafe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "1361:12:4", + "referencedDeclaration": 781, + "src": "2448:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory)" + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address[] memory,uint256,address,bytes memory)" } }, - "id": 204, + "id": 83, "isConstant": false, "isLValue": false, "isPure": false, @@ -923,20 +1715,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1361:22:4", + "src": "2448:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 205, + "id": 84, "nodeType": "ExpressionStatement", - "src": "1361:22:4" + "src": "2448:40:0" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.", - "id": 207, + "id": 86, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -944,16 +1736,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 177, + "id": 59, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 170, + "id": 52, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 207, - "src": "948:17:4", + "scope": 86, + "src": "2202:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -962,19 +1754,19 @@ }, "typeName": { "baseType": { - "id": 168, + "id": 50, "name": "address", "nodeType": "ElementaryTypeName", - "src": "948:7:4", + "src": "2202:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 169, + "id": 51, "length": null, "nodeType": "ArrayTypeName", - "src": "948:9:4", + "src": "2202:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -985,11 +1777,11 @@ }, { "constant": false, - "id": 172, + "id": 54, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 207, - "src": "967:18:4", + "scope": 86, + "src": "2221:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -997,10 +1789,10 @@ "typeString": "uint256" }, "typeName": { - "id": 171, + "id": 53, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "967:7:4", + "src": "2221:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1011,11 +1803,11 @@ }, { "constant": false, - "id": 174, + "id": 56, "name": "to", "nodeType": "VariableDeclaration", - "scope": 207, - "src": "987:10:4", + "scope": 86, + "src": "2241:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1023,10 +1815,10 @@ "typeString": "address" }, "typeName": { - "id": 173, + "id": 55, "name": "address", "nodeType": "ElementaryTypeName", - "src": "987:7:4", + "src": "2241:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1037,11 +1829,11 @@ }, { "constant": false, - "id": 176, + "id": 58, "name": "data", "nodeType": "VariableDeclaration", - "scope": 207, - "src": "999:10:4", + "scope": 86, + "src": "2253:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1049,10 +1841,10 @@ "typeString": "bytes" }, "typeName": { - "id": 175, + "id": 57, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "999:5:4", + "src": "2253:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1062,78 +1854,8580 @@ "visibility": "internal" } ], - "src": "947:63:4" + "src": "2201:63:0" }, "payable": false, "returnParameters": { - "id": 178, + "id": 60, "nodeType": "ParameterList", "parameters": [], - "src": "1030:0:4" + "src": "2284:0:0" }, - "scope": 208, - "src": "933:457:4", + "scope": 692, + "src": "2187:308:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" + }, + { + "body": { + "id": 197, + "nodeType": "Block", + "src": "3827:1118:0", + "statements": [ + { + "assignments": [ + 112 + ], + "declarations": [ + { + "constant": false, + "id": 112, + "name": "startGas", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3837:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 111, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3837:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 115, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 113, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4484, + "src": "3856:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3856:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3837:28:0" + }, + { + "assignments": [ + 117 + ], + "declarations": [ + { + "constant": false, + "id": 117, + "name": "txHashData", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3875:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 116, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3875:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 130, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 119, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 88, + "src": "3936:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 120, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 90, + "src": "3940:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 121, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "3947:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 122, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "3953:9:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "id": 123, + "name": "safeTxGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "3996:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 124, + "name": "dataGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 98, + "src": "4007:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 125, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "4016:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 126, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 102, + "src": "4026:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 127, + "name": "refundReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 104, + "src": "4036:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 128, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "4080:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 118, + "name": "encodeTransactionData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 650, + "src": "3901:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,address,uint256) view returns (bytes memory)" + } + }, + "id": 129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3901:194:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3875:220:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 134, + "name": "txHashData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "4139:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 133, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "4129:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4129:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 136, + "name": "txHashData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "4152:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 137, + "name": "signatures", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "4164:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4176:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 132, + "name": "checkSignatures", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4113:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bool_$", + "typeString": "function (bytes32,bytes memory,bytes memory,bool) returns (bool)" + } + }, + "id": 139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4113:68:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "496e76616c6964207369676e6174757265732070726f7669646564", + "id": 140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4183:29:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_85bcea44c930431ef19052d068cc504a81260341ae6c5ee84bb5a38ec55acf05", + "typeString": "literal_string \"Invalid signatures provided\"" + }, + "value": "Invalid signatures provided" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_85bcea44c930431ef19052d068cc504a81260341ae6c5ee84bb5a38ec55acf05", + "typeString": "literal_string \"Invalid signatures provided\"" + } + ], + "id": 131, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4494, + 4495 + ], + "referencedDeclaration": 4495, + "src": "4105:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4105:108:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 142, + "nodeType": "ExpressionStatement", + "src": "4105:108:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4274:7:0", + "subExpression": { + "argumentTypes": null, + "id": 143, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "4274:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 145, + "nodeType": "ExpressionStatement", + "src": "4274:7:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 147, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4484, + "src": "4299:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4299:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 149, + "name": "safeTxGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "4312:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4299:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e6f7420656e6f7567682067617320746f20657865637574652073616665207472616e73616374696f6e", + "id": 151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4323:44:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", + "typeString": "literal_string \"Not enough gas to execute safe transaction\"" + }, + "value": "Not enough gas to execute safe transaction" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", + "typeString": "literal_string \"Not enough gas to execute safe transaction\"" + } + ], + "id": 146, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4494, + 4495 + ], + "referencedDeclaration": 4495, + "src": "4291:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4291:77:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 153, + "nodeType": "ExpressionStatement", + "src": "4291:77:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 154, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 109, + "src": "4485:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 88, + "src": "4503:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 157, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 90, + "src": "4507:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 158, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "4514:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 159, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "4520:9:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 160, + "name": "safeTxGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "4531:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4544:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4531:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 163, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "4549:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4561:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4549:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4531:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 169, + "name": "safeTxGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "4577:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "4531:55:0", + "trueExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 167, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4484, + "src": "4565:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4565:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 155, + "name": "execute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 854, + "src": "4495:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" + } + }, + "id": 171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4495:92:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4485:102:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 173, + "nodeType": "ExpressionStatement", + "src": "4485:102:0" + }, + { + "condition": { + "argumentTypes": null, + "id": 175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4601:8:0", + "subExpression": { + "argumentTypes": null, + "id": 174, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 109, + "src": "4602:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 183, + "nodeType": "IfStatement", + "src": "4597:82:0", + "trueBody": { + "id": 182, + "nodeType": "Block", + "src": "4611:68:0", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 178, + "name": "txHashData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "4656:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 177, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "4646:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4646:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 176, + "name": "ExecutionFailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "4630:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4630:38:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 181, + "nodeType": "EmitStatement", + "src": "4625:43:0" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 184, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "4832:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4843:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4832:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 196, + "nodeType": "IfStatement", + "src": "4828:111:0", + "trueBody": { + "id": 195, + "nodeType": "Block", + "src": "4846:93:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 188, + "name": "startGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "4874:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 189, + "name": "dataGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 98, + "src": "4884:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 190, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "4893:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 191, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 102, + "src": "4903:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 192, + "name": "refundReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 104, + "src": "4913:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 187, + "name": "handlePayment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 262, + "src": "4860:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$returns$__$", + "typeString": "function (uint256,uint256,uint256,address,address)" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4860:68:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 194, + "nodeType": "ExpressionStatement", + "src": "4860:68:0" + } + ] + } + } + ] + }, + "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n Note: The fees are always transfered, even if the user transaction fails. \n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @param safeTxGas Gas that should be used for the Safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction and to pay the payment transfer\n @param gasPrice Gas price that should be used for the payment calculation.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", + "id": 198, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "execTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 88, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3517:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 87, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3517:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 90, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3538:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 89, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3538:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 92, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3562:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 91, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3562:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 94, + "name": "operation", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3583:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + "typeName": { + "contractScope": null, + "id": 93, + "name": "Enum.Operation", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1658, + "src": "3583:14:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 96, + "name": "safeTxGas", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3618:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 95, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3618:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 98, + "name": "dataGas", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3645:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 97, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3645:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 100, + "name": "gasPrice", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3670:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 99, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3670:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 102, + "name": "gasToken", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3696:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3696:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 104, + "name": "refundReceiver", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3722:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3722:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 106, + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3754:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 105, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3754:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3507:269:0" + }, + "payable": false, + "returnParameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 109, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3809:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 108, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3809:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3808:14:0" + }, + "scope": 692, + "src": "3483:1462:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 261, + "nodeType": "Block", + "src": "5135:532:0", + "statements": [ + { + "assignments": [ + 212 + ], + "declarations": [ + { + "constant": false, + "id": 212, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "5145:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5145:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 223, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 213, + "name": "gasUsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "5164:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 214, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4484, + "src": "5174:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5174:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5164:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 217, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5163:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 218, + "name": "dataGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 202, + "src": "5187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5163:31:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 220, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5162:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 221, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 204, + "src": "5198:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5162:44:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5145:61:0" + }, + { + "assignments": [ + 225 + ], + "declarations": [ + { + "constant": false, + "id": 225, + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "5274:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5274:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 235, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 226, + "name": "refundReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 208, + "src": "5293:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5319:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5311:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5311:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5293:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 233, + "name": "refundReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 208, + "src": "5336:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "5293:57:0", + "trueExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 231, + "name": "tx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4503, + "src": "5324:2:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_transaction", + "typeString": "tx" + } + }, + "id": 232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "origin", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5324:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5274:76:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 236, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 206, + "src": "5364:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5384:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5376:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5376:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5364:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 259, + "nodeType": "Block", + "src": "5548:113:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 252, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 206, + "src": "5584:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 253, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "5594:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 254, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 212, + "src": "5604:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 251, + "name": "transferToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1717, + "src": "5570:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" + } + }, + "id": 255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5570:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "436f756c64206e6f74207061792067617320636f737473207769746820746f6b656e", + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5613:36:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", + "typeString": "literal_string \"Could not pay gas costs with token\"" + }, + "value": "Could not pay gas costs with token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", + "typeString": "literal_string \"Could not pay gas costs with token\"" + } + ], + "id": 250, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4494, + 4495 + ], + "referencedDeclaration": 4495, + "src": "5562:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5562:88:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 258, + "nodeType": "ExpressionStatement", + "src": "5562:88:0" + } + ] + }, + "id": 260, + "nodeType": "IfStatement", + "src": "5360:301:0", + "trueBody": { + "id": 249, + "nodeType": "Block", + "src": "5388:154:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 244, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 212, + "src": "5485:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 242, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "5471:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "send", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5471:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) returns (bool)" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5471:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "436f756c64206e6f74207061792067617320636f7374732077697468206574686572", + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5494:36:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", + "typeString": "literal_string \"Could not pay gas costs with ether\"" + }, + "value": "Could not pay gas costs with ether" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", + "typeString": "literal_string \"Could not pay gas costs with ether\"" + } + ], + "id": 241, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4494, + 4495 + ], + "referencedDeclaration": 4495, + "src": "5463:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5463:68:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 248, + "nodeType": "ExpressionStatement", + "src": "5463:68:0" + } + ] + } + } + ] + }, + "documentation": null, + "id": 262, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "handlePayment", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 200, + "name": "gasUsed", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "4983:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4983:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 202, + "name": "dataGas", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "5008:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5008:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 204, + "name": "gasPrice", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "5033:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5033:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 206, + "name": "gasToken", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "5059:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 205, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5059:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 208, + "name": "refundReceiver", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "5085:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5085:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4973:140:0" + }, + "payable": false, + "returnParameters": { + "id": 210, + "nodeType": "ParameterList", + "parameters": [], + "src": "5135:0:0" + }, + "scope": 692, + "src": "4951:716:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 427, + "nodeType": "Block", + "src": "6419:2326:0", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 275, + "name": "signatures", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 268, + "src": "6500:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6500:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 277, + "name": "threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1242, + "src": "6520:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3635", + "id": 278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6532:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_65_by_1", + "typeString": "int_const 65" + }, + "value": "65" + }, + "src": "6520:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6500:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 284, + "nodeType": "IfStatement", + "src": "6496:77:0", + "trueBody": { + "id": 283, + "nodeType": "Block", + "src": "6536:37:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6557:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 274, + "id": 282, + "nodeType": "Return", + "src": "6550:12:0" + } + ] + } + }, + { + "assignments": [ + 286 + ], + "declarations": [ + { + "constant": false, + "id": 286, + "name": "lastOwner", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6634:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 285, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6634:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 290, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6662:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6654:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 289, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6634:30:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 292, + "name": "currentOwner", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6674:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6674:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 293, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "6674:20:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 295, + "name": "v", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6704:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 294, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "6704:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 296, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "6704:7:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 298, + "name": "r", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6721:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 297, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6721:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 299, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "6721:9:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 301, + "name": "s", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6740:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 300, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6740:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 302, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "6740:9:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 304, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6759:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 303, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6759:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 305, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "6759:9:0" + }, + { + "body": { + "id": 423, + "nodeType": "Block", + "src": "6810:1908:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 316, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "6825:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 317, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "6828:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 318, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 301, + "src": "6831:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 319, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "6824:9:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(uint8,bytes32,bytes32)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 321, + "name": "signatures", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 268, + "src": "6851:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 322, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 304, + "src": "6863:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 320, + "name": "signatureSplit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "6836:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)" + } + }, + "id": 323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6836:29:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(uint8,bytes32,bytes32)" + } + }, + "src": "6824:41:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 325, + "nodeType": "ExpressionStatement", + "src": "6824:41:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 326, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "6940:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6945:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6940:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 352, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "7695:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7700:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7695:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 403, + "nodeType": "Block", + "src": "8403:149:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 394, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "8494:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 396, + "name": "dataHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 264, + "src": "8519:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 397, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "8529:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 398, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "8532:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 399, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 301, + "src": "8535:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 395, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4483, + "src": "8509:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8509:28:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8494:43:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 402, + "nodeType": "ExpressionStatement", + "src": "8494:43:0" + } + ] + }, + "id": 404, + "nodeType": "IfStatement", + "src": "7691:861:0", + "trueBody": { + "id": 393, + "nodeType": "Block", + "src": "7703:694:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 355, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "7816:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 357, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "7839:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7831:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7831:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7816:25:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 360, + "nodeType": "ExpressionStatement", + "src": "7816:25:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 361, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "8008:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8008:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 363, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "8022:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8008:26:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 365, + "name": "approvedHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 49, + "src": "8038:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(bytes32 => uint256))" + } + }, + "id": 367, + "indexExpression": { + "argumentTypes": null, + "id": 366, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "8053:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8038:28:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 369, + "indexExpression": { + "argumentTypes": null, + "id": 368, + "name": "dataHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 264, + "src": "8067:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8038:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8080:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8038:43:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8008:73:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 376, + "nodeType": "IfStatement", + "src": "8004:132:0", + "trueBody": { + "id": 375, + "nodeType": "Block", + "src": "8083:53:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 373, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8112:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 274, + "id": 374, + "nodeType": "Return", + "src": "8105:12:0" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 377, + "name": "consumeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 270, + "src": "8257:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 378, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "8272:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8272:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 380, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "8286:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8272:26:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8257:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 392, + "nodeType": "IfStatement", + "src": "8253:130:0", + "trueBody": { + "id": 391, + "nodeType": "Block", + "src": "8300:83:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 383, + "name": "approvedHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 49, + "src": "8322:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(bytes32 => uint256))" + } + }, + "id": 386, + "indexExpression": { + "argumentTypes": null, + "id": 384, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "8337:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8322:28:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 387, + "indexExpression": { + "argumentTypes": null, + "id": 385, + "name": "dataHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 264, + "src": "8351:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8322:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 388, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8363:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8322:42:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 390, + "nodeType": "ExpressionStatement", + "src": "8322:42:0" + } + ] + } + } + ] + } + }, + "id": 405, + "nodeType": "IfStatement", + "src": "6936:1616:0", + "trueBody": { + "id": 351, + "nodeType": "Block", + "src": "6948:737:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 329, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "7065:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 331, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "7088:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7080:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7080:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7065:25:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 334, + "nodeType": "ExpressionStatement", + "src": "7065:25:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 336, + "name": "contractSignature", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "7108:30:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 335, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7108:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 337, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "7108:30:0" + }, + { + "externalReferences": [ + { + "contractSignature": { + "declaration": 336, + "isOffset": false, + "isSlot": false, + "src": "7398:17:0", + "valueSize": 1 + } + }, + { + "signatures": { + "declaration": 268, + "isOffset": false, + "isSlot": false, + "src": "7427:10:0", + "valueSize": 1 + } + }, + { + "s": { + "declaration": 301, + "isOffset": false, + "isSlot": false, + "src": "7439:1:0", + "valueSize": 1 + } + } + ], + "id": 338, + "nodeType": "InlineAssembly", + "operations": "{\n contractSignature := add(add(signatures, s), 0x20)\n}", + "src": "7228:257:0" + }, + { + "condition": { + "argumentTypes": null, + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7487:76:0", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 343, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 266, + "src": "7539:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 344, + "name": "contractSignature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 336, + "src": "7545:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 340, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "7508:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 339, + "name": "ISignatureValidator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1803, + "src": "7488:19:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISignatureValidator_$1803_$", + "typeString": "type(contract ISignatureValidator)" + } + }, + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7488:33:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISignatureValidator_$1803", + "typeString": "contract ISignatureValidator" + } + }, + "id": 342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isValidSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 1802, + "src": "7488:50:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (bytes memory,bytes memory) external returns (bool)" + } + }, + "id": 345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7488:75:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 350, + "nodeType": "IfStatement", + "src": "7483:135:0", + "trueBody": { + "id": 349, + "nodeType": "Block", + "src": "7565:53:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7594:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 274, + "id": 348, + "nodeType": "Return", + "src": "7587:12:0" + } + ] + } + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 406, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "8569:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 407, + "name": "lastOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 286, + "src": "8585:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8569:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 409, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "8598:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 411, + "indexExpression": { + "argumentTypes": null, + "id": 410, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "8605:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8598:20:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 412, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8622:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8598:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8569:54:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 418, + "nodeType": "IfStatement", + "src": "8565:105:0", + "trueBody": { + "id": 417, + "nodeType": "Block", + "src": "8625:45:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8650:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 274, + "id": 416, + "nodeType": "Return", + "src": "8643:12:0" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 419, + "name": "lastOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 286, + "src": "8683:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 420, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "8695:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8683:24:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 422, + "nodeType": "ExpressionStatement", + "src": "8683:24:0" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 310, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 304, + "src": "6790:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 311, + "name": "threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1242, + "src": "6794:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6790:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 424, + "initializationExpression": { + "expression": { + "argumentTypes": null, + "id": 308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 306, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 304, + "src": "6783:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6787:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6783:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 309, + "nodeType": "ExpressionStatement", + "src": "6783:5:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6805:3:0", + "subExpression": { + "argumentTypes": null, + "id": 313, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 304, + "src": "6805:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 315, + "nodeType": "ExpressionStatement", + "src": "6805:3:0" + }, + "nodeType": "ForStatement", + "src": "6778:1940:0" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8734:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 274, + "id": 426, + "nodeType": "Return", + "src": "8727:11:0" + } + ] + }, + "documentation": "@dev Should return whether the signature provided is valid for the provided data, hash\n@param dataHash Hash of the data (could be either a message hash or transaction hash)\n@param data That should be signed (this is passed to an external validator contract)\n@param signatures Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash.\n@param consumeHash Indicates that in case of an approved hash the storage can be freed to save gas\n@return a bool upon valid or invalid signature with corresponding _data", + "id": 428, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "checkSignatures", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 264, + "name": "dataHash", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6309:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 263, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6309:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 266, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6327:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 265, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6327:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 268, + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6339:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 267, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6339:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 270, + "name": "consumeHash", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6357:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 269, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6357:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6308:66:0" + }, + "payable": false, + "returnParameters": { + "id": 274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 273, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6409:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 272, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6409:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6408:6:0" + }, + "scope": 692, + "src": "6284:2461:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 475, + "nodeType": "Block", + "src": "9809:420:0", + "statements": [ + { + "assignments": [ + 444 + ], + "declarations": [ + { + "constant": false, + "id": 444, + "name": "startGas", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "9819:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 443, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9819:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 447, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 445, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4484, + "src": "9838:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9838:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9819:28:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 450, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 430, + "src": "10009:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 451, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 432, + "src": "10013:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 452, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "10020:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 453, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 436, + "src": "10026:9:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 454, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4484, + "src": "10037:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10037:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 449, + "name": "execute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 854, + "src": "10001:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" + } + }, + "id": 456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10001:46:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 448, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4494, + 4495 + ], + "referencedDeclaration": 4494, + "src": "9993:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9993:55:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 458, + "nodeType": "ExpressionStatement", + "src": "9993:55:0" + }, + { + "assignments": [ + 460 + ], + "declarations": [ + { + "constant": false, + "id": 460, + "name": "requiredGas", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "10058:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 459, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10058:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 465, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 461, + "name": "startGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 444, + "src": "10080:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 462, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4484, + "src": "10091:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10091:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10080:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10058:42:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 470, + "name": "requiredGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 460, + "src": "10208:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 468, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4478, + "src": "10191:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10191:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10191:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10184:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": "string" + }, + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10184:37:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 466, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4496, + 4497 + ], + "referencedDeclaration": 4497, + "src": "10177:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10177:45:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 474, + "nodeType": "ExpressionStatement", + "src": "10177:45:0" + } + ] + }, + "documentation": "@dev Allows to estimate a Safe transaction. \n This method is only meant for estimation purpose, therfore two different protection mechanism against execution in a transaction have been made:\n 1.) The method can only be called from the safe itself\n 2.) The response is returned with a revert\n When estimating set `from` to the address of the safe.\n Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).", + "id": 476, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 439, + "modifierName": { + "argumentTypes": null, + "id": 438, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "9768:10:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9768:10:0" + } + ], + "name": "requiredTxGas", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 430, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "9680:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 429, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9680:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 432, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "9692:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 431, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9692:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 434, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "9707:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 433, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9707:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 436, + "name": "operation", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "9719:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + "typeName": { + "contractScope": null, + "id": 435, + "name": "Enum.Operation", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1658, + "src": "9719:14:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9679:65:0" + }, + "payable": false, + "returnParameters": { + "id": 442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 441, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "9796:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9796:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9795:9:0" + }, + "scope": 692, + "src": "9657:572:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 500, + "nodeType": "Block", + "src": "10537:138:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 482, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "10555:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 485, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 483, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "10562:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10562:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10555:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10577:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10555:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4f6e6c79206f776e6572732063616e20617070726f766520612068617368", + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10580:32:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_60f21058f4a7689ef29853b3c9c17c9bf69856a949794649bb68878f00552475", + "typeString": "literal_string \"Only owners can approve a hash\"" + }, + "value": "Only owners can approve a hash" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_60f21058f4a7689ef29853b3c9c17c9bf69856a949794649bb68878f00552475", + "typeString": "literal_string \"Only owners can approve a hash\"" + } + ], + "id": 481, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4494, + 4495 + ], + "referencedDeclaration": 4495, + "src": "10547:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10547:66:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 490, + "nodeType": "ExpressionStatement", + "src": "10547:66:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 491, + "name": "approvedHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 49, + "src": "10623:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(bytes32 => uint256))" + } + }, + "id": 495, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 492, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "10638:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10638:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10623:26:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 496, + "indexExpression": { + "argumentTypes": null, + "id": 494, + "name": "hashToApprove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "10650:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10623:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10667:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10623:45:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 499, + "nodeType": "ExpressionStatement", + "src": "10623:45:0" + } + ] + }, + "documentation": "@dev Marks a hash as approved. This can be used to validate a hash that is used by a signature.\n@param hashToApprove The hash that should be marked as approved for signatures that are verified by this contract.", + "id": 501, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approveHash", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 478, + "name": "hashToApprove", + "nodeType": "VariableDeclaration", + "scope": 501, + "src": "10494:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 477, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10494:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10493:23:0" + }, + "payable": false, + "returnParameters": { + "id": 480, + "nodeType": "ParameterList", + "parameters": [], + "src": "10537:0:0" + }, + "scope": 692, + "src": "10473:202:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 516, + "nodeType": "Block", + "src": "10911:57:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 508, + "name": "signedMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "10921:13:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 512, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 510, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 503, + "src": "10950:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 509, + "name": "getMessageHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 591, + "src": "10935:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) view returns (bytes32)" + } + }, + "id": 511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10935:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10921:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10960:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10921:40:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 515, + "nodeType": "ExpressionStatement", + "src": "10921:40:0" + } + ] + }, + "documentation": "@dev Marks a message as signed\n@param _data Arbitrary length data that should be marked as signed on the behalf of address(this)", + "id": 517, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 506, + "modifierName": { + "argumentTypes": null, + "id": 505, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "10896:10:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10896:10:0" + } + ], + "name": "signMessage", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 504, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 503, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 517, + "src": "10859:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 502, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "10859:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10858:13:0" + }, + "payable": false, + "returnParameters": { + "id": 507, + "nodeType": "ParameterList", + "parameters": [], + "src": "10911:0:0" + }, + "scope": 692, + "src": "10838:130:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 556, + "nodeType": "Block", + "src": "11408:339:0", + "statements": [ + { + "assignments": [ + 527 + ], + "declarations": [ + { + "constant": false, + "id": 527, + "name": "messageHash", + "nodeType": "VariableDeclaration", + "scope": 557, + "src": "11418:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 526, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "11418:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 531, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 529, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "11455:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 528, + "name": "getMessageHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 591, + "src": "11440:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) view returns (bytes32)" + } + }, + "id": 530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11440:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11418:43:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 532, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "11475:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11475:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11496:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11475:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 554, + "nodeType": "Block", + "src": "11571:170:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 545, + "name": "isValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "11666:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 547, + "name": "messageHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "11692:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 548, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "11705:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 549, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "11712:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11724:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 546, + "name": "checkSignatures", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "11676:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bool_$", + "typeString": "function (bytes32,bytes memory,bytes memory,bool) returns (bool)" + } + }, + "id": 551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11676:54:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11666:64:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 553, + "nodeType": "ExpressionStatement", + "src": "11666:64:0" + } + ] + }, + "id": 555, + "nodeType": "IfStatement", + "src": "11471:270:0", + "trueBody": { + "id": 544, + "nodeType": "Block", + "src": "11499:66:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 536, + "name": "isValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "11513:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 537, + "name": "signedMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "11523:13:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 539, + "indexExpression": { + "argumentTypes": null, + "id": 538, + "name": "messageHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "11537:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11523:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11553:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11523:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11513:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 543, + "nodeType": "ExpressionStatement", + "src": "11513:41:0" + } + ] + } + } + ] + }, + "documentation": "@dev Should return whether the signature provided is valid for the provided data\n@param _data Arbitrary length data signed on the behalf of address(this)\n@param _signature Signature byte array associated with _data\n@return a bool upon valid or invalid signature with corresponding _data", + "id": 557, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "isValidSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 519, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 557, + "src": "11327:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 518, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11327:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 521, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 557, + "src": "11340:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 520, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11340:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11326:31:0" + }, + "payable": false, + "returnParameters": { + "id": 525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 524, + "name": "isValid", + "nodeType": "VariableDeclaration", + "scope": 557, + "src": "11390:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 523, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11390:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11389:14:0" + }, + "scope": 692, + "src": "11301:446:0", + "stateMutability": "nonpayable", + "superFunction": 1802, + "visibility": "public" + }, + { + "body": { + "id": 590, + "nodeType": "Block", + "src": "12016:246:0", + "statements": [ + { + "assignments": [ + 565 + ], + "declarations": [ + { + "constant": false, + "id": 565, + "name": "safeMessageHash", + "nodeType": "VariableDeclaration", + "scope": 591, + "src": "12026:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 564, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12026:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 575, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 569, + "name": "SAFE_MSG_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31, + "src": "12086:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 571, + "name": "message", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "12115:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 570, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "12105:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12105:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 567, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4478, + "src": "12075:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12075:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12075:49:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 566, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "12052:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12052:82:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12026:108:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30783139", + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12196:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + }, + "value": "0x19" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + } + ], + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12191:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12191:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12208:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12203:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 584, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12203:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "id": 585, + "name": "domainSeparator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "12212:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 586, + "name": "safeMessageHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 565, + "src": "12229:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 577, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4478, + "src": "12174:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12174:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12174:71:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 576, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "12151:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12151:104:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 563, + "id": 589, + "nodeType": "Return", + "src": "12144:111:0" + } + ] + }, + "documentation": "@dev Returns hash of a message that can be signed by owners.\n @param message Message that should be hashed\n @return Message hash.", + "id": 591, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getMessageHash", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 559, + "name": "message", + "nodeType": "VariableDeclaration", + "scope": 591, + "src": "11938:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 558, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11938:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11928:29:0" + }, + "payable": false, + "returnParameters": { + "id": 563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 562, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 591, + "src": "12003:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 561, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12003:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12002:9:0" + }, + "scope": 692, + "src": "11905:357:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 649, + "nodeType": "Block", + "src": "13332:285:0", + "statements": [ + { + "assignments": [ + 617 + ], + "declarations": [ + { + "constant": false, + "id": 617, + "name": "safeTxHash", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13342:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 616, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "13342:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 636, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 621, + "name": "SAFE_TX_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "13397:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 622, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "13415:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 623, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 595, + "src": "13419:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 625, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 597, + "src": "13436:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 624, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "13426:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13426:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 627, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "13443:9:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "id": 628, + "name": "safeTxGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 601, + "src": "13454:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 629, + "name": "dataGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 603, + "src": "13465:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 630, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "13474:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 631, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "13484:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 632, + "name": "refundReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "13494:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 633, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 611, + "src": "13510:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 619, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4478, + "src": "13386:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13386:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13386:131:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 618, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "13363:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13363:164:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13342:185:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30783139", + "id": 640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13566:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + }, + "value": "0x19" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + } + ], + "id": 639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13561:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13561:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13578:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13573:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13573:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "id": 645, + "name": "domainSeparator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "13582:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 646, + "name": "safeTxHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 617, + "src": "13599:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 637, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4478, + "src": "13544:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13544:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13544:66:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 615, + "id": 648, + "nodeType": "Return", + "src": "13537:73:0" + } + ] + }, + "documentation": "@dev Returns the bytes that are hashed to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param safeTxGas Fas that should be used for the safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param _nonce Transaction nonce.\n @return Transaction hash bytes.", + "id": 650, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "encodeTransactionData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 612, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 593, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13015:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13015:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13036:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13036:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 597, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13060:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 596, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13060:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 599, + "name": "operation", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13081:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + "typeName": { + "contractScope": null, + "id": 598, + "name": "Enum.Operation", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1658, + "src": "13081:14:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 601, + "name": "safeTxGas", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13116:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13116:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 603, + "name": "dataGas", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13144:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 602, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13144:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 605, + "name": "gasPrice", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13170:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13170:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 607, + "name": "gasToken", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13197:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13197:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 609, + "name": "refundReceiver", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13223:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13223:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 611, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13255:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 610, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13255:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13005:270:0" + }, + "payable": false, + "returnParameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 614, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13321:5:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13321:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13320:7:0" + }, + "scope": 692, + "src": "12975:642:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 690, + "nodeType": "Block", + "src": "14659:148:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 677, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 652, + "src": "14708:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 678, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 654, + "src": "14712:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 679, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 656, + "src": "14719:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 680, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 658, + "src": "14725:9:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "id": 681, + "name": "safeTxGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 660, + "src": "14736:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 682, + "name": "dataGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "14747:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 683, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 664, + "src": "14756:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 684, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 666, + "src": "14766:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 685, + "name": "refundReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 668, + "src": "14776:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 686, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 670, + "src": "14792:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 676, + "name": "encodeTransactionData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 650, + "src": "14686:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,address,uint256) view returns (bytes memory)" + } + }, + "id": 687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14686:113:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 675, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "14676:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14676:124:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 674, + "id": 689, + "nodeType": "Return", + "src": "14669:131:0" + } + ] + }, + "documentation": "@dev Returns hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param safeTxGas Fas that should be used for the safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param _nonce Transaction nonce.\n @return Transaction hash.", + "id": 691, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTransactionHash", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 652, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14340:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 651, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14340:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 654, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14361:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14361:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 656, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14385:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 655, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14385:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 658, + "name": "operation", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14406:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + "typeName": { + "contractScope": null, + "id": 657, + "name": "Enum.Operation", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1658, + "src": "14406:14:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 660, + "name": "safeTxGas", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14441:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 659, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14441:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 662, + "name": "dataGas", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14469:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 661, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14469:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 664, + "name": "gasPrice", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14495:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14495:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 666, + "name": "gasToken", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14522:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 665, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14522:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 668, + "name": "refundReceiver", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14548:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 667, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14548:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 670, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14580:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14580:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14330:270:0" + }, + "payable": false, + "returnParameters": { + "id": 674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 673, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14646:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 672, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14646:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14645:9:0" + }, + "scope": 692, + "src": "14303:504:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" } ], - "scope": 209, - "src": "322:1070:4" + "scope": 693, + "src": "534:14275:0" } ], - "src": "0:1393:4" + "src": "0:14810:0" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "exportedSymbols": { "GnosisSafe": [ - 208 + 692 ] }, - "id": 209, + "id": 693, "nodeType": "SourceUnit", "nodes": [ { - "id": 155, + "id": 1, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:4" + "src": "0:23:0" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", - "file": "./Module.sol", - "id": 156, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", + "file": "./base/BaseSafe.sol", + "id": 2, "nodeType": "ImportDirective", - "scope": 209, - "sourceUnit": 914, - "src": "24:22:4", + "scope": 693, + "sourceUnit": 783, + "src": "24:29:0", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", - "file": "./ModuleManager.sol", - "id": 157, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", + "file": "./common/MasterCopy.sol", + "id": 3, "nodeType": "ImportDirective", - "scope": 209, - "sourceUnit": 1181, - "src": "47:29:4", + "scope": 693, + "sourceUnit": 1694, + "src": "54:33:0", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", - "file": "./OwnerManager.sol", - "id": 158, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", + "file": "./common/SignatureDecoder.sol", + "id": 4, "nodeType": "ImportDirective", - "scope": 209, - "sourceUnit": 1589, - "src": "77:28:4", + "scope": 693, + "sourceUnit": 1792, + "src": "88:39:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", + "file": "./common/SecuredTokenTransfer.sol", + "id": 5, + "nodeType": "ImportDirective", + "scope": 693, + "sourceUnit": 1719, + "src": "128:43:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", + "file": "./interfaces/ISignatureValidator.sol", + "id": 6, + "nodeType": "ImportDirective", + "scope": 693, + "sourceUnit": 1804, + "src": "172:46:0", "symbolAliases": [], "unitAlias": "" }, @@ -1143,68 +10437,218 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 159, - "name": "ModuleManager", + "id": 7, + "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1180, - "src": "345:13:4", + "referencedDeclaration": 1693, + "src": "557:10:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_contract$_MasterCopy_$1693", + "typeString": "contract MasterCopy" } }, - "id": 160, + "id": 8, "nodeType": "InheritanceSpecifier", - "src": "345:13:4" + "src": "557:10:0" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 161, - "name": "OwnerManager", + "id": 9, + "name": "BaseSafe", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1588, - "src": "360:12:4", + "referencedDeclaration": 782, + "src": "569:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1588", - "typeString": "contract OwnerManager" + "typeIdentifier": "t_contract$_BaseSafe_$782", + "typeString": "contract BaseSafe" } }, - "id": 162, + "id": 10, "nodeType": "InheritanceSpecifier", - "src": "360:12:4" + "src": "569:8:0" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 11, + "name": "SignatureDecoder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1791, + "src": "579:16:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SignatureDecoder_$1791", + "typeString": "contract SignatureDecoder" + } + }, + "id": 12, + "nodeType": "InheritanceSpecifier", + "src": "579:16:0" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 13, + "name": "SecuredTokenTransfer", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1718, + "src": "597:20:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1718", + "typeString": "contract SecuredTokenTransfer" + } + }, + "id": 14, + "nodeType": "InheritanceSpecifier", + "src": "597:20:0" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 15, + "name": "ISignatureValidator", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1803, + "src": "619:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISignatureValidator_$1803", + "typeString": "contract ISignatureValidator" + } + }, + "id": 16, + "nodeType": "InheritanceSpecifier", + "src": "619:19:0" } ], "contractDependencies": [ - 153, - 37, - 1180, - 1588, - 1765 + 782, + 892, + 1212, + 1652, + 1666, + 1693, + 1718, + 1735, + 1791, + 1803 ], "contractKind": "contract", - "documentation": "@title Gnosis Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n @author Stefan George - ", + "documentation": "@title Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n @author Stefan George - \n @author Richard Meissner - \n @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment", "fullyImplemented": true, - "id": 208, + "id": 692, "linearizedBaseContracts": [ - 208, - 1588, - 1180, - 153, - 37, - 1765 + 692, + 1803, + 1718, + 1791, + 782, + 1652, + 1212, + 892, + 1666, + 1693, + 1735 ], "name": "GnosisSafe", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 165, - "name": "DOMAIN_SEPERATOR_TYPEHASH", + "id": 19, + "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 208, - "src": "458:118:4", + "scope": 692, + "src": "646:43:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 17, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "646:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "476e6f7369732053616665", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "676:13:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_72ec6775392f699e8ffd72b7c600556d49bdc746bf22bce93d3ae6019cdaff63", + "typeString": "literal_string \"Gnosis Safe\"" + }, + "value": "Gnosis Safe" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 22, + "name": "VERSION", + "nodeType": "VariableDeclaration", + "scope": 692, + "src": "695:40:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 20, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "695:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "302e302e32", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "728:7:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", + "typeString": "literal_string \"0.0.2\"" + }, + "value": "0.0.2" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 25, + "name": "DOMAIN_SEPARATOR_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 692, + "src": "820:118:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1212,10 +10656,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 163, + "id": 23, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "458:7:4", + "src": "820:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1224,14 +10668,14 @@ "value": { "argumentTypes": null, "hexValue": "307830333561666638336438363933376433356233326530346630646463366666343639323930656566326631623639326438613831356338393430346434373439", - "id": 164, + "id": 24, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "510:66:4", + "src": "872:66:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1517718281442037948617199096126532355110765202990829672390711201829802035017_by_1", @@ -1242,12 +10686,12 @@ "visibility": "public" }, { - "constant": false, - "id": 167, - "name": "domainSeperator", + "constant": true, + "id": 28, + "name": "SAFE_TX_TYPEHASH", "nodeType": "VariableDeclaration", - "scope": 208, - "src": "583:30:4", + "scope": 692, + "src": "1148:109:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1255,10 +10699,164 @@ "typeString": "bytes32" }, "typeName": { - "id": 166, + "id": 26, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "583:7:4", + "src": "1148:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307831346434363162633734313233363765393234363337623336336337626632396238663437653266383438363966343432366535363333643861663437623230", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1191:66:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9421503099487675527562227662599058764916562750590033657944341861770225548064_by_1", + "typeString": "int_const 9421...(68 digits omitted)...8064" + }, + "value": "0x14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b20" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 31, + "name": "SAFE_MSG_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 692, + "src": "1329:110:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 29, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1329:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836306233636266386234613232336436386436343162336236646466396132393865376633333731306366336433613964313134366235613631353066626361", + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1373:66:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_43739706848186989041152069077571617734008543096732098246335109361212071148490_by_1", + "typeString": "int_const 4373...(69 digits omitted)...8490" + }, + "value": "0x60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca" + }, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 35, + "name": "ExecutionFailed", + "nodeType": "EventDefinition", + "parameters": { + "id": 34, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33, + "indexed": false, + "name": "txHash", + "nodeType": "VariableDeclaration", + "scope": 35, + "src": "1472:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 32, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1472:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1471:16:0" + }, + "src": "1450:38:0" + }, + { + "constant": false, + "id": 37, + "name": "nonce", + "nodeType": "VariableDeclaration", + "scope": 692, + "src": "1494:20:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 36, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1494:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 39, + "name": "domainSeparator", + "nodeType": "VariableDeclaration", + "scope": 692, + "src": "1520:30:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 38, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1520:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1267,11 +10865,120 @@ "value": null, "visibility": "public" }, + { + "constant": false, + "id": 43, + "name": "signedMessage", + "nodeType": "VariableDeclaration", + "scope": 692, + "src": "1653:41:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 42, + "keyType": { + "id": 40, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1661:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1653:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 41, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1672:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 49, + "name": "approvedHashes", + "nodeType": "VariableDeclaration", + "scope": 692, + "src": "1805:62:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(bytes32 => uint256))" + }, + "typeName": { + "id": 48, + "keyType": { + "id": 44, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1813:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1805:47:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(bytes32 => uint256))" + }, + "valueType": { + "id": 47, + "keyType": { + "id": 45, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1832:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1824:27:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 46, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1843:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, { "body": { - "id": 206, + "id": 85, "nodeType": "Block", - "src": "1030:360:4", + "src": "2284:211:0", "statements": [ { "expression": { @@ -1283,19 +10990,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 182, + "id": 64, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 180, - "name": "domainSeperator", + "id": 62, + "name": "domainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "1048:15:4", + "referencedDeclaration": 39, + "src": "2302:15:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1306,14 +11013,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 181, + "id": 63, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1067:1:4", + "src": "2321:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1321,7 +11028,7 @@ }, "value": "0" }, - "src": "1048:20:4", + "src": "2302:20:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1329,21 +11036,21 @@ }, { "argumentTypes": null, - "hexValue": "446f6d61696e20536570657261746f7220616c72656164792073657421", - "id": 183, + "hexValue": "446f6d61696e20536570617261746f7220616c72656164792073657421", + "id": 65, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1070:31:4", + "src": "2324:31:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_76b336706355b2c543d4f566e8de773fa4e586723c61d024c00ec0bb4ad3fcae", - "typeString": "literal_string \"Domain Seperator already set!\"" + "typeIdentifier": "t_stringliteral_a2e1f2db9cd32eaa6a2caa3d6caa726a30dc0417d866440bfe13d6a6d030e5e2", + "typeString": "literal_string \"Domain Separator already set!\"" }, - "value": "Domain Seperator already set!" + "value": "Domain Separator already set!" } ], "expression": { @@ -1353,25 +11060,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_76b336706355b2c543d4f566e8de773fa4e586723c61d024c00ec0bb4ad3fcae", - "typeString": "literal_string \"Domain Seperator already set!\"" + "typeIdentifier": "t_stringliteral_a2e1f2db9cd32eaa6a2caa3d6caa726a30dc0417d866440bfe13d6a6d030e5e2", + "typeString": "literal_string \"Domain Separator already set!\"" } ], - "id": 179, + "id": 61, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1040:7:4", + "referencedDeclaration": 4495, + "src": "2294:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 184, + "id": 66, "isConstant": false, "isLValue": false, "isPure": false, @@ -1379,32 +11086,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1040:62:4", + "src": "2294:62:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 185, + "id": 67, "nodeType": "ExpressionStatement", - "src": "1040:62:4" + "src": "2294:62:0" }, { "expression": { "argumentTypes": null, - "id": 194, + "id": 76, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 186, - "name": "domainSeperator", + "id": 68, + "name": "domainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "1112:15:4", + "referencedDeclaration": 39, + "src": "2366:15:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1420,12 +11127,12 @@ "arguments": [ { "argumentTypes": null, - "id": 190, - "name": "DOMAIN_SEPERATOR_TYPEHASH", + "id": 72, + "name": "DOMAIN_SEPARATOR_TYPEHASH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 165, - "src": "1151:25:4", + "referencedDeclaration": 25, + "src": "2405:25:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1433,14 +11140,14 @@ }, { "argumentTypes": null, - "id": 191, + "id": 73, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3861, - "src": "1178:4:4", + "referencedDeclaration": 4528, + "src": "2432:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$208", + "typeIdentifier": "t_contract$_GnosisSafe_$692", "typeString": "contract GnosisSafe" } } @@ -1452,24 +11159,24 @@ "typeString": "bytes32" }, { - "typeIdentifier": "t_contract$_GnosisSafe_$208", + "typeIdentifier": "t_contract$_GnosisSafe_$692", "typeString": "contract GnosisSafe" } ], "expression": { "argumentTypes": null, - "id": 188, + "id": 70, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "1140:3:4", + "referencedDeclaration": 4478, + "src": "2394:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 189, + "id": 71, "isConstant": false, "isLValue": false, "isPure": true, @@ -1477,13 +11184,13 @@ "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1140:10:4", + "src": "2394:10:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 192, + "id": 74, "isConstant": false, "isLValue": false, "isPure": false, @@ -1491,7 +11198,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1140:43:4", + "src": "2394:43:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1505,18 +11212,18 @@ "typeString": "bytes memory" } ], - "id": 187, + "id": 69, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "1130:9:4", + "referencedDeclaration": 4485, + "src": "2384:9:0", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 193, + "id": 75, "isConstant": false, "isLValue": false, "isPure": false, @@ -1524,21 +11231,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1130:54:4", + "src": "2384:54:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "1112:72:4", + "src": "2366:72:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 195, + "id": 77, "nodeType": "ExpressionStatement", - "src": "1112:72:4" + "src": "2366:72:0" }, { "expression": { @@ -1546,12 +11253,12 @@ "arguments": [ { "argumentTypes": null, - "id": 197, + "id": 79, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "1206:7:4", + "referencedDeclaration": 52, + "src": "2458:7:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -1559,16 +11266,42 @@ }, { "argumentTypes": null, - "id": 198, + "id": 80, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 172, - "src": "1215:10:4", + "referencedDeclaration": 54, + "src": "2467:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "argumentTypes": null, + "id": 81, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "2479:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 82, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "2483:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } } ], "expression": { @@ -1580,70 +11313,7 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - ], - "id": 196, - "name": "setupOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1297, - "src": "1194:11:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (address[] memory,uint256)" - } - }, - "id": 199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1194:32:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 200, - "nodeType": "ExpressionStatement", - "src": "1194:32:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 202, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 174, - "src": "1374:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 203, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 176, - "src": "1378:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ + }, { "typeIdentifier": "t_address", "typeString": "address" @@ -1653,18 +11323,18 @@ "typeString": "bytes memory" } ], - "id": 201, - "name": "setupModules", + "id": 78, + "name": "setupSafe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "1361:12:4", + "referencedDeclaration": 781, + "src": "2448:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory)" + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address[] memory,uint256,address,bytes memory)" } }, - "id": 204, + "id": 83, "isConstant": false, "isLValue": false, "isPure": false, @@ -1672,20 +11342,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1361:22:4", + "src": "2448:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 205, + "id": 84, "nodeType": "ExpressionStatement", - "src": "1361:22:4" + "src": "2448:40:0" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.", - "id": 207, + "id": 86, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1693,16 +11363,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 177, + "id": 59, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 170, + "id": 52, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 207, - "src": "948:17:4", + "scope": 86, + "src": "2202:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1711,19 +11381,19 @@ }, "typeName": { "baseType": { - "id": 168, + "id": 50, "name": "address", "nodeType": "ElementaryTypeName", - "src": "948:7:4", + "src": "2202:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 169, + "id": 51, "length": null, "nodeType": "ArrayTypeName", - "src": "948:9:4", + "src": "2202:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1734,11 +11404,11 @@ }, { "constant": false, - "id": 172, + "id": 54, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 207, - "src": "967:18:4", + "scope": 86, + "src": "2221:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1746,10 +11416,10 @@ "typeString": "uint256" }, "typeName": { - "id": 171, + "id": 53, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "967:7:4", + "src": "2221:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1760,11 +11430,11 @@ }, { "constant": false, - "id": 174, + "id": 56, "name": "to", "nodeType": "VariableDeclaration", - "scope": 207, - "src": "987:10:4", + "scope": 86, + "src": "2241:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1772,10 +11442,10 @@ "typeString": "address" }, "typeName": { - "id": 173, + "id": 55, "name": "address", "nodeType": "ElementaryTypeName", - "src": "987:7:4", + "src": "2241:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1786,11 +11456,11 @@ }, { "constant": false, - "id": 176, + "id": 58, "name": "data", "nodeType": "VariableDeclaration", - "scope": 207, - "src": "999:10:4", + "scope": 86, + "src": "2253:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1798,10 +11468,10 @@ "typeString": "bytes" }, "typeName": { - "id": 175, + "id": 57, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "999:5:4", + "src": "2253:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1811,33 +11481,8520 @@ "visibility": "internal" } ], - "src": "947:63:4" + "src": "2201:63:0" }, "payable": false, "returnParameters": { - "id": 178, + "id": 60, "nodeType": "ParameterList", "parameters": [], - "src": "1030:0:4" + "src": "2284:0:0" }, - "scope": 208, - "src": "933:457:4", + "scope": 692, + "src": "2187:308:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" + }, + { + "body": { + "id": 197, + "nodeType": "Block", + "src": "3827:1118:0", + "statements": [ + { + "assignments": [ + 112 + ], + "declarations": [ + { + "constant": false, + "id": 112, + "name": "startGas", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3837:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 111, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3837:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 115, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 113, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4484, + "src": "3856:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3856:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3837:28:0" + }, + { + "assignments": [ + 117 + ], + "declarations": [ + { + "constant": false, + "id": 117, + "name": "txHashData", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3875:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 116, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3875:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 130, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 119, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 88, + "src": "3936:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 120, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 90, + "src": "3940:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 121, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "3947:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 122, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "3953:9:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "id": 123, + "name": "safeTxGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "3996:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 124, + "name": "dataGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 98, + "src": "4007:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 125, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "4016:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 126, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 102, + "src": "4026:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 127, + "name": "refundReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 104, + "src": "4036:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 128, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "4080:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 118, + "name": "encodeTransactionData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 650, + "src": "3901:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,address,uint256) view returns (bytes memory)" + } + }, + "id": 129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3901:194:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3875:220:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 134, + "name": "txHashData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "4139:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 133, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "4129:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4129:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 136, + "name": "txHashData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "4152:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 137, + "name": "signatures", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "4164:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4176:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 132, + "name": "checkSignatures", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4113:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bool_$", + "typeString": "function (bytes32,bytes memory,bytes memory,bool) returns (bool)" + } + }, + "id": 139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4113:68:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "496e76616c6964207369676e6174757265732070726f7669646564", + "id": 140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4183:29:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_85bcea44c930431ef19052d068cc504a81260341ae6c5ee84bb5a38ec55acf05", + "typeString": "literal_string \"Invalid signatures provided\"" + }, + "value": "Invalid signatures provided" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_85bcea44c930431ef19052d068cc504a81260341ae6c5ee84bb5a38ec55acf05", + "typeString": "literal_string \"Invalid signatures provided\"" + } + ], + "id": 131, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4494, + 4495 + ], + "referencedDeclaration": 4495, + "src": "4105:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4105:108:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 142, + "nodeType": "ExpressionStatement", + "src": "4105:108:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4274:7:0", + "subExpression": { + "argumentTypes": null, + "id": 143, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "4274:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 145, + "nodeType": "ExpressionStatement", + "src": "4274:7:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 147, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4484, + "src": "4299:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4299:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 149, + "name": "safeTxGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "4312:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4299:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e6f7420656e6f7567682067617320746f20657865637574652073616665207472616e73616374696f6e", + "id": 151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4323:44:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", + "typeString": "literal_string \"Not enough gas to execute safe transaction\"" + }, + "value": "Not enough gas to execute safe transaction" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", + "typeString": "literal_string \"Not enough gas to execute safe transaction\"" + } + ], + "id": 146, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4494, + 4495 + ], + "referencedDeclaration": 4495, + "src": "4291:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4291:77:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 153, + "nodeType": "ExpressionStatement", + "src": "4291:77:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 154, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 109, + "src": "4485:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 88, + "src": "4503:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 157, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 90, + "src": "4507:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 158, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "4514:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 159, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "4520:9:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 160, + "name": "safeTxGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "4531:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4544:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4531:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 163, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "4549:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4561:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4549:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4531:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 169, + "name": "safeTxGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "4577:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "4531:55:0", + "trueExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 167, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4484, + "src": "4565:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4565:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 155, + "name": "execute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 854, + "src": "4495:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" + } + }, + "id": 171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4495:92:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4485:102:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 173, + "nodeType": "ExpressionStatement", + "src": "4485:102:0" + }, + { + "condition": { + "argumentTypes": null, + "id": 175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4601:8:0", + "subExpression": { + "argumentTypes": null, + "id": 174, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 109, + "src": "4602:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 183, + "nodeType": "IfStatement", + "src": "4597:82:0", + "trueBody": { + "id": 182, + "nodeType": "Block", + "src": "4611:68:0", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 178, + "name": "txHashData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "4656:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 177, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "4646:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4646:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 176, + "name": "ExecutionFailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "4630:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4630:38:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 181, + "nodeType": "EmitStatement", + "src": "4625:43:0" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 184, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "4832:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4843:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4832:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 196, + "nodeType": "IfStatement", + "src": "4828:111:0", + "trueBody": { + "id": 195, + "nodeType": "Block", + "src": "4846:93:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 188, + "name": "startGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "4874:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 189, + "name": "dataGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 98, + "src": "4884:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 190, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "4893:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 191, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 102, + "src": "4903:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 192, + "name": "refundReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 104, + "src": "4913:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 187, + "name": "handlePayment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 262, + "src": "4860:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$returns$__$", + "typeString": "function (uint256,uint256,uint256,address,address)" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4860:68:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 194, + "nodeType": "ExpressionStatement", + "src": "4860:68:0" + } + ] + } + } + ] + }, + "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n Note: The fees are always transfered, even if the user transaction fails. \n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @param safeTxGas Gas that should be used for the Safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction and to pay the payment transfer\n @param gasPrice Gas price that should be used for the payment calculation.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", + "id": 198, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "execTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 88, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3517:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 87, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3517:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 90, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3538:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 89, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3538:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 92, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3562:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 91, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3562:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 94, + "name": "operation", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3583:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + "typeName": { + "contractScope": null, + "id": 93, + "name": "Enum.Operation", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1658, + "src": "3583:14:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 96, + "name": "safeTxGas", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3618:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 95, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3618:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 98, + "name": "dataGas", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3645:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 97, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3645:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 100, + "name": "gasPrice", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3670:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 99, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3670:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 102, + "name": "gasToken", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3696:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3696:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 104, + "name": "refundReceiver", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3722:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3722:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 106, + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3754:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 105, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3754:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3507:269:0" + }, + "payable": false, + "returnParameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 109, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 198, + "src": "3809:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 108, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3809:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3808:14:0" + }, + "scope": 692, + "src": "3483:1462:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 261, + "nodeType": "Block", + "src": "5135:532:0", + "statements": [ + { + "assignments": [ + 212 + ], + "declarations": [ + { + "constant": false, + "id": 212, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "5145:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5145:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 223, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 213, + "name": "gasUsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "5164:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 214, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4484, + "src": "5174:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5174:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5164:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 217, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5163:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 218, + "name": "dataGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 202, + "src": "5187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5163:31:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 220, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5162:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 221, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 204, + "src": "5198:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5162:44:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5145:61:0" + }, + { + "assignments": [ + 225 + ], + "declarations": [ + { + "constant": false, + "id": 225, + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "5274:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5274:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 235, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 226, + "name": "refundReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 208, + "src": "5293:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5319:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5311:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5311:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5293:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 233, + "name": "refundReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 208, + "src": "5336:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "5293:57:0", + "trueExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 231, + "name": "tx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4503, + "src": "5324:2:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_transaction", + "typeString": "tx" + } + }, + "id": 232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "origin", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5324:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5274:76:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 236, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 206, + "src": "5364:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5384:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5376:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5376:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5364:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 259, + "nodeType": "Block", + "src": "5548:113:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 252, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 206, + "src": "5584:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 253, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "5594:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 254, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 212, + "src": "5604:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 251, + "name": "transferToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1717, + "src": "5570:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" + } + }, + "id": 255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5570:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "436f756c64206e6f74207061792067617320636f737473207769746820746f6b656e", + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5613:36:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", + "typeString": "literal_string \"Could not pay gas costs with token\"" + }, + "value": "Could not pay gas costs with token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", + "typeString": "literal_string \"Could not pay gas costs with token\"" + } + ], + "id": 250, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4494, + 4495 + ], + "referencedDeclaration": 4495, + "src": "5562:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5562:88:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 258, + "nodeType": "ExpressionStatement", + "src": "5562:88:0" + } + ] + }, + "id": 260, + "nodeType": "IfStatement", + "src": "5360:301:0", + "trueBody": { + "id": 249, + "nodeType": "Block", + "src": "5388:154:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 244, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 212, + "src": "5485:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 242, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 225, + "src": "5471:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "send", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5471:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) returns (bool)" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5471:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "436f756c64206e6f74207061792067617320636f7374732077697468206574686572", + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5494:36:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", + "typeString": "literal_string \"Could not pay gas costs with ether\"" + }, + "value": "Could not pay gas costs with ether" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", + "typeString": "literal_string \"Could not pay gas costs with ether\"" + } + ], + "id": 241, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4494, + 4495 + ], + "referencedDeclaration": 4495, + "src": "5463:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5463:68:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 248, + "nodeType": "ExpressionStatement", + "src": "5463:68:0" + } + ] + } + } + ] + }, + "documentation": null, + "id": 262, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "handlePayment", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 200, + "name": "gasUsed", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "4983:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4983:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 202, + "name": "dataGas", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "5008:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5008:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 204, + "name": "gasPrice", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "5033:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5033:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 206, + "name": "gasToken", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "5059:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 205, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5059:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 208, + "name": "refundReceiver", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "5085:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5085:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4973:140:0" + }, + "payable": false, + "returnParameters": { + "id": 210, + "nodeType": "ParameterList", + "parameters": [], + "src": "5135:0:0" + }, + "scope": 692, + "src": "4951:716:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 427, + "nodeType": "Block", + "src": "6419:2326:0", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 275, + "name": "signatures", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 268, + "src": "6500:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6500:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 277, + "name": "threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1242, + "src": "6520:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3635", + "id": 278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6532:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_65_by_1", + "typeString": "int_const 65" + }, + "value": "65" + }, + "src": "6520:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6500:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 284, + "nodeType": "IfStatement", + "src": "6496:77:0", + "trueBody": { + "id": 283, + "nodeType": "Block", + "src": "6536:37:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6557:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 274, + "id": 282, + "nodeType": "Return", + "src": "6550:12:0" + } + ] + } + }, + { + "assignments": [ + 286 + ], + "declarations": [ + { + "constant": false, + "id": 286, + "name": "lastOwner", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6634:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 285, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6634:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 290, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6662:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6654:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 289, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6634:30:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 292, + "name": "currentOwner", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6674:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6674:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 293, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "6674:20:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 295, + "name": "v", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6704:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 294, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "6704:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 296, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "6704:7:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 298, + "name": "r", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6721:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 297, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6721:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 299, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "6721:9:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 301, + "name": "s", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6740:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 300, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6740:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 302, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "6740:9:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 304, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6759:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 303, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6759:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 305, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "6759:9:0" + }, + { + "body": { + "id": 423, + "nodeType": "Block", + "src": "6810:1908:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 316, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "6825:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 317, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "6828:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 318, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 301, + "src": "6831:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 319, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "6824:9:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(uint8,bytes32,bytes32)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 321, + "name": "signatures", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 268, + "src": "6851:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 322, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 304, + "src": "6863:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 320, + "name": "signatureSplit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "6836:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)" + } + }, + "id": 323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6836:29:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(uint8,bytes32,bytes32)" + } + }, + "src": "6824:41:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 325, + "nodeType": "ExpressionStatement", + "src": "6824:41:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 326, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "6940:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6945:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6940:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 352, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "7695:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7700:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7695:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 403, + "nodeType": "Block", + "src": "8403:149:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 394, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "8494:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 396, + "name": "dataHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 264, + "src": "8519:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 397, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "8529:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 398, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "8532:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 399, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 301, + "src": "8535:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 395, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4483, + "src": "8509:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8509:28:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8494:43:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 402, + "nodeType": "ExpressionStatement", + "src": "8494:43:0" + } + ] + }, + "id": 404, + "nodeType": "IfStatement", + "src": "7691:861:0", + "trueBody": { + "id": 393, + "nodeType": "Block", + "src": "7703:694:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 355, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "7816:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 357, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "7839:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7831:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7831:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7816:25:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 360, + "nodeType": "ExpressionStatement", + "src": "7816:25:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 361, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "8008:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8008:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 363, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "8022:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8008:26:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 365, + "name": "approvedHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 49, + "src": "8038:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(bytes32 => uint256))" + } + }, + "id": 367, + "indexExpression": { + "argumentTypes": null, + "id": 366, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "8053:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8038:28:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 369, + "indexExpression": { + "argumentTypes": null, + "id": 368, + "name": "dataHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 264, + "src": "8067:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8038:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8080:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8038:43:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8008:73:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 376, + "nodeType": "IfStatement", + "src": "8004:132:0", + "trueBody": { + "id": 375, + "nodeType": "Block", + "src": "8083:53:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 373, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8112:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 274, + "id": 374, + "nodeType": "Return", + "src": "8105:12:0" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 377, + "name": "consumeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 270, + "src": "8257:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 378, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "8272:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8272:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 380, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "8286:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8272:26:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8257:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 392, + "nodeType": "IfStatement", + "src": "8253:130:0", + "trueBody": { + "id": 391, + "nodeType": "Block", + "src": "8300:83:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 383, + "name": "approvedHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 49, + "src": "8322:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(bytes32 => uint256))" + } + }, + "id": 386, + "indexExpression": { + "argumentTypes": null, + "id": 384, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "8337:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8322:28:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 387, + "indexExpression": { + "argumentTypes": null, + "id": 385, + "name": "dataHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 264, + "src": "8351:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8322:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 388, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8363:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8322:42:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 390, + "nodeType": "ExpressionStatement", + "src": "8322:42:0" + } + ] + } + } + ] + } + }, + "id": 405, + "nodeType": "IfStatement", + "src": "6936:1616:0", + "trueBody": { + "id": 351, + "nodeType": "Block", + "src": "6948:737:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 329, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "7065:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 331, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "7088:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7080:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7080:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7065:25:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 334, + "nodeType": "ExpressionStatement", + "src": "7065:25:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 336, + "name": "contractSignature", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "7108:30:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 335, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7108:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 337, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "7108:30:0" + }, + { + "externalReferences": [ + { + "contractSignature": { + "declaration": 336, + "isOffset": false, + "isSlot": false, + "src": "7398:17:0", + "valueSize": 1 + } + }, + { + "signatures": { + "declaration": 268, + "isOffset": false, + "isSlot": false, + "src": "7427:10:0", + "valueSize": 1 + } + }, + { + "s": { + "declaration": 301, + "isOffset": false, + "isSlot": false, + "src": "7439:1:0", + "valueSize": 1 + } + } + ], + "id": 338, + "nodeType": "InlineAssembly", + "operations": "{\n contractSignature := add(add(signatures, s), 0x20)\n}", + "src": "7228:257:0" + }, + { + "condition": { + "argumentTypes": null, + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7487:76:0", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 343, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 266, + "src": "7539:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 344, + "name": "contractSignature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 336, + "src": "7545:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 340, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "7508:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 339, + "name": "ISignatureValidator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1803, + "src": "7488:19:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISignatureValidator_$1803_$", + "typeString": "type(contract ISignatureValidator)" + } + }, + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7488:33:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISignatureValidator_$1803", + "typeString": "contract ISignatureValidator" + } + }, + "id": 342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isValidSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 1802, + "src": "7488:50:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (bytes memory,bytes memory) external returns (bool)" + } + }, + "id": 345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7488:75:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 350, + "nodeType": "IfStatement", + "src": "7483:135:0", + "trueBody": { + "id": 349, + "nodeType": "Block", + "src": "7565:53:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7594:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 274, + "id": 348, + "nodeType": "Return", + "src": "7587:12:0" + } + ] + } + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 406, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "8569:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 407, + "name": "lastOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 286, + "src": "8585:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8569:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 409, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "8598:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 411, + "indexExpression": { + "argumentTypes": null, + "id": 410, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "8605:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8598:20:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 412, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8622:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8598:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8569:54:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 418, + "nodeType": "IfStatement", + "src": "8565:105:0", + "trueBody": { + "id": 417, + "nodeType": "Block", + "src": "8625:45:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8650:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 274, + "id": 416, + "nodeType": "Return", + "src": "8643:12:0" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 419, + "name": "lastOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 286, + "src": "8683:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 420, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "8695:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8683:24:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 422, + "nodeType": "ExpressionStatement", + "src": "8683:24:0" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 310, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 304, + "src": "6790:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 311, + "name": "threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1242, + "src": "6794:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6790:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 424, + "initializationExpression": { + "expression": { + "argumentTypes": null, + "id": 308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 306, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 304, + "src": "6783:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6787:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6783:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 309, + "nodeType": "ExpressionStatement", + "src": "6783:5:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6805:3:0", + "subExpression": { + "argumentTypes": null, + "id": 313, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 304, + "src": "6805:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 315, + "nodeType": "ExpressionStatement", + "src": "6805:3:0" + }, + "nodeType": "ForStatement", + "src": "6778:1940:0" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8734:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 274, + "id": 426, + "nodeType": "Return", + "src": "8727:11:0" + } + ] + }, + "documentation": "@dev Should return whether the signature provided is valid for the provided data, hash\n@param dataHash Hash of the data (could be either a message hash or transaction hash)\n@param data That should be signed (this is passed to an external validator contract)\n@param signatures Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash.\n@param consumeHash Indicates that in case of an approved hash the storage can be freed to save gas\n@return a bool upon valid or invalid signature with corresponding _data", + "id": 428, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "checkSignatures", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 264, + "name": "dataHash", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6309:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 263, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6309:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 266, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6327:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 265, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6327:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 268, + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6339:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 267, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6339:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 270, + "name": "consumeHash", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6357:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 269, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6357:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6308:66:0" + }, + "payable": false, + "returnParameters": { + "id": 274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 273, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6409:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 272, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6409:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6408:6:0" + }, + "scope": 692, + "src": "6284:2461:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 475, + "nodeType": "Block", + "src": "9809:420:0", + "statements": [ + { + "assignments": [ + 444 + ], + "declarations": [ + { + "constant": false, + "id": 444, + "name": "startGas", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "9819:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 443, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9819:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 447, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 445, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4484, + "src": "9838:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9838:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9819:28:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 450, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 430, + "src": "10009:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 451, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 432, + "src": "10013:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 452, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "10020:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 453, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 436, + "src": "10026:9:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 454, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4484, + "src": "10037:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10037:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 449, + "name": "execute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 854, + "src": "10001:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" + } + }, + "id": 456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10001:46:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 448, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4494, + 4495 + ], + "referencedDeclaration": 4494, + "src": "9993:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9993:55:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 458, + "nodeType": "ExpressionStatement", + "src": "9993:55:0" + }, + { + "assignments": [ + 460 + ], + "declarations": [ + { + "constant": false, + "id": 460, + "name": "requiredGas", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "10058:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 459, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10058:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 465, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 461, + "name": "startGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 444, + "src": "10080:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 462, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4484, + "src": "10091:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10091:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10080:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10058:42:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 470, + "name": "requiredGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 460, + "src": "10208:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 468, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4478, + "src": "10191:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10191:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10191:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10184:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": "string" + }, + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10184:37:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 466, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4496, + 4497 + ], + "referencedDeclaration": 4497, + "src": "10177:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10177:45:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 474, + "nodeType": "ExpressionStatement", + "src": "10177:45:0" + } + ] + }, + "documentation": "@dev Allows to estimate a Safe transaction. \n This method is only meant for estimation purpose, therfore two different protection mechanism against execution in a transaction have been made:\n 1.) The method can only be called from the safe itself\n 2.) The response is returned with a revert\n When estimating set `from` to the address of the safe.\n Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).", + "id": 476, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 439, + "modifierName": { + "argumentTypes": null, + "id": 438, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "9768:10:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9768:10:0" + } + ], + "name": "requiredTxGas", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 430, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "9680:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 429, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9680:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 432, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "9692:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 431, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9692:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 434, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "9707:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 433, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9707:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 436, + "name": "operation", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "9719:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + "typeName": { + "contractScope": null, + "id": 435, + "name": "Enum.Operation", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1658, + "src": "9719:14:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9679:65:0" + }, + "payable": false, + "returnParameters": { + "id": 442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 441, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "9796:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9796:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9795:9:0" + }, + "scope": 692, + "src": "9657:572:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 500, + "nodeType": "Block", + "src": "10537:138:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 482, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "10555:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 485, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 483, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "10562:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10562:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10555:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10577:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10555:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4f6e6c79206f776e6572732063616e20617070726f766520612068617368", + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10580:32:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_60f21058f4a7689ef29853b3c9c17c9bf69856a949794649bb68878f00552475", + "typeString": "literal_string \"Only owners can approve a hash\"" + }, + "value": "Only owners can approve a hash" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_60f21058f4a7689ef29853b3c9c17c9bf69856a949794649bb68878f00552475", + "typeString": "literal_string \"Only owners can approve a hash\"" + } + ], + "id": 481, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4494, + 4495 + ], + "referencedDeclaration": 4495, + "src": "10547:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10547:66:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 490, + "nodeType": "ExpressionStatement", + "src": "10547:66:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 491, + "name": "approvedHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 49, + "src": "10623:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(bytes32 => uint256))" + } + }, + "id": 495, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 492, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "10638:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10638:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10623:26:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 496, + "indexExpression": { + "argumentTypes": null, + "id": 494, + "name": "hashToApprove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "10650:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10623:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10667:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10623:45:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 499, + "nodeType": "ExpressionStatement", + "src": "10623:45:0" + } + ] + }, + "documentation": "@dev Marks a hash as approved. This can be used to validate a hash that is used by a signature.\n@param hashToApprove The hash that should be marked as approved for signatures that are verified by this contract.", + "id": 501, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approveHash", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 478, + "name": "hashToApprove", + "nodeType": "VariableDeclaration", + "scope": 501, + "src": "10494:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 477, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10494:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10493:23:0" + }, + "payable": false, + "returnParameters": { + "id": 480, + "nodeType": "ParameterList", + "parameters": [], + "src": "10537:0:0" + }, + "scope": 692, + "src": "10473:202:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 516, + "nodeType": "Block", + "src": "10911:57:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 508, + "name": "signedMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "10921:13:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 512, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 510, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 503, + "src": "10950:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 509, + "name": "getMessageHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 591, + "src": "10935:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) view returns (bytes32)" + } + }, + "id": 511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10935:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10921:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10960:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10921:40:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 515, + "nodeType": "ExpressionStatement", + "src": "10921:40:0" + } + ] + }, + "documentation": "@dev Marks a message as signed\n@param _data Arbitrary length data that should be marked as signed on the behalf of address(this)", + "id": 517, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 506, + "modifierName": { + "argumentTypes": null, + "id": 505, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "10896:10:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10896:10:0" + } + ], + "name": "signMessage", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 504, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 503, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 517, + "src": "10859:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 502, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "10859:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10858:13:0" + }, + "payable": false, + "returnParameters": { + "id": 507, + "nodeType": "ParameterList", + "parameters": [], + "src": "10911:0:0" + }, + "scope": 692, + "src": "10838:130:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 556, + "nodeType": "Block", + "src": "11408:339:0", + "statements": [ + { + "assignments": [ + 527 + ], + "declarations": [ + { + "constant": false, + "id": 527, + "name": "messageHash", + "nodeType": "VariableDeclaration", + "scope": 557, + "src": "11418:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 526, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "11418:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 531, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 529, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "11455:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 528, + "name": "getMessageHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 591, + "src": "11440:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) view returns (bytes32)" + } + }, + "id": 530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11440:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11418:43:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 532, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "11475:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11475:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11496:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11475:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 554, + "nodeType": "Block", + "src": "11571:170:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 545, + "name": "isValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "11666:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 547, + "name": "messageHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "11692:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 548, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "11705:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 549, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "11712:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11724:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 546, + "name": "checkSignatures", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "11676:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bool_$", + "typeString": "function (bytes32,bytes memory,bytes memory,bool) returns (bool)" + } + }, + "id": 551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11676:54:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11666:64:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 553, + "nodeType": "ExpressionStatement", + "src": "11666:64:0" + } + ] + }, + "id": 555, + "nodeType": "IfStatement", + "src": "11471:270:0", + "trueBody": { + "id": 544, + "nodeType": "Block", + "src": "11499:66:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 536, + "name": "isValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "11513:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 537, + "name": "signedMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "11523:13:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 539, + "indexExpression": { + "argumentTypes": null, + "id": 538, + "name": "messageHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "11537:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11523:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11553:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11523:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11513:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 543, + "nodeType": "ExpressionStatement", + "src": "11513:41:0" + } + ] + } + } + ] + }, + "documentation": "@dev Should return whether the signature provided is valid for the provided data\n@param _data Arbitrary length data signed on the behalf of address(this)\n@param _signature Signature byte array associated with _data\n@return a bool upon valid or invalid signature with corresponding _data", + "id": 557, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "isValidSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 519, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 557, + "src": "11327:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 518, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11327:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 521, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 557, + "src": "11340:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 520, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11340:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11326:31:0" + }, + "payable": false, + "returnParameters": { + "id": 525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 524, + "name": "isValid", + "nodeType": "VariableDeclaration", + "scope": 557, + "src": "11390:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 523, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11390:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11389:14:0" + }, + "scope": 692, + "src": "11301:446:0", + "stateMutability": "nonpayable", + "superFunction": 1802, + "visibility": "public" + }, + { + "body": { + "id": 590, + "nodeType": "Block", + "src": "12016:246:0", + "statements": [ + { + "assignments": [ + 565 + ], + "declarations": [ + { + "constant": false, + "id": 565, + "name": "safeMessageHash", + "nodeType": "VariableDeclaration", + "scope": 591, + "src": "12026:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 564, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12026:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 575, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 569, + "name": "SAFE_MSG_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31, + "src": "12086:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 571, + "name": "message", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "12115:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 570, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "12105:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12105:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 567, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4478, + "src": "12075:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12075:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12075:49:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 566, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "12052:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12052:82:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12026:108:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30783139", + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12196:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + }, + "value": "0x19" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + } + ], + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12191:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12191:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12208:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12203:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 584, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12203:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "id": 585, + "name": "domainSeparator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "12212:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 586, + "name": "safeMessageHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 565, + "src": "12229:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 577, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4478, + "src": "12174:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12174:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12174:71:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 576, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "12151:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12151:104:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 563, + "id": 589, + "nodeType": "Return", + "src": "12144:111:0" + } + ] + }, + "documentation": "@dev Returns hash of a message that can be signed by owners.\n @param message Message that should be hashed\n @return Message hash.", + "id": 591, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getMessageHash", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 559, + "name": "message", + "nodeType": "VariableDeclaration", + "scope": 591, + "src": "11938:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 558, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11938:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11928:29:0" + }, + "payable": false, + "returnParameters": { + "id": 563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 562, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 591, + "src": "12003:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 561, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12003:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12002:9:0" + }, + "scope": 692, + "src": "11905:357:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 649, + "nodeType": "Block", + "src": "13332:285:0", + "statements": [ + { + "assignments": [ + 617 + ], + "declarations": [ + { + "constant": false, + "id": 617, + "name": "safeTxHash", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13342:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 616, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "13342:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 636, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 621, + "name": "SAFE_TX_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "13397:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 622, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "13415:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 623, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 595, + "src": "13419:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 625, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 597, + "src": "13436:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 624, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "13426:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13426:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 627, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "13443:9:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "id": 628, + "name": "safeTxGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 601, + "src": "13454:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 629, + "name": "dataGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 603, + "src": "13465:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 630, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "13474:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 631, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "13484:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 632, + "name": "refundReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "13494:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 633, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 611, + "src": "13510:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 619, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4478, + "src": "13386:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13386:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13386:131:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 618, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "13363:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13363:164:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13342:185:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30783139", + "id": 640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13566:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + }, + "value": "0x19" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + } + ], + "id": 639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13561:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13561:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13578:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13573:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13573:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "id": 645, + "name": "domainSeparator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "13582:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 646, + "name": "safeTxHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 617, + "src": "13599:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 637, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4478, + "src": "13544:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13544:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13544:66:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 615, + "id": 648, + "nodeType": "Return", + "src": "13537:73:0" + } + ] + }, + "documentation": "@dev Returns the bytes that are hashed to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param safeTxGas Fas that should be used for the safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param _nonce Transaction nonce.\n @return Transaction hash bytes.", + "id": 650, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "encodeTransactionData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 612, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 593, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13015:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13015:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13036:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13036:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 597, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13060:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 596, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13060:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 599, + "name": "operation", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13081:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + "typeName": { + "contractScope": null, + "id": 598, + "name": "Enum.Operation", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1658, + "src": "13081:14:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 601, + "name": "safeTxGas", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13116:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13116:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 603, + "name": "dataGas", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13144:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 602, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13144:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 605, + "name": "gasPrice", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13170:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13170:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 607, + "name": "gasToken", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13197:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13197:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 609, + "name": "refundReceiver", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13223:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13223:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 611, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13255:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 610, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13255:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13005:270:0" + }, + "payable": false, + "returnParameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 614, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "13321:5:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13321:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13320:7:0" + }, + "scope": 692, + "src": "12975:642:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 690, + "nodeType": "Block", + "src": "14659:148:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 677, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 652, + "src": "14708:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 678, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 654, + "src": "14712:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 679, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 656, + "src": "14719:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 680, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 658, + "src": "14725:9:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "id": 681, + "name": "safeTxGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 660, + "src": "14736:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 682, + "name": "dataGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "14747:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 683, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 664, + "src": "14756:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 684, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 666, + "src": "14766:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 685, + "name": "refundReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 668, + "src": "14776:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 686, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 670, + "src": "14792:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 676, + "name": "encodeTransactionData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 650, + "src": "14686:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,address,uint256) view returns (bytes memory)" + } + }, + "id": 687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14686:113:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 675, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "14676:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14676:124:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 674, + "id": 689, + "nodeType": "Return", + "src": "14669:131:0" + } + ] + }, + "documentation": "@dev Returns hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param safeTxGas Fas that should be used for the safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param _nonce Transaction nonce.\n @return Transaction hash.", + "id": 691, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTransactionHash", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 652, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14340:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 651, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14340:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 654, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14361:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14361:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 656, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14385:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 655, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14385:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 658, + "name": "operation", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14406:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + }, + "typeName": { + "contractScope": null, + "id": 657, + "name": "Enum.Operation", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1658, + "src": "14406:14:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$1658", + "typeString": "enum Enum.Operation" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 660, + "name": "safeTxGas", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14441:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 659, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14441:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 662, + "name": "dataGas", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14469:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 661, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14469:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 664, + "name": "gasPrice", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14495:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14495:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 666, + "name": "gasToken", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14522:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 665, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14522:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 668, + "name": "refundReceiver", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14548:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 667, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14548:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 670, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14580:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14580:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14330:270:0" + }, + "payable": false, + "returnParameters": { + "id": 674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 673, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 691, + "src": "14646:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 672, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14646:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14645:9:0" + }, + "scope": 692, + "src": "14303:504:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" } ], - "scope": 209, - "src": "322:1070:4" + "scope": 693, + "src": "534:14275:0" } ], - "src": "0:1393:4" + "src": "0:14810:0" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, - "networks": {}, + "networks": { + "4": { + "events": {}, + "links": {}, + "address": "0x09e82d4822868336b6d090b561aa351af048e81e", + "transactionHash": "0x87d620a1fa266e9fe6df69713c8b965e7046c85c5bf75df702ede803ee3e6709" + } + }, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.084Z" + "updatedAt": "2018-09-26T08:56:03.760Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/GnosisSafePersonalEdition.json b/safe-contracts/build/contracts/GnosisSafePersonalEdition.json deleted file mode 100644 index cef0a73a..00000000 --- a/safe-contracts/build/contracts/GnosisSafePersonalEdition.json +++ /dev/null @@ -1,9551 +0,0 @@ -{ - "contractName": "GnosisSafePersonalEdition", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "addOwnerWithThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_owners", - "type": "address[]" - }, - { - "name": "_threshold", - "type": "uint256" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "setup", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "DOMAIN_SEPERATOR_TYPEHASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - } - ], - "name": "execTransactionFromModule", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "module", - "type": "address" - } - ], - "name": "enableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "changeThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_masterCopy", - "type": "address" - } - ], - "name": "changeMasterCopy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SENTINEL_MODULES", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SENTINEL_OWNERS", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getOwners", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "NAME", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "nonce", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getModules", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "domainSeperator", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SAFE_TX_TYPEHASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevModule", - "type": "address" - }, - { - "name": "module", - "type": "address" - } - ], - "name": "disableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "oldOwner", - "type": "address" - }, - { - "name": "newOwner", - "type": "address" - } - ], - "name": "swapOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getThreshold", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "removeOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "txHash", - "type": "bytes32" - } - ], - "name": "ExecutionFailed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "newContract", - "type": "address" - } - ], - "name": "ContractCreation", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - }, - { - "name": "safeTxGas", - "type": "uint256" - }, - { - "name": "dataGas", - "type": "uint256" - }, - { - "name": "gasPrice", - "type": "uint256" - }, - { - "name": "gasToken", - "type": "address" - }, - { - "name": "signatures", - "type": "bytes" - } - ], - "name": "execTransactionAndPaySubmitter", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - } - ], - "name": "requiredTxGas", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - }, - { - "name": "safeTxGas", - "type": "uint256" - }, - { - "name": "dataGas", - "type": "uint256" - }, - { - "name": "gasPrice", - "type": "uint256" - }, - { - "name": "gasToken", - "type": "address" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "getTransactionHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506143ab806100206000396000f30060806040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806309529334146101405780630d582f131461027c5780630ec78d9e146102c95780631da5187f1461039f5780632f54bf6e146103d2578063468721a71461042d578063610b5925146104e5578063694e80c3146105285780637de7edef1461055557806385e332cd146105985780638cff6355146105ef578063a0e67e2b14610646578063a3f4df7e146106b2578063affed0e014610742578063b2494df31461076d578063ba08ea24146107d9578063c4ca3a9c146108dd578063cb73ac5614610991578063ccafc387146109c4578063e009cfde146109f7578063e318b52b14610a5a578063e75235b814610add578063f8dc5dd914610b08578063ffa1ad7414610b75575b005b34801561014c57600080fd5b50610262600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c05565b604051808215151515815260200191505060405180910390f35b34801561028857600080fd5b506102c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f0b565b005b3480156102d557600080fd5b5061039d6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611311565b005b3480156103ab57600080fd5b506103b4611497565b60405180826000191660001916815260200191505060405180910390f35b3480156103de57600080fd5b50610413600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114be565b604051808215151515815260200191505060405180910390f35b34801561043957600080fd5b506104cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611540565b604051808215151515815260200191505060405180910390f35b3480156104f157600080fd5b50610526600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061166c565b005b34801561053457600080fd5b5061055360048036038101908080359060200190929190505050611a4a565b005b34801561056157600080fd5b50610596600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c5c565b005b3480156105a457600080fd5b506105ad611e1d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105fb57600080fd5b50610604611e22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561065257600080fd5b5061065b611e27565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561069e578082015181840152602081019050610683565b505050509050019250505060405180910390f35b3480156106be57600080fd5b506106c7611fc2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107075780820151818401526020810190506106ec565b50505050905090810190601f1680156107345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561074e57600080fd5b50610757611ffb565b6040518082815260200191505060405180910390f35b34801561077957600080fd5b50610782612001565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107c55780820151818401526020810190506107aa565b505050509050019250505060405180910390f35b3480156107e557600080fd5b506108bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506122a8565b60405180826000191660001916815260200191505060405180910390f35b3480156108e957600080fd5b5061097b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506125fc565b6040518082815260200191505060405180910390f35b34801561099d57600080fd5b506109a66127ab565b60405180826000191660001916815260200191505060405180910390f35b3480156109d057600080fd5b506109d96127b1565b60405180826000191660001916815260200191505060405180910390f35b348015610a0357600080fd5b50610a58600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127d8565b005b348015610a6657600080fd5b50610adb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bf1565b005b348015610ae957600080fd5b50610af261323e565b6040518082815260200191505060405180910390f35b348015610b1457600080fd5b50610b73600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613248565b005b348015610b8157600080fd5b50610b8a61372d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bca578082015181840152602081019050610baf565b50505050905090810190601f168015610bf75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008060008060005a9350610c238e8e8e8e8e8e8e8e6006546122a8565b9250610c2f8387613766565b600660008154809291906001019190505550895a10151515610cdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f7420656e6f7567682067617320746f20657865637574652073616665207481526020017f72616e73616374696f6e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610cec8e8e8e8e8e613958565b9450841515610d35577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c8360405180826000191660001916815260200191505060405180910390a15b6000881115610efa57885a85030191508782029050600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610e53573273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610e4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f73747320776974682065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610ef9565b610e5e873283613a55565b1515610ef8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f737473207769746820746f6b81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b5b505050509998505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fd4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156110285750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561109c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060045414151561130d5761130c81611a4a565b5b5050565b600060010260055460001916141515611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570657261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156114465780518252602082019150602081019050602083039250611421565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600581600019169055506114878484613b6e565b611491828261402e565b50505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611655576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611662858585855a613958565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156117895750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156117fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156118ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515611bb3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611c52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611dda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b600181565b606080600080600354604051908082528060200260200182016040528015611e5e5781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611fb957808383815181101515611f0e57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611ec9565b82935050505090565b6040805190810160405280601c81526020017f476e6f736973205361666520506572736f6e616c2045646974696f6e0000000081525081565b60065481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561211557600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612070565b826040519080825280602002602001820160405280156121445781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561229f578181848151811015156121f457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506121af565b80935050505090565b6000807f068c3b33cc9bff6dde08209527b62abfb1d4ed576706e2078229623d72374b5b6001028b8b8b6040518082805190602001908083835b60208310151561230757805182526020820191506020810190506020830392506122e2565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208b8b8b8b8b8b604051602001808b600019166000191681526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200189815260200188600019166000191681526020018760028111156123a157fe5b60ff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515612443578051825260208201915060208101905060208303925061241e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f0100000000000000000000000000000000000000000000000000000000000000026005548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101836000191660001916815260200182600019166000191681526020019450505050506040516020818303038152906040526040518082805190602001908083835b6020831015156125bf578051825260208201915060208101905060208303925061259a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150509998505050505050505050565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b5a91506126da878787875a613958565b15156126e557600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612770578082015181840152602081019050612755565b50505050905090810190601f16801561279d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60055481565b7f068c3b33cc9bff6dde08209527b62abfb1d4ed576706e2078229623d72374b5b60010281565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156128f55750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612a91576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612cba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015612d0e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612d82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612e6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612ec35750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612f37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561305f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160035403101515156133b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156134085750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561347c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156135a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060036000815480929190600190039190505550806004541415156137285761372781611a4a565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000809250600090505b60045481101561395157613788858583614265565b91506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515613878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16111515613941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8192508080600101915050613773565b5050505050565b6000806000600281111561396857fe5b84600281111561397457fe5b141561398d576139868787878661430e565b9150613a4b565b6001600281111561399a57fe5b8460028111156139a657fe5b14156139be576139b7878685614327565b9150613a4a565b6139c78561433e565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d60008114613b515760208114613b595760009450613b63565b829450613b63565b8151158315171594505b505050509392505050565b600080600080600454141515613bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515613c8b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515613d2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015613f99578482815181101515613d4a57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015613daa5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515613e1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613f0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050613d33565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515614261576141ec82825a614327565b1515614260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b6000806000806142758686614350565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af11580156142f8573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a7230582040c23eb354c6e039adf686e07858990911a1161d0f33b96fb6d506107fd2b5e30029", - "deployedBytecode": "0x60806040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806309529334146101405780630d582f131461027c5780630ec78d9e146102c95780631da5187f1461039f5780632f54bf6e146103d2578063468721a71461042d578063610b5925146104e5578063694e80c3146105285780637de7edef1461055557806385e332cd146105985780638cff6355146105ef578063a0e67e2b14610646578063a3f4df7e146106b2578063affed0e014610742578063b2494df31461076d578063ba08ea24146107d9578063c4ca3a9c146108dd578063cb73ac5614610991578063ccafc387146109c4578063e009cfde146109f7578063e318b52b14610a5a578063e75235b814610add578063f8dc5dd914610b08578063ffa1ad7414610b75575b005b34801561014c57600080fd5b50610262600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c05565b604051808215151515815260200191505060405180910390f35b34801561028857600080fd5b506102c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f0b565b005b3480156102d557600080fd5b5061039d6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611311565b005b3480156103ab57600080fd5b506103b4611497565b60405180826000191660001916815260200191505060405180910390f35b3480156103de57600080fd5b50610413600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114be565b604051808215151515815260200191505060405180910390f35b34801561043957600080fd5b506104cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611540565b604051808215151515815260200191505060405180910390f35b3480156104f157600080fd5b50610526600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061166c565b005b34801561053457600080fd5b5061055360048036038101908080359060200190929190505050611a4a565b005b34801561056157600080fd5b50610596600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c5c565b005b3480156105a457600080fd5b506105ad611e1d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105fb57600080fd5b50610604611e22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561065257600080fd5b5061065b611e27565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561069e578082015181840152602081019050610683565b505050509050019250505060405180910390f35b3480156106be57600080fd5b506106c7611fc2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107075780820151818401526020810190506106ec565b50505050905090810190601f1680156107345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561074e57600080fd5b50610757611ffb565b6040518082815260200191505060405180910390f35b34801561077957600080fd5b50610782612001565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107c55780820151818401526020810190506107aa565b505050509050019250505060405180910390f35b3480156107e557600080fd5b506108bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506122a8565b60405180826000191660001916815260200191505060405180910390f35b3480156108e957600080fd5b5061097b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506125fc565b6040518082815260200191505060405180910390f35b34801561099d57600080fd5b506109a66127ab565b60405180826000191660001916815260200191505060405180910390f35b3480156109d057600080fd5b506109d96127b1565b60405180826000191660001916815260200191505060405180910390f35b348015610a0357600080fd5b50610a58600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127d8565b005b348015610a6657600080fd5b50610adb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bf1565b005b348015610ae957600080fd5b50610af261323e565b6040518082815260200191505060405180910390f35b348015610b1457600080fd5b50610b73600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613248565b005b348015610b8157600080fd5b50610b8a61372d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bca578082015181840152602081019050610baf565b50505050905090810190601f168015610bf75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008060008060005a9350610c238e8e8e8e8e8e8e8e6006546122a8565b9250610c2f8387613766565b600660008154809291906001019190505550895a10151515610cdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f7420656e6f7567682067617320746f20657865637574652073616665207481526020017f72616e73616374696f6e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610cec8e8e8e8e8e613958565b9450841515610d35577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c8360405180826000191660001916815260200191505060405180910390a15b6000881115610efa57885a85030191508782029050600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610e53573273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610e4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f73747320776974682065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610ef9565b610e5e873283613a55565b1515610ef8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f737473207769746820746f6b81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b5b505050509998505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fd4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156110285750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561109c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060045414151561130d5761130c81611a4a565b5b5050565b600060010260055460001916141515611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570657261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156114465780518252602082019150602081019050602083039250611421565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600581600019169055506114878484613b6e565b611491828261402e565b50505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611655576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611662858585855a613958565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156117895750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156117fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156118ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515611bb3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611c52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611dda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b600181565b606080600080600354604051908082528060200260200182016040528015611e5e5781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611fb957808383815181101515611f0e57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611ec9565b82935050505090565b6040805190810160405280601c81526020017f476e6f736973205361666520506572736f6e616c2045646974696f6e0000000081525081565b60065481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561211557600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612070565b826040519080825280602002602001820160405280156121445781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561229f578181848151811015156121f457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506121af565b80935050505090565b6000807f068c3b33cc9bff6dde08209527b62abfb1d4ed576706e2078229623d72374b5b6001028b8b8b6040518082805190602001908083835b60208310151561230757805182526020820191506020810190506020830392506122e2565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208b8b8b8b8b8b604051602001808b600019166000191681526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200189815260200188600019166000191681526020018760028111156123a157fe5b60ff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515612443578051825260208201915060208101905060208303925061241e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f0100000000000000000000000000000000000000000000000000000000000000026005548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101836000191660001916815260200182600019166000191681526020019450505050506040516020818303038152906040526040518082805190602001908083835b6020831015156125bf578051825260208201915060208101905060208303925061259a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150509998505050505050505050565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b5a91506126da878787875a613958565b15156126e557600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612770578082015181840152602081019050612755565b50505050905090810190601f16801561279d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60055481565b7f068c3b33cc9bff6dde08209527b62abfb1d4ed576706e2078229623d72374b5b60010281565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156128f55750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612a91576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612cba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015612d0e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612d82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612e6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612ec35750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612f37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561305f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160035403101515156133b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156134085750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561347c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156135a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060036000815480929190600190039190505550806004541415156137285761372781611a4a565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000809250600090505b60045481101561395157613788858583614265565b91506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515613878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16111515613941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8192508080600101915050613773565b5050505050565b6000806000600281111561396857fe5b84600281111561397457fe5b141561398d576139868787878661430e565b9150613a4b565b6001600281111561399a57fe5b8460028111156139a657fe5b14156139be576139b7878685614327565b9150613a4a565b6139c78561433e565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d60008114613b515760208114613b595760009450613b63565b829450613b63565b8151158315171594505b505050509392505050565b600080600080600454141515613bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515613c8b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515613d2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015613f99578482815181101515613d4a57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015613daa5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515613e1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613f0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050613d33565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515614261576141ec82825a614327565b1515614260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b6000806000806142758686614350565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af11580156142f8573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a7230582040c23eb354c6e039adf686e07858990911a1161d0f33b96fb6d506107fd2b5e30029", - "sourceMap": "483:6332:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;483:6332:5;;;;;;;", - "deployedSourceMap": "483:6332:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1980:1545;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1980:1545:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2093:595:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;933:457:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;933:457:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;458:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;458:118:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5613:129:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5613:129:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2712:429:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2712:429:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:459:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;5087:399:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5087:399:11;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:55:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:10;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5824:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5824:458:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5824:458:11;;;;;;;;;;;;;;;;;593:60:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;593:60:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;593:60:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1057:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1057:20:5;;;;;;;;;;;;;;;;;;;;;;;3220:738:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3220:738:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3220:738:10;;;;;;;;;;;;;;;;;6187:626:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6187:626:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4452:523;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4452:523:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;583:30:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;583:30:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;893:109:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;893:109:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1902:474:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1902:474:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4147:751:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4147:751:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:115:11;;;;;;;;;;;;;;;;;;;;;;;3030:783;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3030:783:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;659:40:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;659:40:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;659:40:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1980:1545;2289:12;2317:16;2355:14;2983:16;3048:14;2336:9;2317:28;;2372:93;2391:2;2395:5;2402:4;2408:9;2419;2430:7;2439:8;2449;2459:5;;2372:18;:93::i;:::-;2355:110;;2475:29;2485:6;2493:10;2475:9;:29::i;:::-;2565:5;;:7;;;;;;;;;;;;;2603:9;2590;:22;;2582:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2679:46;2687:2;2691:5;2698:4;2704:9;2715;2679:7;:46::i;:::-;2669:56;;2740:7;2739:8;2735:67;;;2768:23;2784:6;2768:23;;;;;;;;;;;;;;;;;;;;;;;;2735:67;2966:1;2955:8;:12;2951:566;;;3027:7;3014:9;3003:8;:20;3002:32;2983:51;;3076:8;3065;:19;3048:36;;3122:1;3102:22;;:8;:22;;;3098:409;;;3236:9;:14;;:22;3251:6;3236:22;;;;;;;;;;;;;;;;;;;;;;;3228:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3098:409;;;3411:42;3425:8;3435:9;3446:6;3411:13;:42::i;:::-;3403:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3098:409;2951:566;1980:1545;;;;;;;;;;;;;;;:::o;2093:595:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:1:11;2256:5;:10;;;;:38;;;;;337:3;2270:24;;:5;:24;;;;2256:38;2248:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:1;2387:6;:13;2394:5;2387:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2379:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2463:6;:23;337:3;2463:23;;;;;;;;;;;;;;;;;;;;;;;;;2447:6;:13;2454:5;2447:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2522:5;2496:6;:23;337:3;2496:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2537:10;;:12;;;;;;;;;;;;;2630:10;2617:9;;:23;;2613:68;;;2654:27;2670:10;2654:15;:27::i;:::-;2613:68;2093:595;;:::o;933:457:4:-;1067:1;1048:20;;:15;;:20;;;;1040:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;510:66;1151:25;;1178:4;1140:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1140:43:4;;;1130:54;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1130:54:4;;;;;;;;;;;;;;;;1112:15;:72;;;;;;;1194:32;1206:7;1215:10;1194:11;:32::i;:::-;1361:22;1374:2;1378:4;1361:12;:22::i;:::-;933:457;;;;:::o;458:118::-;510:66;458:118;;;:::o;5613:129:11:-;5690:4;5734:1;5717:6;:13;5724:5;5717:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5710:25;;5613:129;;;:::o;2712:429:10:-;2844:12;2952:1;2929:7;:19;2937:10;2929:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2921:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3088:46;3096:2;3100:5;3107:4;3113:9;3124;3088:7;:46::i;:::-;3078:56;;2712:429;;;;;;:::o;1182:459::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:10;1337:6;1329:20;;;;:59;;;;;539:3;1353:35;;1361:6;1353:35;;;;1329:59;1321:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:1;1483:7;:15;1491:6;1483:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1475:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1565:7;:25;539:3;1565:25;;;;;;;;;;;;;;;;;;;;;;;;;1547:7;:15;1555:6;1547:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1628:6;1600:7;:25;539:3;1600:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1182:459;:::o;5087:399:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5271:10:11;;5257;:24;;5249:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5405:1;5391:10;:15;;5383:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:10;5457:9;:22;;;;5087:399;:::o;626:248:7:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:7;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;488:55:10:-;539:3;488:55;:::o;287:54:11:-;337:3;287:54;:::o;5824:458::-;5890:9;5915:22;6009:13;6036:20;5954:10;;5940:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5940:25:11;;;;5915:50;;6025:1;6009:17;;6059:6;:23;337:3;6059:23;;;;;;;;;;;;;;;;;;;;;;;;;6036:46;;6092:162;337:3;6098:31;;:12;:31;;;;6092:162;;;6160:12;6145:5;6151;6145:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6201:6;:20;6208:12;6201:20;;;;;;;;;;;;;;;;;;;;;;;;;6186:35;;6235:8;;;;;;;6092:162;;;6270:5;6263:12;;5824:458;;;;:::o;593:60:5:-;;;;;;;;;;;;;;;;;;;;:::o;1057:20::-;;;;:::o;3220:738:10:-;3287:9;3346:19;3379:21;3579:22;3368:1;3346:23;;3403:7;:25;539:3;3403:25;;;;;;;;;;;;;;;;;;;;;;;;;3379:49;;3438:132;539:3;3444:33;;:13;:33;;;;3438:132;;;3509:7;:22;3517:13;3509:22;;;;;;;;;;;;;;;;;;;;;;;;;3493:38;;3545:14;;;;;;;3438:132;;;3618:11;3604:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3604:26:10;;;;3579:51;;3688:1;3674:15;;3715:7;:25;539:3;3715:25;;;;;;;;;;;;;;;;;;;;;;;;;3699:41;;3750:180;539:3;3756:33;;:13;:33;;;;3750:180;;;3826:13;3805:5;3811:11;3805:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3869:7;:22;3877:13;3869:22;;;;;;;;;;;;;;;;;;;;;;;;;3853:38;;3905:14;;;;;;;3750:180;;;3946:5;3939:12;;3220:738;;;;:::o;6187:626:5:-;6498:7;6521:18;936:66;6576:16;;6594:2;6598:5;6615:4;6605:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6605:15:5;;;;;;;;;;;;;;;;6622:9;6633;6644:7;6653:8;6663;6673:6;6565:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6565:115:5;;;6542:148;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6542:148:5;;;;;;;;;;;;;;;;6521:169;;6752:4;6747:10;;6764:1;6759:7;;6768:15;;6785:10;6730:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6730:66:5;;;6707:99;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6707:99:5;;;;;;;;;;;;;;;;6700:106;;6187:626;;;;;;;;;;;;:::o;4452:523::-;4591:7;4614:16;4804:19;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4633:9:5;4614:28;;4747:46;4755:2;4759:5;4766:4;4772:9;4783;4747:7;:46::i;:::-;4739:55;;;;;;;;4837:9;4826:8;:20;4804:42;;4954:11;4937:29;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4937:29:5;;;4923:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4923:45:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;583:30:4;;;;:::o;893:109:5:-;936:66;893:109;;;:::o;1902:474:10:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2116:1:10;2105:6;2097:20;;;;:59;;;;;539:3;2121:35;;2129:6;2121:35;;;;2097:59;2089:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:6;2210:38;;:7;:19;2218:10;2210:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2202:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2325:7;:15;2333:6;2325:15;;;;;;;;;;;;;;;;;;;;;;;;;2303:7;:19;2311:10;2303:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2368:1;2350:7;:15;2358:6;2350:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1902:474;;:::o;4147:751:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:1:11;4318:8;:13;;;;:44;;;;;337:3;4335:27;;:8;:27;;;;4318:44;4310:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4475:1;4455:6;:16;4462:8;4455:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4447:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4621:1;4609:8;:13;;;;:44;;;;;337:3;4626:27;;:8;:27;;;;4609:44;4601:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:8;4706:29;;:6;:17;4713:9;4706:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4698:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4807:6;:16;4814:8;4807:16;;;;;;;;;;;;;;;;;;;;;;;;;4788:6;:16;4795:8;4788:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4853:8;4833:6;:17;4840:9;4833:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4890:1;4871:6;:16;4878:8;4871:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4147:751;;;:::o;5492:115::-;5561:7;5591:9;;5584:16;;5492:115;:::o;3030:783::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3256:10:11;3251:1;3238:10;;:14;:28;;3230:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3431:1;3422:5;:10;;;;:38;;;;;337:3;3436:24;;:5;:24;;;;3422:38;3414:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3534:5;3513:26;;:6;:17;3520:9;3513:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3505:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:6;:13;3619:5;3612:13;;;;;;;;;;;;;;;;;;;;;;;;;3592:6;:17;3599:9;3592:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3651:1;3635:6;:13;3642:5;3635:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3662:10;;:12;;;;;;;;;;;;;;3755:10;3742:9;;:23;;3738:68;;;3779:27;3795:10;3779:15;:27::i;:::-;3738:68;3030:783;;;:::o;659:40:5:-;;;;;;;;;;;;;;;;;;;;:::o;4981:606::-;5130:17;5170:20;5200:9;5158:1;5130:30;;5270:1;5266:5;;5261:320;5277:9;;5273:1;:13;5261:320;;;5322:33;5333:6;5341:10;5353:1;5322:10;:33::i;:::-;5307:48;;5401:1;5377:6;:20;5384:12;5377:20;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;5369:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5475:9;5460:24;;:12;:24;;;5452:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5558:12;5546:24;;5288:3;;;;;;;5261:320;;;4981:606;;;;;:::o;390:548:3:-;521:12;792:19;566;553:32;;;;;;;;:9;:32;;;;;;;;;549:383;;;609:35;621:2;625:5;632:4;638:5;609:11;:35::i;:::-;599:45;;549:383;;;676:27;663:40;;;;;;;;:9;:40;;;;;;;;;659:273;;;727:36;747:2;751:4;757:5;727:19;:36::i;:::-;717:46;;659:273;;;814:19;828:4;814:13;:19::i;:::-;792:41;;872:1;857:11;:16;;;;847:26;;892:29;909:11;892:29;;;;;;;;;;;;;;;;;;;;;;659:273;549:383;390:548;;;;;;;;:::o;430:752:15:-;568:16;600:17;673:8;683:6;620:70;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;620:70:15;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;620:70:15;600:90;;867:1;864;857:4;851:11;844:4;838;834:15;831:1;824:5;816;811:3;807:15;802:67;899:4;893:11;940:14;937:1;932:3;917:38;975:14;1008:1;1003:33;;;;1054:4;1049:76;;;;1163:1;1148:16;;968:198;;1003:33;1027:7;1012:22;;1003:33;;1049:76;1116:3;1110:10;1103:18;1093:7;1086:15;1083:39;1076:47;1061:62;;968:198;;773:403;;;;;;;;:::o;643:1210:11:-;1249:20;1302:9;1401:13;879:1;866:9;;:14;858:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1022:7;:14;1008:10;:28;;1000:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:1;1146:10;:15;;1138:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:3;1249:38;;1314:1;1302:13;;1297:433;1321:7;:14;1317:1;:18;1297:433;;;1417:7;1425:1;1417:10;;;;;;;;;;;;;;;;;;1401:26;;1458:1;1449:5;:10;;;;:38;;;;;337:3;1463:24;;:5;:24;;;;1449:38;1441:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1605:1;1588:6;:13;1595:5;1588:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1580:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1680:5;1657:6;:20;1664:12;1657:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1714:5;1699:20;;1337:3;;;;;;;1297:433;;;337:3;1739:6;:20;1746:12;1739:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1800:7;:14;1787:10;:27;;;;1836:10;1824:9;:22;;;;643:1210;;;;;:::o;606:409:10:-;720:1;691:7;:25;539:3;691:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;683:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;539:3;773:7;:25;539:3;773:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;837:1;831:2;:7;;;;827:181;;;932:40;952:2;956:4;962:9;932:19;:40::i;:::-;924:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:181;606:409;;:::o;477:330:17:-;629:7;653;670:9;689;720:37;735:16;753:3;720:14;:37::i;:::-;708:49;;;;;;;;;;;;774:26;784:6;792:1;795;798;774:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;774:26:17;;;;;;;;767:33;;477:330;;;;;;;;:::o;944:309:3:-;1053:12;1235:1;1232;1225:4;1219:11;1212:4;1206;1202:15;1195:5;1191:2;1184:5;1179:58;1168:69;;1154:93;;;;;;:::o;1259:303::-;1361:12;1544:1;1541;1534:4;1528:11;1521:4;1515;1511:15;1507:2;1500:5;1487:59;1476:70;;1462:94;;;;;:::o;1568:261::-;1637:19;1807:4;1801:11;1794:4;1788;1784:15;1781:1;1774:39;1759:54;;1745:78;;;:::o;984:914:17:-;1086:7;1095:9;1106;1406:3;1400:4;1396:14;1468:4;1454:12;1450:23;1438:10;1434:40;1428:47;1423:52;;1533:4;1519:12;1515:23;1503:10;1499:40;1493:47;1488:52;;1877:4;1868;1854:12;1850:23;1838:10;1834:40;1828:47;1824:58;1819:63;;1362:530;;;;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./GnosisSafe.sol\";\nimport \"./MasterCopy.sol\";\nimport \"./SignatureValidator.sol\";\nimport \"./SecuredTokenTransfer.sol\";\n\n\n/// @title Gnosis Safe Personal Edition - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n/// @author Stefan George - \n/// @author Richard Meissner - \n/// @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment\ncontract GnosisSafePersonalEdition is MasterCopy, GnosisSafe, SignatureValidator, SecuredTokenTransfer {\n\n string public constant NAME = \"Gnosis Safe Personal Edition\";\n string public constant VERSION = \"0.0.1\";\n //keccak256(\n // \"PersonalSafeTx(address to,uint256 value,bytes data,uint8 operation,uint256 safeTxGas,uint256 dataGas,uint256 gasPrice,address gasToken,uint256 nonce)\"\n //);\n bytes32 public constant SAFE_TX_TYPEHASH = 0x068c3b33cc9bff6dde08209527b62abfb1d4ed576706e2078229623d72374b5b;\n \n event ExecutionFailed(bytes32 txHash);\n\n uint256 public nonce;\n\n /// @dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n /// Note: The fees are always transfered, even if the user transaction fails. \n /// @param to Destination address of Safe transaction.\n /// @param value Ether value of Safe transaction.\n /// @param data Data payload of Safe transaction.\n /// @param operation Operation type of Safe transaction.\n /// @param safeTxGas Gas that should be used for the Safe transaction.\n /// @param dataGas Gas costs for data used to trigger the safe transaction and to pay the payment transfer\n /// @param gasPrice Gas price that should be used for the payment calculation.\n /// @param gasToken Token address (or 0 if ETH) that is used for the payment.\n /// @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})\n function execTransactionAndPaySubmitter(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 safeTxGas,\n uint256 dataGas,\n uint256 gasPrice,\n address gasToken,\n bytes signatures\n )\n public\n returns (bool success)\n {\n uint256 startGas = gasleft();\n bytes32 txHash = getTransactionHash(to, value, data, operation, safeTxGas, dataGas, gasPrice, gasToken, nonce);\n checkHash(txHash, signatures);\n // Increase nonce and execute transaction.\n nonce++;\n require(gasleft() >= safeTxGas, \"Not enough gas to execute safe transaction\");\n success = execute(to, value, data, operation, safeTxGas);\n if (!success) {\n emit ExecutionFailed(txHash);\n }\n \n // We transfer the calculated tx costs to the tx.origin to avoid sending it to intermediate contracts that have made calls\n if (gasPrice > 0) {\n uint256 gasCosts = (startGas - gasleft()) + dataGas;\n uint256 amount = gasCosts * gasPrice;\n if (gasToken == address(0)) {\n // solium-disable-next-line security/no-tx-origin,security/no-send\n require(tx.origin.send(amount), \"Could not pay gas costs with ether\");\n } else {\n // solium-disable-next-line security/no-tx-origin\n require(transferToken(gasToken, tx.origin, amount), \"Could not pay gas costs with token\");\n }\n } \n }\n\n /// @dev Allows to estimate a Safe transaction. \n /// This method is only meant for estimation purpose, therfore two different protection mechanism against execution in a transaction have been made:\n /// 1.) The method can only be called from the safe itself\n /// 2.) The response is returned with a revert\n /// When estimating set `from` to the address of the safe.\n /// Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransactionAndPaySubmitter`\n /// @param to Destination address of Safe transaction.\n /// @param value Ether value of Safe transaction.\n /// @param data Data payload of Safe transaction.\n /// @param operation Operation type of Safe transaction.\n /// @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).\n function requiredTxGas(address to, uint256 value, bytes data, Enum.Operation operation)\n public\n authorized\n returns (uint256)\n {\n uint256 startGas = gasleft();\n // We don't provide an error message here, as we use it to return the estimate\n require(execute(to, value, data, operation, gasleft()));\n uint256 requiredGas = startGas - gasleft();\n // Convert response to string and return via error message\n revert(string(abi.encodePacked(requiredGas)));\n }\n\n function checkHash(bytes32 txHash, bytes signatures)\n internal\n view\n {\n // There cannot be an owner with address 0.\n address lastOwner = address(0);\n address currentOwner;\n uint256 i;\n // Validate threshold is reached.\n for (i = 0; i < threshold; i++) {\n currentOwner = recoverKey(txHash, signatures, i);\n require(owners[currentOwner] != 0, \"Signature not provided by owner\");\n require(currentOwner > lastOwner, \"Signatures are not ordered by owner address\");\n lastOwner = currentOwner;\n }\n }\n\n /// @dev Returns hash to be signed by owners.\n /// @param to Destination address.\n /// @param value Ether value.\n /// @param data Data payload.\n /// @param operation Operation type.\n /// @param safeTxGas Fas that should be used for the safe transaction.\n /// @param dataGas Gas costs for data used to trigger the safe transaction.\n /// @param gasPrice Maximum gas price that should be used for this transaction.\n /// @param gasToken Token address (or 0 if ETH) that is used for the payment.\n /// @param _nonce Transaction nonce.\n /// @return Transaction hash.\n function getTransactionHash(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 safeTxGas, \n uint256 dataGas, \n uint256 gasPrice, \n address gasToken,\n uint256 _nonce\n )\n public\n view\n returns (bytes32)\n {\n bytes32 safeTxHash = keccak256(\n abi.encode(SAFE_TX_TYPEHASH, to, value, keccak256(data), operation, safeTxGas, dataGas, gasPrice, gasToken, _nonce)\n );\n return keccak256(\n abi.encodePacked(byte(0x19), byte(1), domainSeperator, safeTxHash)\n );\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafePersonalEdition.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafePersonalEdition.sol", - "exportedSymbols": { - "GnosisSafePersonalEdition": [ - 529 - ] - }, - "id": 530, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 210, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:5" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", - "file": "./GnosisSafe.sol", - "id": 211, - "nodeType": "ImportDirective", - "scope": 530, - "sourceUnit": 209, - "src": "24:26:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", - "file": "./MasterCopy.sol", - "id": 212, - "nodeType": "ImportDirective", - "scope": 530, - "sourceUnit": 814, - "src": "51:26:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", - "file": "./SignatureValidator.sol", - "id": 213, - "nodeType": "ImportDirective", - "scope": 530, - "sourceUnit": 1822, - "src": "78:34:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", - "file": "./SecuredTokenTransfer.sol", - "id": 214, - "nodeType": "ImportDirective", - "scope": 530, - "sourceUnit": 1749, - "src": "113:36:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 215, - "name": "MasterCopy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 813, - "src": "521:10:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$813", - "typeString": "contract MasterCopy" - } - }, - "id": 216, - "nodeType": "InheritanceSpecifier", - "src": "521:10:5" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 217, - "name": "GnosisSafe", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 208, - "src": "533:10:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$208", - "typeString": "contract GnosisSafe" - } - }, - "id": 218, - "nodeType": "InheritanceSpecifier", - "src": "533:10:5" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 219, - "name": "SignatureValidator", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1821, - "src": "545:18:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureValidator_$1821", - "typeString": "contract SignatureValidator" - } - }, - "id": 220, - "nodeType": "InheritanceSpecifier", - "src": "545:18:5" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 221, - "name": "SecuredTokenTransfer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1748, - "src": "565:20:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1748", - "typeString": "contract SecuredTokenTransfer" - } - }, - "id": 222, - "nodeType": "InheritanceSpecifier", - "src": "565:20:5" - } - ], - "contractDependencies": [ - 208, - 153, - 37, - 813, - 1180, - 1588, - 1748, - 1765, - 1821 - ], - "contractKind": "contract", - "documentation": "@title Gnosis Safe Personal Edition - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n @author Stefan George - \n @author Richard Meissner - \n @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment", - "fullyImplemented": true, - "id": 529, - "linearizedBaseContracts": [ - 529, - 1748, - 1821, - 208, - 1588, - 1180, - 153, - 37, - 813, - 1765 - ], - "name": "GnosisSafePersonalEdition", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 225, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "593:60:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 223, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "593:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "476e6f736973205361666520506572736f6e616c2045646974696f6e", - "id": 224, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "623:30:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b657d2895d137bf089ce1df776b732639b1ebc2a3aec3bd837e225e9e0965154", - "typeString": "literal_string \"Gnosis Safe Personal Edition\"" - }, - "value": "Gnosis Safe Personal Edition" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 228, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "659:40:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 226, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "659:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e31", - "id": 227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "692:7:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" - }, - "value": "0.0.1" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 231, - "name": "SAFE_TX_TYPEHASH", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "893:109:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 229, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "893:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307830363863336233336363396266663664646530383230393532376236326162666231643465643537363730366532303738323239363233643732333734623562", - "id": 230, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "936:66:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2961644280108194065159135409573964622771032650926095796711509007169446431579_by_1", - "typeString": "int_const 2961...(68 digits omitted)...1579" - }, - "value": "0x068c3b33cc9bff6dde08209527b62abfb1d4ed576706e2078229623d72374b5b" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 235, - "name": "ExecutionFailed", - "nodeType": "EventDefinition", - "parameters": { - "id": 234, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 233, - "indexed": false, - "name": "txHash", - "nodeType": "VariableDeclaration", - "scope": 235, - "src": "1035:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 232, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1035:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1034:16:5" - }, - "src": "1013:38:5" - }, - { - "constant": false, - "id": 237, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "1057:20:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 236, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1057:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 361, - "nodeType": "Block", - "src": "2307:1218:5", - "statements": [ - { - "assignments": [ - 261 - ], - "declarations": [ - { - "constant": false, - "id": 261, - "name": "startGas", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2317:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 260, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2317:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 264, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 262, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "2336:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2336:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2317:28:5" - }, - { - "assignments": [ - 266 - ], - "declarations": [ - { - "constant": false, - "id": 266, - "name": "txHash", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2355:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 265, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2355:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 278, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 268, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 239, - "src": "2391:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 269, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "2395:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 270, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 243, - "src": "2402:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 271, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 245, - "src": "2408:9:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 272, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 247, - "src": "2419:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 273, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 249, - "src": "2430:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 274, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "2439:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 275, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "2449:8:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 276, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 237, - "src": "2459:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 267, - "name": "getTransactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 528, - "src": "2372:18:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,uint256) view returns (bytes32)" - } - }, - "id": 277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2372:93:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2355:110:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 280, - "name": "txHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "2485:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 281, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "2493:10:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 279, - "name": "checkHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 470, - "src": "2475:9:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes32,bytes memory) view" - } - }, - "id": 282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2475:29:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 283, - "nodeType": "ExpressionStatement", - "src": "2475:29:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2565:7:5", - "subExpression": { - "argumentTypes": null, - "id": 284, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 237, - "src": "2565:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 286, - "nodeType": "ExpressionStatement", - "src": "2565:7:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 288, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "2590:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2590:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 290, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 247, - "src": "2603:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2590:22:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6f7420656e6f7567682067617320746f20657865637574652073616665207472616e73616374696f6e", - "id": 292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2614:44:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", - "typeString": "literal_string \"Not enough gas to execute safe transaction\"" - }, - "value": "Not enough gas to execute safe transaction" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", - "typeString": "literal_string \"Not enough gas to execute safe transaction\"" - } - ], - "id": 287, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "2582:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2582:77:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 294, - "nodeType": "ExpressionStatement", - "src": "2582:77:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 295, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 258, - "src": "2669:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 297, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 239, - "src": "2687:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 298, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "2691:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 299, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 243, - "src": "2698:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 300, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 245, - "src": "2704:9:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 301, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 247, - "src": "2715:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 296, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "2679:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2679:46:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2669:56:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 304, - "nodeType": "ExpressionStatement", - "src": "2669:56:5" - }, - { - "condition": { - "argumentTypes": null, - "id": 306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2739:8:5", - "subExpression": { - "argumentTypes": null, - "id": 305, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 258, - "src": "2740:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 312, - "nodeType": "IfStatement", - "src": "2735:67:5", - "trueBody": { - "id": 311, - "nodeType": "Block", - "src": "2749:53:5", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 308, - "name": "txHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "2784:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 307, - "name": "ExecutionFailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "2768:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - } - }, - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2768:23:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 310, - "nodeType": "EmitStatement", - "src": "2763:28:5" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 313, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "2955:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2966:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2955:12:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 360, - "nodeType": "IfStatement", - "src": "2951:566:5", - "trueBody": { - "id": 359, - "nodeType": "Block", - "src": "2969:548:5", - "statements": [ - { - "assignments": [ - 317 - ], - "declarations": [ - { - "constant": false, - "id": 317, - "name": "gasCosts", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2983:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2983:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 325, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 318, - "name": "startGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 261, - "src": "3003:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 319, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "3014:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3014:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3003:20:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 322, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3002:22:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 323, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 249, - "src": "3027:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3002:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2983:51:5" - }, - { - "assignments": [ - 327 - ], - "declarations": [ - { - "constant": false, - "id": 327, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "3048:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 326, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3048:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 331, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 328, - "name": "gasCosts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 317, - "src": "3065:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 329, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "3076:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3065:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3048:36:5" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 332, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "3102:8:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 334, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3122:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 333, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3114:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 335, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3114:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3102:22:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 357, - "nodeType": "Block", - "src": "3318:189:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 349, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "3425:8:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 350, - "name": "tx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3840, - "src": "3435:2:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_transaction", - "typeString": "tx" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "origin", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3435:9:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 352, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 327, - "src": "3446:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 348, - "name": "transferToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1747, - "src": "3411:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3411:42:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792067617320636f737473207769746820746f6b656e", - "id": 354, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3455:36:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", - "typeString": "literal_string \"Could not pay gas costs with token\"" - }, - "value": "Could not pay gas costs with token" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", - "typeString": "literal_string \"Could not pay gas costs with token\"" - } - ], - "id": 347, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "3403:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3403:89:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 356, - "nodeType": "ExpressionStatement", - "src": "3403:89:5" - } - ] - }, - "id": 358, - "nodeType": "IfStatement", - "src": "3098:409:5", - "trueBody": { - "id": 346, - "nodeType": "Block", - "src": "3126:186:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 341, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 327, - "src": "3251:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 338, - "name": "tx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3840, - "src": "3236:2:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_transaction", - "typeString": "tx" - } - }, - "id": 339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "origin", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3236:9:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "send", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3236:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) returns (bool)" - } - }, - "id": 342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3236:22:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792067617320636f7374732077697468206574686572", - "id": 343, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3260:36:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", - "typeString": "literal_string \"Could not pay gas costs with ether\"" - }, - "value": "Could not pay gas costs with ether" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", - "typeString": "literal_string \"Could not pay gas costs with ether\"" - } - ], - "id": 337, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "3228:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3228:69:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 345, - "nodeType": "ExpressionStatement", - "src": "3228:69:5" - } - ] - } - } - ] - } - } - ] - }, - "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n Note: The fees are always transfered, even if the user transaction fails. \n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @param safeTxGas Gas that should be used for the Safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction and to pay the payment transfer\n @param gasPrice Gas price that should be used for the payment calculation.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", - "id": 362, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "execTransactionAndPaySubmitter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 256, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 239, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2029:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 238, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2029:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 241, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2050:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2050:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 243, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2074:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 242, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2074:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 245, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2095:24:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 244, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "2095:14:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 247, - "name": "safeTxGas", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2130:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 246, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2130:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 249, - "name": "dataGas", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2157:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 248, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2157:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 251, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2182:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2182:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2208:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 252, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2208:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 255, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2234:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 254, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2234:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2019:237:5" - }, - "payable": false, - "returnParameters": { - "id": 259, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 258, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2289:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 257, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2289:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2288:14:5" - }, - "scope": 529, - "src": "1980:1545:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 409, - "nodeType": "Block", - "src": "4604:371:5", - "statements": [ - { - "assignments": [ - 378 - ], - "declarations": [ - { - "constant": false, - "id": 378, - "name": "startGas", - "nodeType": "VariableDeclaration", - "scope": 410, - "src": "4614:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4614:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 381, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 379, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "4633:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4633:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4614:28:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 384, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 364, - "src": "4755:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 385, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "4759:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 386, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "4766:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 387, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 370, - "src": "4772:9:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 388, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "4783:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4783:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 383, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "4747:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4747:46:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 382, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3831, - "src": "4739:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4739:55:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 392, - "nodeType": "ExpressionStatement", - "src": "4739:55:5" - }, - { - "assignments": [ - 394 - ], - "declarations": [ - { - "constant": false, - "id": 394, - "name": "requiredGas", - "nodeType": "VariableDeclaration", - "scope": 410, - "src": "4804:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4804:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 399, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 395, - "name": "startGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 378, - "src": "4826:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 396, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "4837:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4837:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4826:20:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4804:42:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 404, - "name": "requiredGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 394, - "src": "4954:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 402, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "4937:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 403, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4937:16:5", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4937:29:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 401, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4930:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": "string" - }, - "id": 406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4930:37:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - ], - "id": 400, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3833, - 3834 - ], - "referencedDeclaration": 3834, - "src": "4923:6:5", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4923:45:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 408, - "nodeType": "ExpressionStatement", - "src": "4923:45:5" - } - ] - }, - "documentation": "@dev Allows to estimate a Safe transaction. \n This method is only meant for estimation purpose, therfore two different protection mechanism against execution in a transaction have been made:\n 1.) The method can only be called from the safe itself\n 2.) The response is returned with a revert\n When estimating set `from` to the address of the safe.\n Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransactionAndPaySubmitter`\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).", - "id": 410, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 373, - "modifierName": { - "argumentTypes": null, - "id": 372, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "4563:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4563:10:5" - } - ], - "name": "requiredTxGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 371, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 364, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 410, - "src": "4475:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4475:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 366, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 410, - "src": "4487:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4487:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 368, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 410, - "src": "4502:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 367, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4502:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 370, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 410, - "src": "4514:24:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 369, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "4514:14:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4474:65:5" - }, - "payable": false, - "returnParameters": { - "id": 376, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 375, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 410, - "src": "4591:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 374, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4591:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4590:9:5" - }, - "scope": 529, - "src": "4452:523:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 469, - "nodeType": "Block", - "src": "5068:519:5", - "statements": [ - { - "assignments": [ - 418 - ], - "declarations": [ - { - "constant": false, - "id": 418, - "name": "lastOwner", - "nodeType": "VariableDeclaration", - "scope": 470, - "src": "5130:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5130:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 422, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 420, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5158:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 419, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5150:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 421, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5150:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5130:30:5" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 424, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 470, - "src": "5170:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 423, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5170:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 425, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "5170:20:5" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 427, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 470, - "src": "5200:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 426, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5200:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 428, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "5200:9:5" - }, - { - "body": { - "id": 467, - "nodeType": "Block", - "src": "5293:288:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 439, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "5307:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 441, - "name": "txHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "5333:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 442, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 414, - "src": "5341:10:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 443, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "5353:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 440, - "name": "recoverKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "5322:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory,uint256) pure returns (address)" - } - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5322:33:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5307:48:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 446, - "nodeType": "ExpressionStatement", - "src": "5307:48:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "5377:6:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "5384:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5377:20:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5401:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5377:25:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 453, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5404:33:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", - "typeString": "literal_string \"Signature not provided by owner\"" - }, - "value": "Signature not provided by owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", - "typeString": "literal_string \"Signature not provided by owner\"" - } - ], - "id": 447, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "5369:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5369:69:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 455, - "nodeType": "ExpressionStatement", - "src": "5369:69:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 457, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "5460:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 458, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 418, - "src": "5475:9:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5460:24:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 460, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5486:45:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", - "typeString": "literal_string \"Signatures are not ordered by owner address\"" - }, - "value": "Signatures are not ordered by owner address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", - "typeString": "literal_string \"Signatures are not ordered by owner address\"" - } - ], - "id": 456, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "5452:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5452:80:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 462, - "nodeType": "ExpressionStatement", - "src": "5452:80:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 463, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 418, - "src": "5546:9:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 464, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "5558:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5546:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 466, - "nodeType": "ExpressionStatement", - "src": "5546:24:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 433, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "5273:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 434, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "5277:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5273:13:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 468, - "initializationExpression": { - "expression": { - "argumentTypes": null, - "id": 431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 429, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "5266:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 430, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5270:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5266:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 432, - "nodeType": "ExpressionStatement", - "src": "5266:5:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5288:3:5", - "subExpression": { - "argumentTypes": null, - "id": 436, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "5288:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 438, - "nodeType": "ExpressionStatement", - "src": "5288:3:5" - }, - "nodeType": "ForStatement", - "src": "5261:320:5" - } - ] - }, - "documentation": null, - "id": 470, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "checkHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 415, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 412, - "name": "txHash", - "nodeType": "VariableDeclaration", - "scope": 470, - "src": "5000:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 411, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5000:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 414, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 470, - "src": "5016:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 413, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5016:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4999:34:5" - }, - "payable": false, - "returnParameters": { - "id": 416, - "nodeType": "ParameterList", - "parameters": [], - "src": "5068:0:5" - }, - "scope": 529, - "src": "4981:606:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 527, - "nodeType": "Block", - "src": "6511:302:5", - "statements": [ - { - "assignments": [ - 494 - ], - "declarations": [ - { - "constant": false, - "id": 494, - "name": "safeTxHash", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6521:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 493, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6521:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 512, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 498, - "name": "SAFE_TX_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 231, - "src": "6576:16:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 499, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 472, - "src": "6594:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 500, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "6598:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 502, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "6615:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 501, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "6605:9:5", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6605:15:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 504, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "6622:9:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 505, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 480, - "src": "6633:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 506, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "6644:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 507, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "6653:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 508, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 486, - "src": "6663:8:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 509, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "6673:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 496, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "6565:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6565:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6565:115:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 495, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "6542:9:5", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6542:148:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6521:169:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6752:4:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6747:4:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6747:10:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 520, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6764:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 519, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6759:4:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 521, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6759:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "domainSeperator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "6768:15:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "safeTxHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "6785:10:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 514, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "6730:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 515, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6730:16:5", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6730:66:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 513, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "6707:9:5", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6707:99:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 492, - "id": 526, - "nodeType": "Return", - "src": "6700:106:5" - } - ] - }, - "documentation": "@dev Returns hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param safeTxGas Fas that should be used for the safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param _nonce Transaction nonce.\n @return Transaction hash.", - "id": 528, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 489, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 472, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6224:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 471, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6224:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 474, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6245:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 473, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6245:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 476, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6269:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 475, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6269:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 478, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6290:24:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 477, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "6290:14:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 480, - "name": "safeTxGas", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6325:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 479, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6325:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 482, - "name": "dataGas", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6353:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 481, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6353:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6379:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6379:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 486, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6406:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 485, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6406:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 488, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6432:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 487, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6432:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6214:238:5" - }, - "payable": false, - "returnParameters": { - "id": 492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 491, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6498:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 490, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6498:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6497:9:5" - }, - "scope": 529, - "src": "6187:626:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 530, - "src": "483:6332:5" - } - ], - "src": "0:6816:5" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafePersonalEdition.sol", - "exportedSymbols": { - "GnosisSafePersonalEdition": [ - 529 - ] - }, - "id": 530, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 210, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:5" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", - "file": "./GnosisSafe.sol", - "id": 211, - "nodeType": "ImportDirective", - "scope": 530, - "sourceUnit": 209, - "src": "24:26:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", - "file": "./MasterCopy.sol", - "id": 212, - "nodeType": "ImportDirective", - "scope": 530, - "sourceUnit": 814, - "src": "51:26:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", - "file": "./SignatureValidator.sol", - "id": 213, - "nodeType": "ImportDirective", - "scope": 530, - "sourceUnit": 1822, - "src": "78:34:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", - "file": "./SecuredTokenTransfer.sol", - "id": 214, - "nodeType": "ImportDirective", - "scope": 530, - "sourceUnit": 1749, - "src": "113:36:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 215, - "name": "MasterCopy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 813, - "src": "521:10:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$813", - "typeString": "contract MasterCopy" - } - }, - "id": 216, - "nodeType": "InheritanceSpecifier", - "src": "521:10:5" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 217, - "name": "GnosisSafe", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 208, - "src": "533:10:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$208", - "typeString": "contract GnosisSafe" - } - }, - "id": 218, - "nodeType": "InheritanceSpecifier", - "src": "533:10:5" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 219, - "name": "SignatureValidator", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1821, - "src": "545:18:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureValidator_$1821", - "typeString": "contract SignatureValidator" - } - }, - "id": 220, - "nodeType": "InheritanceSpecifier", - "src": "545:18:5" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 221, - "name": "SecuredTokenTransfer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1748, - "src": "565:20:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1748", - "typeString": "contract SecuredTokenTransfer" - } - }, - "id": 222, - "nodeType": "InheritanceSpecifier", - "src": "565:20:5" - } - ], - "contractDependencies": [ - 208, - 153, - 37, - 813, - 1180, - 1588, - 1748, - 1765, - 1821 - ], - "contractKind": "contract", - "documentation": "@title Gnosis Safe Personal Edition - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n @author Stefan George - \n @author Richard Meissner - \n @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment", - "fullyImplemented": true, - "id": 529, - "linearizedBaseContracts": [ - 529, - 1748, - 1821, - 208, - 1588, - 1180, - 153, - 37, - 813, - 1765 - ], - "name": "GnosisSafePersonalEdition", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 225, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "593:60:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 223, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "593:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "476e6f736973205361666520506572736f6e616c2045646974696f6e", - "id": 224, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "623:30:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b657d2895d137bf089ce1df776b732639b1ebc2a3aec3bd837e225e9e0965154", - "typeString": "literal_string \"Gnosis Safe Personal Edition\"" - }, - "value": "Gnosis Safe Personal Edition" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 228, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "659:40:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 226, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "659:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e31", - "id": 227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "692:7:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" - }, - "value": "0.0.1" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 231, - "name": "SAFE_TX_TYPEHASH", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "893:109:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 229, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "893:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307830363863336233336363396266663664646530383230393532376236326162666231643465643537363730366532303738323239363233643732333734623562", - "id": 230, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "936:66:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2961644280108194065159135409573964622771032650926095796711509007169446431579_by_1", - "typeString": "int_const 2961...(68 digits omitted)...1579" - }, - "value": "0x068c3b33cc9bff6dde08209527b62abfb1d4ed576706e2078229623d72374b5b" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 235, - "name": "ExecutionFailed", - "nodeType": "EventDefinition", - "parameters": { - "id": 234, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 233, - "indexed": false, - "name": "txHash", - "nodeType": "VariableDeclaration", - "scope": 235, - "src": "1035:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 232, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1035:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1034:16:5" - }, - "src": "1013:38:5" - }, - { - "constant": false, - "id": 237, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "1057:20:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 236, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1057:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 361, - "nodeType": "Block", - "src": "2307:1218:5", - "statements": [ - { - "assignments": [ - 261 - ], - "declarations": [ - { - "constant": false, - "id": 261, - "name": "startGas", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2317:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 260, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2317:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 264, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 262, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "2336:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2336:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2317:28:5" - }, - { - "assignments": [ - 266 - ], - "declarations": [ - { - "constant": false, - "id": 266, - "name": "txHash", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2355:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 265, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2355:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 278, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 268, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 239, - "src": "2391:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 269, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "2395:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 270, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 243, - "src": "2402:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 271, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 245, - "src": "2408:9:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 272, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 247, - "src": "2419:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 273, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 249, - "src": "2430:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 274, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "2439:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 275, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "2449:8:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 276, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 237, - "src": "2459:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 267, - "name": "getTransactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 528, - "src": "2372:18:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,uint256) view returns (bytes32)" - } - }, - "id": 277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2372:93:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2355:110:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 280, - "name": "txHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "2485:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 281, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "2493:10:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 279, - "name": "checkHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 470, - "src": "2475:9:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes32,bytes memory) view" - } - }, - "id": 282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2475:29:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 283, - "nodeType": "ExpressionStatement", - "src": "2475:29:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2565:7:5", - "subExpression": { - "argumentTypes": null, - "id": 284, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 237, - "src": "2565:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 286, - "nodeType": "ExpressionStatement", - "src": "2565:7:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 288, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "2590:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2590:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 290, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 247, - "src": "2603:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2590:22:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6f7420656e6f7567682067617320746f20657865637574652073616665207472616e73616374696f6e", - "id": 292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2614:44:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", - "typeString": "literal_string \"Not enough gas to execute safe transaction\"" - }, - "value": "Not enough gas to execute safe transaction" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", - "typeString": "literal_string \"Not enough gas to execute safe transaction\"" - } - ], - "id": 287, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "2582:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2582:77:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 294, - "nodeType": "ExpressionStatement", - "src": "2582:77:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 295, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 258, - "src": "2669:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 297, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 239, - "src": "2687:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 298, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "2691:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 299, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 243, - "src": "2698:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 300, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 245, - "src": "2704:9:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 301, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 247, - "src": "2715:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 296, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "2679:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2679:46:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2669:56:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 304, - "nodeType": "ExpressionStatement", - "src": "2669:56:5" - }, - { - "condition": { - "argumentTypes": null, - "id": 306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2739:8:5", - "subExpression": { - "argumentTypes": null, - "id": 305, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 258, - "src": "2740:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 312, - "nodeType": "IfStatement", - "src": "2735:67:5", - "trueBody": { - "id": 311, - "nodeType": "Block", - "src": "2749:53:5", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 308, - "name": "txHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "2784:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 307, - "name": "ExecutionFailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "2768:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - } - }, - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2768:23:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 310, - "nodeType": "EmitStatement", - "src": "2763:28:5" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 313, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "2955:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2966:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2955:12:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 360, - "nodeType": "IfStatement", - "src": "2951:566:5", - "trueBody": { - "id": 359, - "nodeType": "Block", - "src": "2969:548:5", - "statements": [ - { - "assignments": [ - 317 - ], - "declarations": [ - { - "constant": false, - "id": 317, - "name": "gasCosts", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2983:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2983:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 325, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 318, - "name": "startGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 261, - "src": "3003:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 319, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "3014:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3014:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3003:20:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 322, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3002:22:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 323, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 249, - "src": "3027:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3002:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2983:51:5" - }, - { - "assignments": [ - 327 - ], - "declarations": [ - { - "constant": false, - "id": 327, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "3048:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 326, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3048:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 331, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 328, - "name": "gasCosts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 317, - "src": "3065:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 329, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "3076:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3065:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3048:36:5" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 332, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "3102:8:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 334, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3122:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 333, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3114:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 335, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3114:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3102:22:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 357, - "nodeType": "Block", - "src": "3318:189:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 349, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "3425:8:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 350, - "name": "tx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3840, - "src": "3435:2:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_transaction", - "typeString": "tx" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "origin", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3435:9:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 352, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 327, - "src": "3446:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 348, - "name": "transferToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1747, - "src": "3411:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3411:42:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792067617320636f737473207769746820746f6b656e", - "id": 354, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3455:36:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", - "typeString": "literal_string \"Could not pay gas costs with token\"" - }, - "value": "Could not pay gas costs with token" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", - "typeString": "literal_string \"Could not pay gas costs with token\"" - } - ], - "id": 347, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "3403:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3403:89:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 356, - "nodeType": "ExpressionStatement", - "src": "3403:89:5" - } - ] - }, - "id": 358, - "nodeType": "IfStatement", - "src": "3098:409:5", - "trueBody": { - "id": 346, - "nodeType": "Block", - "src": "3126:186:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 341, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 327, - "src": "3251:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 338, - "name": "tx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3840, - "src": "3236:2:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_transaction", - "typeString": "tx" - } - }, - "id": 339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "origin", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3236:9:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "send", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3236:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) returns (bool)" - } - }, - "id": 342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3236:22:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792067617320636f7374732077697468206574686572", - "id": 343, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3260:36:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", - "typeString": "literal_string \"Could not pay gas costs with ether\"" - }, - "value": "Could not pay gas costs with ether" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", - "typeString": "literal_string \"Could not pay gas costs with ether\"" - } - ], - "id": 337, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "3228:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3228:69:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 345, - "nodeType": "ExpressionStatement", - "src": "3228:69:5" - } - ] - } - } - ] - } - } - ] - }, - "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n Note: The fees are always transfered, even if the user transaction fails. \n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @param safeTxGas Gas that should be used for the Safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction and to pay the payment transfer\n @param gasPrice Gas price that should be used for the payment calculation.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", - "id": 362, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "execTransactionAndPaySubmitter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 256, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 239, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2029:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 238, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2029:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 241, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2050:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2050:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 243, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2074:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 242, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2074:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 245, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2095:24:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 244, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "2095:14:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 247, - "name": "safeTxGas", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2130:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 246, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2130:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 249, - "name": "dataGas", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2157:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 248, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2157:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 251, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2182:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2182:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2208:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 252, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2208:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 255, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2234:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 254, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2234:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2019:237:5" - }, - "payable": false, - "returnParameters": { - "id": 259, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 258, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "2289:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 257, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2289:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2288:14:5" - }, - "scope": 529, - "src": "1980:1545:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 409, - "nodeType": "Block", - "src": "4604:371:5", - "statements": [ - { - "assignments": [ - 378 - ], - "declarations": [ - { - "constant": false, - "id": 378, - "name": "startGas", - "nodeType": "VariableDeclaration", - "scope": 410, - "src": "4614:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4614:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 381, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 379, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "4633:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4633:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4614:28:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 384, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 364, - "src": "4755:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 385, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "4759:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 386, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "4766:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 387, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 370, - "src": "4772:9:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 388, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "4783:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4783:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 383, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "4747:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4747:46:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 382, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3831, - "src": "4739:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4739:55:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 392, - "nodeType": "ExpressionStatement", - "src": "4739:55:5" - }, - { - "assignments": [ - 394 - ], - "declarations": [ - { - "constant": false, - "id": 394, - "name": "requiredGas", - "nodeType": "VariableDeclaration", - "scope": 410, - "src": "4804:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4804:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 399, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 395, - "name": "startGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 378, - "src": "4826:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 396, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "4837:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4837:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4826:20:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4804:42:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 404, - "name": "requiredGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 394, - "src": "4954:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 402, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "4937:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 403, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4937:16:5", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4937:29:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 401, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4930:6:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": "string" - }, - "id": 406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4930:37:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - ], - "id": 400, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3833, - 3834 - ], - "referencedDeclaration": 3834, - "src": "4923:6:5", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4923:45:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 408, - "nodeType": "ExpressionStatement", - "src": "4923:45:5" - } - ] - }, - "documentation": "@dev Allows to estimate a Safe transaction. \n This method is only meant for estimation purpose, therfore two different protection mechanism against execution in a transaction have been made:\n 1.) The method can only be called from the safe itself\n 2.) The response is returned with a revert\n When estimating set `from` to the address of the safe.\n Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransactionAndPaySubmitter`\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).", - "id": 410, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 373, - "modifierName": { - "argumentTypes": null, - "id": 372, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "4563:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4563:10:5" - } - ], - "name": "requiredTxGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 371, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 364, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 410, - "src": "4475:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4475:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 366, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 410, - "src": "4487:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4487:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 368, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 410, - "src": "4502:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 367, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4502:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 370, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 410, - "src": "4514:24:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 369, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "4514:14:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4474:65:5" - }, - "payable": false, - "returnParameters": { - "id": 376, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 375, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 410, - "src": "4591:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 374, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4591:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4590:9:5" - }, - "scope": 529, - "src": "4452:523:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 469, - "nodeType": "Block", - "src": "5068:519:5", - "statements": [ - { - "assignments": [ - 418 - ], - "declarations": [ - { - "constant": false, - "id": 418, - "name": "lastOwner", - "nodeType": "VariableDeclaration", - "scope": 470, - "src": "5130:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5130:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 422, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 420, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5158:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 419, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5150:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 421, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5150:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5130:30:5" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 424, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 470, - "src": "5170:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 423, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5170:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 425, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "5170:20:5" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 427, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 470, - "src": "5200:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 426, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5200:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 428, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "5200:9:5" - }, - { - "body": { - "id": 467, - "nodeType": "Block", - "src": "5293:288:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 439, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "5307:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 441, - "name": "txHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "5333:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 442, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 414, - "src": "5341:10:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 443, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "5353:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 440, - "name": "recoverKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "5322:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory,uint256) pure returns (address)" - } - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5322:33:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5307:48:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 446, - "nodeType": "ExpressionStatement", - "src": "5307:48:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "5377:6:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "5384:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5377:20:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5401:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5377:25:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 453, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5404:33:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", - "typeString": "literal_string \"Signature not provided by owner\"" - }, - "value": "Signature not provided by owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", - "typeString": "literal_string \"Signature not provided by owner\"" - } - ], - "id": 447, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "5369:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5369:69:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 455, - "nodeType": "ExpressionStatement", - "src": "5369:69:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 457, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "5460:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 458, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 418, - "src": "5475:9:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5460:24:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 460, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5486:45:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", - "typeString": "literal_string \"Signatures are not ordered by owner address\"" - }, - "value": "Signatures are not ordered by owner address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", - "typeString": "literal_string \"Signatures are not ordered by owner address\"" - } - ], - "id": 456, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "5452:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5452:80:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 462, - "nodeType": "ExpressionStatement", - "src": "5452:80:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 463, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 418, - "src": "5546:9:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 464, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "5558:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5546:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 466, - "nodeType": "ExpressionStatement", - "src": "5546:24:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 433, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "5273:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 434, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "5277:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5273:13:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 468, - "initializationExpression": { - "expression": { - "argumentTypes": null, - "id": 431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 429, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "5266:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 430, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5270:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5266:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 432, - "nodeType": "ExpressionStatement", - "src": "5266:5:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5288:3:5", - "subExpression": { - "argumentTypes": null, - "id": 436, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "5288:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 438, - "nodeType": "ExpressionStatement", - "src": "5288:3:5" - }, - "nodeType": "ForStatement", - "src": "5261:320:5" - } - ] - }, - "documentation": null, - "id": 470, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "checkHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 415, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 412, - "name": "txHash", - "nodeType": "VariableDeclaration", - "scope": 470, - "src": "5000:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 411, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5000:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 414, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 470, - "src": "5016:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 413, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5016:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4999:34:5" - }, - "payable": false, - "returnParameters": { - "id": 416, - "nodeType": "ParameterList", - "parameters": [], - "src": "5068:0:5" - }, - "scope": 529, - "src": "4981:606:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 527, - "nodeType": "Block", - "src": "6511:302:5", - "statements": [ - { - "assignments": [ - 494 - ], - "declarations": [ - { - "constant": false, - "id": 494, - "name": "safeTxHash", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6521:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 493, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6521:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 512, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 498, - "name": "SAFE_TX_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 231, - "src": "6576:16:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 499, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 472, - "src": "6594:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 500, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "6598:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 502, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "6615:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 501, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "6605:9:5", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6605:15:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 504, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "6622:9:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 505, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 480, - "src": "6633:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 506, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "6644:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 507, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "6653:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 508, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 486, - "src": "6663:8:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 509, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "6673:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 496, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "6565:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6565:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6565:115:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 495, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "6542:9:5", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6542:148:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6521:169:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6752:4:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6747:4:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6747:10:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 520, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6764:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 519, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6759:4:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 521, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6759:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "domainSeperator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "6768:15:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "safeTxHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "6785:10:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 514, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "6730:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 515, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6730:16:5", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6730:66:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 513, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "6707:9:5", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6707:99:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 492, - "id": 526, - "nodeType": "Return", - "src": "6700:106:5" - } - ] - }, - "documentation": "@dev Returns hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param safeTxGas Fas that should be used for the safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param _nonce Transaction nonce.\n @return Transaction hash.", - "id": 528, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 489, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 472, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6224:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 471, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6224:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 474, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6245:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 473, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6245:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 476, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6269:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 475, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6269:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 478, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6290:24:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 477, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "6290:14:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 480, - "name": "safeTxGas", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6325:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 479, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6325:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 482, - "name": "dataGas", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6353:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 481, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6353:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6379:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6379:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 486, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6406:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 485, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6406:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 488, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6432:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 487, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6432:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6214:238:5" - }, - "payable": false, - "returnParameters": { - "id": 492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 491, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 528, - "src": "6498:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 490, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6498:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6497:9:5" - }, - "scope": 529, - "src": "6187:626:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 530, - "src": "483:6332:5" - } - ], - "src": "0:6816:5" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0xaaccf4196ff4fe89da8251a9dfedd40400fb4cbc", - "transactionHash": "0x19ffaf24e1f95232c9cc086d410e35eafa280967778800a1bbffcd5e99f085a8" - }, - "1534750848541": { - "events": {}, - "links": {}, - "address": "0xfc628dd79137395f3c9744e33b1c5de554d94882", - "transactionHash": "0xb3bdadd14f16f8ed80bbef04d5c539f7b41fc170a1356d295290d04cf62f2c2a" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:50:29.713Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/GnosisSafeTeamEdition.json b/safe-contracts/build/contracts/GnosisSafeTeamEdition.json deleted file mode 100644 index c24ac470..00000000 --- a/safe-contracts/build/contracts/GnosisSafeTeamEdition.json +++ /dev/null @@ -1,7619 +0,0 @@ -{ - "contractName": "GnosisSafeTeamEdition", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "addOwnerWithThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_owners", - "type": "address[]" - }, - { - "name": "_threshold", - "type": "uint256" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "setup", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "DOMAIN_SEPERATOR_TYPEHASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - } - ], - "name": "execTransactionFromModule", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "module", - "type": "address" - } - ], - "name": "enableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "changeThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_masterCopy", - "type": "address" - } - ], - "name": "changeMasterCopy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SENTINEL_MODULES", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SENTINEL_OWNERS", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - }, - { - "name": "", - "type": "address" - } - ], - "name": "isApproved", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getOwners", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "NAME", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getModules", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "domainSeperator", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SAFE_TX_TYPEHASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevModule", - "type": "address" - }, - { - "name": "module", - "type": "address" - } - ], - "name": "disableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "oldOwner", - "type": "address" - }, - { - "name": "newOwner", - "type": "address" - } - ], - "name": "swapOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "name": "isExecuted", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getThreshold", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "removeOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "newContract", - "type": "address" - } - ], - "name": "ContractCreation", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "transactionHash", - "type": "bytes32" - } - ], - "name": "approveTransactionByHash", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - }, - { - "name": "nonce", - "type": "uint256" - } - ], - "name": "approveTransactionWithParameters", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - }, - { - "name": "nonce", - "type": "uint256" - } - ], - "name": "execTransactionIfApproved", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - }, - { - "name": "nonce", - "type": "uint256" - } - ], - "name": "getTransactionHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061415b806100206000396000f300608060405260043610610153576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062249a7a146101555780630d582f13146101865780630ec78d9e146101d3578063153414fa146102a95780631da5187f1461035357806324cd131f146103865780632b500041146104305780632f54bf6e146104f6578063468721a714610551578063610b592514610609578063694e80c31461064c5780637de7edef1461067957806385e332cd146106bc5780638cff635514610713578063a09e89f51461076a578063a0e67e2b146107cf578063a3f4df7e1461083b578063b2494df3146108cb578063cb73ac5614610937578063ccafc3871461096a578063e009cfde1461099d578063e318b52b14610a00578063e52cb36a14610a83578063e75235b814610ac8578063f8dc5dd914610af3578063ffa1ad7414610b60575b005b34801561016157600080fd5b506101846004803603810190808035600019169060200190929190505050610bf0565b005b34801561019257600080fd5b506101d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610df8565b005b3480156101df57600080fd5b506102a76004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506111fe565b005b3480156102b557600080fd5b50610351600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050611384565b005b34801561035f57600080fd5b506103686113a0565b60405180826000191660001916815260200191505060405180910390f35b34801561039257600080fd5b5061042e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291905050506113c7565b005b34801561043c57600080fd5b506104d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061156a565b60405180826000191660001916815260200191505060405180910390f35b34801561050257600080fd5b50610537600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061189f565b604051808215151515815260200191505060405180910390f35b34801561055d57600080fd5b506105ef600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611921565b604051808215151515815260200191505060405180910390f35b34801561061557600080fd5b5061064a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a4d565b005b34801561065857600080fd5b5061067760048036038101908080359060200190929190505050611e2b565b005b34801561068557600080fd5b506106ba600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061203d565b005b3480156106c857600080fd5b506106d16121fe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071f57600080fd5b50610728612203565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561077657600080fd5b506107b96004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612208565b6040518082815260200191505060405180910390f35b3480156107db57600080fd5b506107e461222d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561082757808201518184015260208101905061080c565b505050509050019250505060405180910390f35b34801561084757600080fd5b506108506123c8565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610890578082015181840152602081019050610875565b50505050905090810190601f1680156108bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108d757600080fd5b506108e0612401565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610923578082015181840152602081019050610908565b505050509050019250505060405180910390f35b34801561094357600080fd5b5061094c6126a8565b60405180826000191660001916815260200191505060405180910390f35b34801561097657600080fd5b5061097f6126ae565b60405180826000191660001916815260200191505060405180910390f35b3480156109a957600080fd5b506109fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126d5565b005b348015610a0c57600080fd5b50610a81600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612aee565b005b348015610a8f57600080fd5b50610ab2600480360381019080803560001916906020019092919050505061313b565b6040518082815260200191505060405180910390f35b348015610ad457600080fd5b50610add613153565b6040518082815260200191505060405180910390f35b348015610aff57600080fd5b50610b5e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061315d565b005b348015610b6c57600080fd5b50610b75613642565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bb5578082015181840152602081019050610b9a565b50505050905090810190601f168015610be25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610cde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206973206e6f7420616e206f776e65720000000000000000000081525060200191505060405180910390fd5b600060066000836000191660001916815260200190815260200160002054141515610d97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160076000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ec1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610f155750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610f89576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001019190505550806004541415156111fa576111f981611e2b565b5b5050565b60006001026005546000191614151561127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570657261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515611333578051825260208201915060208101905060208303925061130e565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060058160001916905550611374848461367b565b61137e8282613b3b565b50505050565b611399611394868686868661156a565b610bf0565b5050505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b60006113d6868686868661156a565b9050600060066000836000191660001916815260200190815260200160002054141515611491576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61149a81613d72565b6001600660008360001916600019168152602001908152602001600020819055506114c8868686865a613ff0565b1515611562576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f7420657865637574652073616665207472616e736163746981526020017f6f6e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b505050505050565b6000807f5d1bba48ff479eb8a88ec6029f6b5eebc805c7dcb87470d5b1121d36d824c8736001028787876040518082805190602001908083835b6020831015156115c957805182526020820191506020810190506020830392506115a4565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902087876040516020018087600019166000191681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001846000191660001916815260200183600281111561165f57fe5b60ff16815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156116b95780518252602082019150602081019050602083039250611694565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f010000000000000000000000000000000000000000000000000000000000000002308360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182600019166000191681526020019450505050506040516020818303038152906040526040518082805190602001908083835b6020831015156118665780518252602082019150602081019050602083039250611841565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902091505095945050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611a36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611a43858585855a613ff0565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611b6a5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611bde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611ccb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ef4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515611f94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515612033576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612106576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156121bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b600181565b6007602052816000526040600020602052806000526040600020600091509150505481565b6060806000806003546040519080825280602002602001820160405280156122645781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156123bf5780838381518110151561231457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506122cf565b82935050505090565b6040805190810160405280601881526020017f476e6f7369732053616665205465616d2045646974696f6e000000000000000081525081565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561251557600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612470565b826040519080825280602002602001820160405280156125445781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561269f578181848151811015156125f457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506125af565b80935050505090565b60055481565b7f5d1bba48ff479eb8a88ec6029f6b5eebc805c7dcb87470d5b1121d36d824c87360010281565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561279e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156127f25750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561298e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bb7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015612c0b5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612c7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612d6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612dc05750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612e34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f5c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60066020528060005260406000206000915090505481565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160035403101515156132c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561331d5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515613391576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156134b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060045414151561363d5761363c81611e2b565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000806004541415156136f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515613798576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515613837576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015613aa657848281518110151561385757fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141580156138b75750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561392b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613a18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050613840565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613c4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515613d6e57613cf982825a6140ed565b1515613d6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060008060076000866000191660001916815260200190815260200160002093506000925060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515613f6f5760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141590503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480613eaf5750805b15613f08578015613eff5760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82806001019350505b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150613dfd565b6004548310151515613fe9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f7420656e6f75676820636f6e6669726d6174696f6e73000000000000000081525060200191505060405180910390fd5b5050505050565b6000806000600281111561400057fe5b84600281111561400c57fe5b14156140255761401e87878786614104565b91506140e3565b6001600281111561403257fe5b84600281111561403e57fe5b14156140565761404f8786856140ed565b91506140e2565b61405f8561411d565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008451602086018786f490509392505050565b6000806000845160208601878987f19050949350505050565b60008151602083016000f090509190505600a165627a7a7230582031102eb032deb2807d57bb3656f8ed6ee67350204a56a68129268fd2246445fe0029", - "deployedBytecode": "0x608060405260043610610153576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062249a7a146101555780630d582f13146101865780630ec78d9e146101d3578063153414fa146102a95780631da5187f1461035357806324cd131f146103865780632b500041146104305780632f54bf6e146104f6578063468721a714610551578063610b592514610609578063694e80c31461064c5780637de7edef1461067957806385e332cd146106bc5780638cff635514610713578063a09e89f51461076a578063a0e67e2b146107cf578063a3f4df7e1461083b578063b2494df3146108cb578063cb73ac5614610937578063ccafc3871461096a578063e009cfde1461099d578063e318b52b14610a00578063e52cb36a14610a83578063e75235b814610ac8578063f8dc5dd914610af3578063ffa1ad7414610b60575b005b34801561016157600080fd5b506101846004803603810190808035600019169060200190929190505050610bf0565b005b34801561019257600080fd5b506101d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610df8565b005b3480156101df57600080fd5b506102a76004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506111fe565b005b3480156102b557600080fd5b50610351600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050611384565b005b34801561035f57600080fd5b506103686113a0565b60405180826000191660001916815260200191505060405180910390f35b34801561039257600080fd5b5061042e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291905050506113c7565b005b34801561043c57600080fd5b506104d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061156a565b60405180826000191660001916815260200191505060405180910390f35b34801561050257600080fd5b50610537600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061189f565b604051808215151515815260200191505060405180910390f35b34801561055d57600080fd5b506105ef600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611921565b604051808215151515815260200191505060405180910390f35b34801561061557600080fd5b5061064a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a4d565b005b34801561065857600080fd5b5061067760048036038101908080359060200190929190505050611e2b565b005b34801561068557600080fd5b506106ba600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061203d565b005b3480156106c857600080fd5b506106d16121fe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071f57600080fd5b50610728612203565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561077657600080fd5b506107b96004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612208565b6040518082815260200191505060405180910390f35b3480156107db57600080fd5b506107e461222d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561082757808201518184015260208101905061080c565b505050509050019250505060405180910390f35b34801561084757600080fd5b506108506123c8565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610890578082015181840152602081019050610875565b50505050905090810190601f1680156108bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108d757600080fd5b506108e0612401565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610923578082015181840152602081019050610908565b505050509050019250505060405180910390f35b34801561094357600080fd5b5061094c6126a8565b60405180826000191660001916815260200191505060405180910390f35b34801561097657600080fd5b5061097f6126ae565b60405180826000191660001916815260200191505060405180910390f35b3480156109a957600080fd5b506109fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126d5565b005b348015610a0c57600080fd5b50610a81600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612aee565b005b348015610a8f57600080fd5b50610ab2600480360381019080803560001916906020019092919050505061313b565b6040518082815260200191505060405180910390f35b348015610ad457600080fd5b50610add613153565b6040518082815260200191505060405180910390f35b348015610aff57600080fd5b50610b5e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061315d565b005b348015610b6c57600080fd5b50610b75613642565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bb5578082015181840152602081019050610b9a565b50505050905090810190601f168015610be25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610cde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206973206e6f7420616e206f776e65720000000000000000000081525060200191505060405180910390fd5b600060066000836000191660001916815260200190815260200160002054141515610d97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160076000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ec1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610f155750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610f89576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001019190505550806004541415156111fa576111f981611e2b565b5b5050565b60006001026005546000191614151561127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570657261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515611333578051825260208201915060208101905060208303925061130e565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060058160001916905550611374848461367b565b61137e8282613b3b565b50505050565b611399611394868686868661156a565b610bf0565b5050505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b60006113d6868686868661156a565b9050600060066000836000191660001916815260200190815260200160002054141515611491576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61149a81613d72565b6001600660008360001916600019168152602001908152602001600020819055506114c8868686865a613ff0565b1515611562576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f7420657865637574652073616665207472616e736163746981526020017f6f6e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b505050505050565b6000807f5d1bba48ff479eb8a88ec6029f6b5eebc805c7dcb87470d5b1121d36d824c8736001028787876040518082805190602001908083835b6020831015156115c957805182526020820191506020810190506020830392506115a4565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902087876040516020018087600019166000191681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001846000191660001916815260200183600281111561165f57fe5b60ff16815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156116b95780518252602082019150602081019050602083039250611694565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f010000000000000000000000000000000000000000000000000000000000000002308360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182600019166000191681526020019450505050506040516020818303038152906040526040518082805190602001908083835b6020831015156118665780518252602082019150602081019050602083039250611841565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902091505095945050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611a36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611a43858585855a613ff0565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611b6a5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611bde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611ccb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ef4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515611f94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515612033576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612106576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156121bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b600181565b6007602052816000526040600020602052806000526040600020600091509150505481565b6060806000806003546040519080825280602002602001820160405280156122645781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156123bf5780838381518110151561231457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506122cf565b82935050505090565b6040805190810160405280601881526020017f476e6f7369732053616665205465616d2045646974696f6e000000000000000081525081565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561251557600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612470565b826040519080825280602002602001820160405280156125445781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561269f578181848151811015156125f457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506125af565b80935050505090565b60055481565b7f5d1bba48ff479eb8a88ec6029f6b5eebc805c7dcb87470d5b1121d36d824c87360010281565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561279e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156127f25750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561298e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bb7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015612c0b5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612c7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612d6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612dc05750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612e34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f5c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60066020528060005260406000206000915090505481565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160035403101515156132c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561331d5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515613391576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156134b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060045414151561363d5761363c81611e2b565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000806004541415156136f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515613798576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515613837576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015613aa657848281518110151561385757fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141580156138b75750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561392b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613a18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050613840565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613c4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515613d6e57613cf982825a6140ed565b1515613d6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060008060076000866000191660001916815260200190815260200160002093506000925060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515613f6f5760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141590503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480613eaf5750805b15613f08578015613eff5760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82806001019350505b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150613dfd565b6004548310151515613fe9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f7420656e6f75676820636f6e6669726d6174696f6e73000000000000000081525060200191505060405180910390fd5b5050505050565b6000806000600281111561400057fe5b84600281111561400c57fe5b14156140255761401e87878786614104565b91506140e3565b6001600281111561403257fe5b84600281111561403e57fe5b14156140565761404f8786856140ed565b91506140e2565b61405f8561411d565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008451602086018786f490509392505050565b6000806000845160208601878987f19050949350505050565b60008151602083016000f090509190505600a165627a7a7230582031102eb032deb2807d57bb3656f8ed6ee67350204a56a68129268fd2246445fe0029", - "sourceMap": "272:4725:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;272:4725:6;;;;;;;", - "deployedSourceMap": "272:4725:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1272:436;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1272:436:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2093:595:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;933:457:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;933:457:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2137:287:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2137:287:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;458:118:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;458:118:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2866:618:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2866:618:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4529:466;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4529:466:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5613:129:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5613:129:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2712:429:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2712:429:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:459:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;5087:399:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5087:399:11;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:55:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:10;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:11;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:66:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1002:66:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5824:458:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5824:458:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5824:458:11;;;;;;;;;;;;;;;;;336:56:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;336:56:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;336:56:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3220:738:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3220:738:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3220:738:10;;;;;;;;;;;;;;;;;583:30:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;583:30:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;561:109:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;561:109:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1902:474:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1902:474:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4147:751:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4147:751:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;768:46:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;768:46:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:115:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:115:11;;;;;;;;;;;;;;;;;;;;;;;3030:783;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3030:783:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;399:40:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;399:40:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;399:40:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1272:436;1460:1;1438:6;:18;1445:10;1438:18;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;1430:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1609:1;1578:10;:27;1589:15;1578:27;;;;;;;;;;;;;;;;;;:32;1570:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1700:1;1658:10;:27;1669:15;1658:27;;;;;;;;;;;;;;;;;:39;1686:10;1658:39;;;;;;;;;;;;;;;:43;;;;1272:436;:::o;2093:595:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:1:11;2256:5;:10;;;;:38;;;;;337:3;2270:24;;:5;:24;;;;2256:38;2248:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:1;2387:6;:13;2394:5;2387:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2379:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2463:6;:23;337:3;2463:23;;;;;;;;;;;;;;;;;;;;;;;;;2447:6;:13;2454:5;2447:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2522:5;2496:6;:23;337:3;2496:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2537:10;;:12;;;;;;;;;;;;;2630:10;2617:9;;:23;;2613:68;;;2654:27;2670:10;2654:15;:27::i;:::-;2613:68;2093:595;;:::o;933:457:4:-;1067:1;1048:20;;:15;;:20;;;;1040:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;510:66;1151:25;;1178:4;1140:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1140:43:4;;;1130:54;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1130:54:4;;;;;;;;;;;;;;;;1112:15;:72;;;;;;;1194:32;1206:7;1215:10;1194:11;:32::i;:::-;1361:22;1374:2;1378:4;1361:12;:22::i;:::-;933:457;;;;:::o;2137:287:6:-;2338:79;2363:53;2382:2;2386:5;2393:4;2399:9;2410:5;2363:18;:53::i;:::-;2338:24;:79::i;:::-;2137:287;;;;;:::o;458:118:4:-;510:66;458:118;;;:::o;2866:618:6:-;3060:23;3086:53;3105:2;3109:5;3116:4;3122:9;3133:5;3086:18;:53::i;:::-;3060:79;;3188:1;3157:10;:27;3168:15;3157:27;;;;;;;;;;;;;;;;;;:32;3149:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3237:43;3264:15;3237:26;:43::i;:::-;3373:1;3343:10;:27;3354:15;3343:27;;;;;;;;;;;;;;;;;:31;;;;3392:46;3400:2;3404:5;3411:4;3417:9;3428;3392:7;:46::i;:::-;3384:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2866:618;;;;;;:::o;4529:466::-;4732:7;4755:18;604:66;4810:16;;4828:2;4832:5;4849:4;4839:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4839:15:6;;;;;;;;;;;;;;;;4856:9;4867:5;4799:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4799:74:6;;;4776:107;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4776:107:6;;;;;;;;;;;;;;;;4755:128;;4945:4;4940:10;;4957:1;4952:7;;4961:4;4967:10;4923:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4923:55:6;;;4900:88;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4900:88:6;;;;;;;;;;;;;;;;4893:95;;4529:466;;;;;;;;:::o;5613:129:11:-;5690:4;5734:1;5717:6;:13;5724:5;5717:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5710:25;;5613:129;;;:::o;2712:429:10:-;2844:12;2952:1;2929:7;:19;2937:10;2929:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2921:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3088:46;3096:2;3100:5;3107:4;3113:9;3124;3088:7;:46::i;:::-;3078:56;;2712:429;;;;;;:::o;1182:459::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:10;1337:6;1329:20;;;;:59;;;;;539:3;1353:35;;1361:6;1353:35;;;;1329:59;1321:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:1;1483:7;:15;1491:6;1483:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1475:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1565:7;:25;539:3;1565:25;;;;;;;;;;;;;;;;;;;;;;;;;1547:7;:15;1555:6;1547:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1628:6;1600:7;:25;539:3;1600:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1182:459;:::o;5087:399:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5271:10:11;;5257;:24;;5249:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5405:1;5391:10;:15;;5383:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:10;5457:9;:22;;;;5087:399;:::o;626:248:7:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:7;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;488:55:10:-;539:3;488:55;:::o;287:54:11:-;337:3;287:54;:::o;1002:66:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5824:458:11:-;5890:9;5915:22;6009:13;6036:20;5954:10;;5940:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5940:25:11;;;;5915:50;;6025:1;6009:17;;6059:6;:23;337:3;6059:23;;;;;;;;;;;;;;;;;;;;;;;;;6036:46;;6092:162;337:3;6098:31;;:12;:31;;;;6092:162;;;6160:12;6145:5;6151;6145:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6201:6;:20;6208:12;6201:20;;;;;;;;;;;;;;;;;;;;;;;;;6186:35;;6235:8;;;;;;;6092:162;;;6270:5;6263:12;;5824:458;;;;:::o;336:56:6:-;;;;;;;;;;;;;;;;;;;;:::o;3220:738:10:-;3287:9;3346:19;3379:21;3579:22;3368:1;3346:23;;3403:7;:25;539:3;3403:25;;;;;;;;;;;;;;;;;;;;;;;;;3379:49;;3438:132;539:3;3444:33;;:13;:33;;;;3438:132;;;3509:7;:22;3517:13;3509:22;;;;;;;;;;;;;;;;;;;;;;;;;3493:38;;3545:14;;;;;;;3438:132;;;3618:11;3604:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3604:26:10;;;;3579:51;;3688:1;3674:15;;3715:7;:25;539:3;3715:25;;;;;;;;;;;;;;;;;;;;;;;;;3699:41;;3750:180;539:3;3756:33;;:13;:33;;;;3750:180;;;3826:13;3805:5;3811:11;3805:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3869:7;:22;3877:13;3869:22;;;;;;;;;;;;;;;;;;;;;;;;;3853:38;;3905:14;;;;;;;3750:180;;;3946:5;3939:12;;3220:738;;;;:::o;583:30:4:-;;;;:::o;561:109:6:-;604:66;561:109;;;:::o;1902:474:10:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2116:1:10;2105:6;2097:20;;;;:59;;;;;539:3;2121:35;;2129:6;2121:35;;;;2097:59;2089:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:6;2210:38;;:7;:19;2218:10;2210:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2202:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2325:7;:15;2333:6;2325:15;;;;;;;;;;;;;;;;;;;;;;;;;2303:7;:19;2311:10;2303:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2368:1;2350:7;:15;2358:6;2350:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1902:474;;:::o;4147:751:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:1:11;4318:8;:13;;;;:44;;;;;337:3;4335:27;;:8;:27;;;;4318:44;4310:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4475:1;4455:6;:16;4462:8;4455:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4447:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4621:1;4609:8;:13;;;;:44;;;;;337:3;4626:27;;:8;:27;;;;4609:44;4601:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:8;4706:29;;:6;:17;4713:9;4706:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4698:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4807:6;:16;4814:8;4807:16;;;;;;;;;;;;;;;;;;;;;;;;;4788:6;:16;4795:8;4788:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4853:8;4833:6;:17;4840:9;4833:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4890:1;4871:6;:16;4878:8;4871:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4147:751;;;:::o;768:46:6:-;;;;;;;;;;;;;;;;;:::o;5492:115:11:-;5561:7;5591:9;;5584:16;;5492:115;:::o;3030:783::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3256:10:11;3251:1;3238:10;;:14;:28;;3230:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3431:1;3422:5;:10;;;;:38;;;;;337:3;3436:24;;:5;:24;;;;3422:38;3414:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3534:5;3513:26;;:6;:17;3520:9;3513:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3505:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:6;:13;3619:5;3612:13;;;;;;;;;;;;;;;;;;;;;;;;;3592:6;:17;3599:9;3592:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3651:1;3635:6;:13;3642:5;3635:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3662:10;;:12;;;;;;;;;;;;;;3755:10;3742:9;;:23;;3738:68;;;3779:27;3795:10;3779:15;:27::i;:::-;3738:68;3030:783;;;:::o;399:40:6:-;;;;;;;;;;;;;;;;;;;;:::o;643:1210:11:-;1249:20;1302:9;1401:13;879:1;866:9;;:14;858:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1022:7;:14;1008:10;:28;;1000:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:1;1146:10;:15;;1138:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:3;1249:38;;1314:1;1302:13;;1297:433;1321:7;:14;1317:1;:18;1297:433;;;1417:7;1425:1;1417:10;;;;;;;;;;;;;;;;;;1401:26;;1458:1;1449:5;:10;;;;:38;;;;;337:3;1463:24;;:5;:24;;;;1449:38;1441:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1605:1;1588:6;:13;1595:5;1588:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1580:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1680:5;1657:6;:20;1664:12;1657:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1714:5;1699:20;;1337:3;;;;;;;1297:433;;;337:3;1739:6;:20;1746:12;1739:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1800:7;:14;1787:10;:27;;;;1836:10;1824:9;:22;;;;643:1210;;;;;:::o;606:409:10:-;720:1;691:7;:25;539:3;691:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;683:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;539:3;773:7;:25;539:3;773:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;837:1;831:2;:7;;;;827:181;;;932:40;952:2;956:4;962:9;932:19;:40::i;:::-;924:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:181;606:409;;:::o;3490:761:6:-;3582:37;3659:21;3736:20;3846:19;3622:10;:27;3633:15;3622:27;;;;;;;;;;;;;;;;;3582:67;;3683:1;3659:25;;3759:6;:23;337:3:11;3759:23:6;;;;;;;;;;;;;;;;;;;;;;;;;3736:46;;3792:380;337:3:11;3799:31:6;;:12;:31;;;;3792:380;;;3895:1;3868:9;:23;3878:12;3868:23;;;;;;;;;;;;;;;;:28;;3846:50;;3929:10;3913:26;;:12;:26;;;:44;;;;3943:14;3913:44;3910:203;;;3981:14;3977:88;;;4045:1;4019:9;:23;4029:12;4019:23;;;;;;;;;;;;;;;:27;;;;3977:88;4082:16;;;;;;;3910:203;4141:6;:20;4148:12;4141:20;;;;;;;;;;;;;;;;;;;;;;;;;4126:35;;3792:380;;;4206:9;;4189:13;:26;;4181:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3490:761;;;;;:::o;390:548:3:-;521:12;792:19;566;553:32;;;;;;;;:9;:32;;;;;;;;;549:383;;;609:35;621:2;625:5;632:4;638:5;609:11;:35::i;:::-;599:45;;549:383;;;676:27;663:40;;;;;;;;:9;:40;;;;;;;;;659:273;;;727:36;747:2;751:4;757:5;727:19;:36::i;:::-;717:46;;659:273;;;814:19;828:4;814:13;:19::i;:::-;792:41;;872:1;857:11;:16;;;;847:26;;892:29;909:11;892:29;;;;;;;;;;;;;;;;;;;;;;659:273;549:383;390:548;;;;;;;;:::o;1259:303::-;1361:12;1544:1;1541;1534:4;1528:11;1521:4;1515;1511:15;1507:2;1500:5;1487:59;1476:70;;1462:94;;;;;:::o;944:309::-;1053:12;1235:1;1232;1225:4;1219:11;1212:4;1206;1202:15;1195:5;1191:2;1184:5;1179:58;1168:69;;1154:93;;;;;;:::o;1568:261::-;1637:19;1807:4;1801:11;1794:4;1788;1784:15;1781:1;1774:39;1759:54;;1745:78;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./GnosisSafe.sol\";\nimport \"./MasterCopy.sol\";\n\n\n/// @title Gnosis Safe Team Edition - A multisignature wallet with support for confirmations.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract GnosisSafeTeamEdition is MasterCopy, GnosisSafe {\n\n string public constant NAME = \"Gnosis Safe Team Edition\"; \n string public constant VERSION = \"0.0.1\";\n //keccak256(\n // \"TeamSafeTx(address to,uint256 value,bytes data,uint8 operation,uint256 nonce)\"\n //);\n bytes32 public constant SAFE_TX_TYPEHASH = 0x5d1bba48ff479eb8a88ec6029f6b5eebc805c7dcb87470d5b1121d36d824c873;\n\n // isExecuted mapping allows to check if a transaction (by hash) was already executed.\n mapping (bytes32 => uint256) public isExecuted;\n\n // isApproved mapping allows to check if a transaction (by hash) was confirmed by an owner.\n // uint256 is used to optimize the generated assembly. if 0 then false else true\n mapping (bytes32 => mapping(address => uint256)) public isApproved;\n\n /// @dev Allows to confirm a Safe transaction with a regular transaction.\n /// This can only be done from an owner address.\n /// @param transactionHash Hash of the Safe transaction.\n function approveTransactionByHash(bytes32 transactionHash)\n public\n {\n // Only Safe owners are allowed to confirm Safe transactions.\n require(owners[msg.sender] != 0, \"Sender is not an owner\");\n // It should not be possible to confirm an executed transaction\n require(isExecuted[transactionHash] == 0, \"Safe transaction already executed\");\n isApproved[transactionHash][msg.sender] = 1;\n }\n\n /// @dev Allows to confirm a Safe transaction with a regular transaction.\n /// This can only be done from an owner address.\n /// @param to Destination address of Safe transaction.\n /// @param value Ether value of Safe transaction.\n /// @param data Data payload of Safe transaction.\n /// @param operation Operation type of Safe transaction.\n /// @param nonce Nonce used for this Safe transaction.\n function approveTransactionWithParameters(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n {\n approveTransactionByHash(getTransactionHash(to, value, data, operation, nonce));\n }\n\n /// @dev Allows to execute a Safe transaction confirmed by required number of owners. If the sender is an owner this is automatically confirmed.\n /// @param to Destination address of Safe transaction.\n /// @param value Ether value of Safe transaction.\n /// @param data Data payload of Safe transaction.\n /// @param operation Operation type of Safe transaction.\n /// @param nonce Nonce used for this Safe transaction.\n function execTransactionIfApproved(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n {\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n require(isExecuted[transactionHash] == 0, \"Safe transaction already executed\");\n checkAndClearConfirmations(transactionHash);\n // Mark as executed and execute transaction.\n isExecuted[transactionHash] = 1;\n require(execute(to, value, data, operation, gasleft()), \"Could not execute safe transaction\");\n }\n\n function checkAndClearConfirmations(bytes32 transactionHash)\n internal\n {\n mapping(address => uint256) approvals = isApproved[transactionHash];\n uint256 confirmations = 0;\n // Validate threshold is reached.\n address currentOwner = owners[SENTINEL_OWNERS];\n while (currentOwner != SENTINEL_OWNERS) {\n bool ownerConfirmed = approvals[currentOwner] != 0;\n if(currentOwner == msg.sender || ownerConfirmed) {\n if (ownerConfirmed) {\n approvals[currentOwner] = 0;\n }\n confirmations ++;\n }\n currentOwner = owners[currentOwner];\n }\n require(confirmations >= threshold, \"Not enough confirmations\");\n }\n\n /// @dev Returns hash to be signed by owners.\n /// @param to Destination address.\n /// @param value Ether value.\n /// @param data Data payload.\n /// @param operation Operation type.\n /// @param nonce Transaction nonce.\n /// @return Transaction hash.\n function getTransactionHash(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n view\n returns (bytes32)\n {\n bytes32 safeTxHash = keccak256(\n abi.encode(SAFE_TX_TYPEHASH, to, value, keccak256(data), operation, nonce)\n );\n return keccak256(\n abi.encodePacked(byte(0x19), byte(1), this, safeTxHash)\n );\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafeTeamEdition.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafeTeamEdition.sol", - "exportedSymbols": { - "GnosisSafeTeamEdition": [ - 786 - ] - }, - "id": 787, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 531, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", - "file": "./GnosisSafe.sol", - "id": 532, - "nodeType": "ImportDirective", - "scope": 787, - "sourceUnit": 209, - "src": "24:26:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", - "file": "./MasterCopy.sol", - "id": 533, - "nodeType": "ImportDirective", - "scope": 787, - "sourceUnit": 814, - "src": "51:26:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 534, - "name": "MasterCopy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 813, - "src": "306:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$813", - "typeString": "contract MasterCopy" - } - }, - "id": 535, - "nodeType": "InheritanceSpecifier", - "src": "306:10:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 536, - "name": "GnosisSafe", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 208, - "src": "318:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$208", - "typeString": "contract GnosisSafe" - } - }, - "id": 537, - "nodeType": "InheritanceSpecifier", - "src": "318:10:6" - } - ], - "contractDependencies": [ - 208, - 153, - 37, - 813, - 1180, - 1588, - 1765 - ], - "contractKind": "contract", - "documentation": "@title Gnosis Safe Team Edition - A multisignature wallet with support for confirmations.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 786, - "linearizedBaseContracts": [ - 786, - 208, - 1588, - 1180, - 153, - 37, - 813, - 1765 - ], - "name": "GnosisSafeTeamEdition", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 540, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "336:56:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 538, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "336:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "476e6f7369732053616665205465616d2045646974696f6e", - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "366:26:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_69b1cb372bb47730ba653a0e87363aa6de8337d13ed5852e6fe3ba4e2004a81e", - "typeString": "literal_string \"Gnosis Safe Team Edition\"" - }, - "value": "Gnosis Safe Team Edition" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 543, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "399:40:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 541, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "399:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e31", - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "432:7:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" - }, - "value": "0.0.1" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 546, - "name": "SAFE_TX_TYPEHASH", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "561:109:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 544, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "561:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307835643162626134386666343739656238613838656336303239663662356565626338303563376463623837343730643562313132316433366438323463383733", - "id": 545, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "604:66:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_42114085481813550712033693253853890854456273647728279042821730599331164375155_by_1", - "typeString": "int_const 4211...(69 digits omitted)...5155" - }, - "value": "0x5d1bba48ff479eb8a88ec6029f6b5eebc805c7dcb87470d5b1121d36d824c873" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 550, - "name": "isExecuted", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "768:46:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 549, - "keyType": { - "id": 547, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "777:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "768:28:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 548, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "788:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 556, - "name": "isApproved", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "1002:66:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(bytes32 => mapping(address => uint256))" - }, - "typeName": { - "id": 555, - "keyType": { - "id": 551, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1011:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1002:48:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(bytes32 => mapping(address => uint256))" - }, - "valueType": { - "id": 554, - "keyType": { - "id": 552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1030:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1022:27:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 553, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1041:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 589, - "nodeType": "Block", - "src": "1350:358:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 562, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "1438:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 563, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "1445:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1445:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1438:18:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 566, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1460:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1438:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "53656e646572206973206e6f7420616e206f776e6572", - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1463:24:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b22a5f47ffb62866097c90f90b5b53f76973769c84a10c62e12a07eb2ba1ef4a", - "typeString": "literal_string \"Sender is not an owner\"" - }, - "value": "Sender is not an owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b22a5f47ffb62866097c90f90b5b53f76973769c84a10c62e12a07eb2ba1ef4a", - "typeString": "literal_string \"Sender is not an owner\"" - } - ], - "id": 561, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "1430:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1430:58:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 570, - "nodeType": "ExpressionStatement", - "src": "1430:58:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 572, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "1578:10:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 574, - "indexExpression": { - "argumentTypes": null, - "id": 573, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 558, - "src": "1589:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1578:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1609:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1578:32:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "53616665207472616e73616374696f6e20616c7265616479206578656375746564", - "id": 577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1612:35:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", - "typeString": "literal_string \"Safe transaction already executed\"" - }, - "value": "Safe transaction already executed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", - "typeString": "literal_string \"Safe transaction already executed\"" - } - ], - "id": 571, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "1570:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1570:78:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 579, - "nodeType": "ExpressionStatement", - "src": "1570:78:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 580, - "name": "isApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "1658:10:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(bytes32 => mapping(address => uint256))" - } - }, - "id": 584, - "indexExpression": { - "argumentTypes": null, - "id": 581, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 558, - "src": "1669:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1658:27:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 585, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 582, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "1686:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1686:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1658:39:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 586, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1700:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1658:43:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 588, - "nodeType": "ExpressionStatement", - "src": "1658:43:6" - } - ] - }, - "documentation": "@dev Allows to confirm a Safe transaction with a regular transaction.\n This can only be done from an owner address.\n @param transactionHash Hash of the Safe transaction.", - "id": 590, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveTransactionByHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 559, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 558, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 590, - "src": "1306:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 557, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1306:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1305:25:6" - }, - "payable": false, - "returnParameters": { - "id": 560, - "nodeType": "ParameterList", - "parameters": [], - "src": "1350:0:6" - }, - "scope": 786, - "src": "1272:436:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 613, - "nodeType": "Block", - "src": "2328:96:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 605, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "2382:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 606, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "2386:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "2393:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 608, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "2399:9:6", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 609, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "2410:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "getTransactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "2363:18:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2363:53:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 603, - "name": "approveTransactionByHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 590, - "src": "2338:24:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - } - }, - "id": 611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2338:79:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 612, - "nodeType": "ExpressionStatement", - "src": "2338:79:6" - } - ] - }, - "documentation": "@dev Allows to confirm a Safe transaction with a regular transaction.\n This can only be done from an owner address.\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @param nonce Nonce used for this Safe transaction.", - "id": 614, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveTransactionWithParameters", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 592, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 614, - "src": "2188:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 591, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2188:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 594, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 614, - "src": "2209:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 593, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2209:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 596, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 614, - "src": "2233:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 595, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2233:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 614, - "src": "2254:24:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 597, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "2254:14:6", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 614, - "src": "2289:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2289:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2178:130:6" - }, - "payable": false, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2328:0:6" - }, - "scope": 786, - "src": "2137:287:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 668, - "nodeType": "Block", - "src": "3050:434:6", - "statements": [ - { - "assignments": [ - 628 - ], - "declarations": [ - { - "constant": false, - "id": 628, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 669, - "src": "3060:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 627, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3060:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 636, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "3105:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 618, - "src": "3109:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 632, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "3116:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 633, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 622, - "src": "3122:9:6", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 634, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 624, - "src": "3133:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 629, - "name": "getTransactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "3086:18:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" - } - }, - "id": 635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3086:53:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3060:79:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 638, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "3157:10:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 640, - "indexExpression": { - "argumentTypes": null, - "id": 639, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 628, - "src": "3168:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3157:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3188:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3157:32:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "53616665207472616e73616374696f6e20616c7265616479206578656375746564", - "id": 643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3191:35:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", - "typeString": "literal_string \"Safe transaction already executed\"" - }, - "value": "Safe transaction already executed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", - "typeString": "literal_string \"Safe transaction already executed\"" - } - ], - "id": 637, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "3149:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3149:78:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 645, - "nodeType": "ExpressionStatement", - "src": "3149:78:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 647, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 628, - "src": "3264:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 646, - "name": "checkAndClearConfirmations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "3237:26:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - } - }, - "id": 648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3237:43:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 649, - "nodeType": "ExpressionStatement", - "src": "3237:43:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 650, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "3343:10:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 652, - "indexExpression": { - "argumentTypes": null, - "id": 651, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 628, - "src": "3354:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3343:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3373:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3343:31:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 655, - "nodeType": "ExpressionStatement", - "src": "3343:31:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 658, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "3400:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 659, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 618, - "src": "3404:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 660, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "3411:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 661, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 622, - "src": "3417:9:6", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 662, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "3428:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3428:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 657, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "3392:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3392:46:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f7420657865637574652073616665207472616e73616374696f6e", - "id": 665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3440:36:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d12b254798790cac45e0b54201b0ecf8f3257f9e4c1cfc4633e272006616c878", - "typeString": "literal_string \"Could not execute safe transaction\"" - }, - "value": "Could not execute safe transaction" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d12b254798790cac45e0b54201b0ecf8f3257f9e4c1cfc4633e272006616c878", - "typeString": "literal_string \"Could not execute safe transaction\"" - } - ], - "id": 656, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "3384:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3384:93:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 667, - "nodeType": "ExpressionStatement", - "src": "3384:93:6" - } - ] - }, - "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners. If the sender is an owner this is automatically confirmed.\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @param nonce Nonce used for this Safe transaction.", - "id": 669, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "execTransactionIfApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 625, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 616, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 669, - "src": "2910:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 615, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2910:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 618, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 669, - "src": "2931:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 617, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2931:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 620, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 669, - "src": "2955:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 619, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2955:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 622, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 669, - "src": "2976:24:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 621, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "2976:14:6", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 624, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 669, - "src": "3011:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 623, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3011:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2900:130:6" - }, - "payable": false, - "returnParameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [], - "src": "3050:0:6" - }, - "scope": 786, - "src": "2866:618:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 738, - "nodeType": "Block", - "src": "3572:679:6", - "statements": [ - { - "assignments": [ - 677 - ], - "declarations": [ - { - "constant": false, - "id": 677, - "name": "approvals", - "nodeType": "VariableDeclaration", - "scope": 739, - "src": "3582:37:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 676, - "keyType": { - "id": 674, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3590:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3582:27:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 675, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3601:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 681, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 678, - "name": "isApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "3622:10:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(bytes32 => mapping(address => uint256))" - } - }, - "id": 680, - "indexExpression": { - "argumentTypes": null, - "id": 679, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 671, - "src": "3633:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3622:27:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3582:67:6" - }, - { - "assignments": [ - 683 - ], - "declarations": [ - { - "constant": false, - "id": 683, - "name": "confirmations", - "nodeType": "VariableDeclaration", - "scope": 739, - "src": "3659:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 682, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3659:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 685, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 684, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3683:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3659:25:6" - }, - { - "assignments": [ - 687 - ], - "declarations": [ - { - "constant": false, - "id": 687, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 739, - "src": "3736:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 686, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3736:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 691, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 688, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "3759:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 690, - "indexExpression": { - "argumentTypes": null, - "id": 689, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "3766:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3759:23:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3736:46:6" - }, - { - "body": { - "id": 729, - "nodeType": "Block", - "src": "3832:340:6", - "statements": [ - { - "assignments": [ - 696 - ], - "declarations": [ - { - "constant": false, - "id": 696, - "name": "ownerConfirmed", - "nodeType": "VariableDeclaration", - "scope": 739, - "src": "3846:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 695, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3846:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 702, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 697, - "name": "approvals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "3868:9:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 699, - "indexExpression": { - "argumentTypes": null, - "id": 698, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "3878:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3868:23:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 700, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3895:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3868:28:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3846:50:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 703, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "3913:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 704, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "3929:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3929:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3913:26:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "ownerConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "3943:14:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3913:44:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 722, - "nodeType": "IfStatement", - "src": "3910:203:6", - "trueBody": { - "id": 721, - "nodeType": "Block", - "src": "3959:154:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 709, - "name": "ownerConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "3981:14:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 717, - "nodeType": "IfStatement", - "src": "3977:88:6", - "trueBody": { - "id": 716, - "nodeType": "Block", - "src": "3997:68:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 710, - "name": "approvals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "4019:9:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 712, - "indexExpression": { - "argumentTypes": null, - "id": 711, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "4029:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4019:23:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4045:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4019:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 715, - "nodeType": "ExpressionStatement", - "src": "4019:27:6" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4082:16:6", - "subExpression": { - "argumentTypes": null, - "id": 718, - "name": "confirmations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 683, - "src": "4082:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 720, - "nodeType": "ExpressionStatement", - "src": "4082:16:6" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 723, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "4126:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 724, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4141:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 726, - "indexExpression": { - "argumentTypes": null, - "id": 725, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "4148:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4141:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4126:35:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 728, - "nodeType": "ExpressionStatement", - "src": "4126:35:6" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 692, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "3799:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 693, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "3815:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3799:31:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 730, - "nodeType": "WhileStatement", - "src": "3792:380:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 732, - "name": "confirmations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 683, - "src": "4189:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 733, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "4206:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4189:26:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4217:26:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b345da2aaad39251196728cc7926bed93e890843c2a47c2cdd1122427d828094", - "typeString": "literal_string \"Not enough confirmations\"" - }, - "value": "Not enough confirmations" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b345da2aaad39251196728cc7926bed93e890843c2a47c2cdd1122427d828094", - "typeString": "literal_string \"Not enough confirmations\"" - } - ], - "id": 731, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "4181:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4181:63:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 737, - "nodeType": "ExpressionStatement", - "src": "4181:63:6" - } - ] - }, - "documentation": null, - "id": 739, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "checkAndClearConfirmations", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 672, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 671, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 739, - "src": "3526:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 670, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3526:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3525:25:6" - }, - "payable": false, - "returnParameters": { - "id": 673, - "nodeType": "ParameterList", - "parameters": [], - "src": "3572:0:6" - }, - "scope": 786, - "src": "3490:761:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 784, - "nodeType": "Block", - "src": "4745:250:6", - "statements": [ - { - "assignments": [ - 755 - ], - "declarations": [ - { - "constant": false, - "id": 755, - "name": "safeTxHash", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "4755:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 754, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4755:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 769, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 759, - "name": "SAFE_TX_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 546, - "src": "4810:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 760, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "4828:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 761, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 743, - "src": "4832:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 763, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 745, - "src": "4849:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 762, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "4839:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4839:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 765, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 747, - "src": "4856:9:6", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 766, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "4867:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 757, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "4799:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4799:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4799:74:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 756, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "4776:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4776:107:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4755:128:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 774, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4945:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 773, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4940:4:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 775, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4940:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 777, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4957:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4952:4:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4952:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 779, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3869, - "src": "4961:4:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$786", - "typeString": "contract GnosisSafeTeamEdition" - } - }, - { - "argumentTypes": null, - "id": 780, - "name": "safeTxHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 755, - "src": "4967:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$786", - "typeString": "contract GnosisSafeTeamEdition" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 771, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "4923:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 772, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4923:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4923:55:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 770, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "4900:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4900:88:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 753, - "id": 783, - "nodeType": "Return", - "src": "4893:95:6" - } - ] - }, - "documentation": "@dev Returns hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param nonce Transaction nonce.\n @return Transaction hash.", - "id": 785, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 750, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 741, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "4566:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 740, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4566:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 743, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "4587:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 742, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4587:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 745, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "4611:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 744, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4611:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 747, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "4632:24:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 746, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "4632:14:6", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 749, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "4667:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 748, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4667:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4556:130:6" - }, - "payable": false, - "returnParameters": { - "id": 753, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 752, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "4732:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 751, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4732:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4731:9:6" - }, - "scope": 786, - "src": "4529:466:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 787, - "src": "272:4725:6" - } - ], - "src": "0:4998:6" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafeTeamEdition.sol", - "exportedSymbols": { - "GnosisSafeTeamEdition": [ - 786 - ] - }, - "id": 787, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 531, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", - "file": "./GnosisSafe.sol", - "id": 532, - "nodeType": "ImportDirective", - "scope": 787, - "sourceUnit": 209, - "src": "24:26:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", - "file": "./MasterCopy.sol", - "id": 533, - "nodeType": "ImportDirective", - "scope": 787, - "sourceUnit": 814, - "src": "51:26:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 534, - "name": "MasterCopy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 813, - "src": "306:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$813", - "typeString": "contract MasterCopy" - } - }, - "id": 535, - "nodeType": "InheritanceSpecifier", - "src": "306:10:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 536, - "name": "GnosisSafe", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 208, - "src": "318:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$208", - "typeString": "contract GnosisSafe" - } - }, - "id": 537, - "nodeType": "InheritanceSpecifier", - "src": "318:10:6" - } - ], - "contractDependencies": [ - 208, - 153, - 37, - 813, - 1180, - 1588, - 1765 - ], - "contractKind": "contract", - "documentation": "@title Gnosis Safe Team Edition - A multisignature wallet with support for confirmations.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 786, - "linearizedBaseContracts": [ - 786, - 208, - 1588, - 1180, - 153, - 37, - 813, - 1765 - ], - "name": "GnosisSafeTeamEdition", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 540, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "336:56:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 538, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "336:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "476e6f7369732053616665205465616d2045646974696f6e", - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "366:26:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_69b1cb372bb47730ba653a0e87363aa6de8337d13ed5852e6fe3ba4e2004a81e", - "typeString": "literal_string \"Gnosis Safe Team Edition\"" - }, - "value": "Gnosis Safe Team Edition" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 543, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "399:40:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 541, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "399:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e31", - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "432:7:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" - }, - "value": "0.0.1" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 546, - "name": "SAFE_TX_TYPEHASH", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "561:109:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 544, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "561:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307835643162626134386666343739656238613838656336303239663662356565626338303563376463623837343730643562313132316433366438323463383733", - "id": 545, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "604:66:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_42114085481813550712033693253853890854456273647728279042821730599331164375155_by_1", - "typeString": "int_const 4211...(69 digits omitted)...5155" - }, - "value": "0x5d1bba48ff479eb8a88ec6029f6b5eebc805c7dcb87470d5b1121d36d824c873" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 550, - "name": "isExecuted", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "768:46:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 549, - "keyType": { - "id": 547, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "777:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "768:28:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 548, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "788:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 556, - "name": "isApproved", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "1002:66:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(bytes32 => mapping(address => uint256))" - }, - "typeName": { - "id": 555, - "keyType": { - "id": 551, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1011:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1002:48:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(bytes32 => mapping(address => uint256))" - }, - "valueType": { - "id": 554, - "keyType": { - "id": 552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1030:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1022:27:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 553, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1041:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 589, - "nodeType": "Block", - "src": "1350:358:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 562, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "1438:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 563, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "1445:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1445:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1438:18:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 566, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1460:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1438:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "53656e646572206973206e6f7420616e206f776e6572", - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1463:24:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b22a5f47ffb62866097c90f90b5b53f76973769c84a10c62e12a07eb2ba1ef4a", - "typeString": "literal_string \"Sender is not an owner\"" - }, - "value": "Sender is not an owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b22a5f47ffb62866097c90f90b5b53f76973769c84a10c62e12a07eb2ba1ef4a", - "typeString": "literal_string \"Sender is not an owner\"" - } - ], - "id": 561, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "1430:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1430:58:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 570, - "nodeType": "ExpressionStatement", - "src": "1430:58:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 572, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "1578:10:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 574, - "indexExpression": { - "argumentTypes": null, - "id": 573, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 558, - "src": "1589:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1578:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1609:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1578:32:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "53616665207472616e73616374696f6e20616c7265616479206578656375746564", - "id": 577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1612:35:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", - "typeString": "literal_string \"Safe transaction already executed\"" - }, - "value": "Safe transaction already executed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", - "typeString": "literal_string \"Safe transaction already executed\"" - } - ], - "id": 571, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "1570:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1570:78:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 579, - "nodeType": "ExpressionStatement", - "src": "1570:78:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 580, - "name": "isApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "1658:10:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(bytes32 => mapping(address => uint256))" - } - }, - "id": 584, - "indexExpression": { - "argumentTypes": null, - "id": 581, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 558, - "src": "1669:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1658:27:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 585, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 582, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "1686:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1686:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1658:39:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 586, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1700:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1658:43:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 588, - "nodeType": "ExpressionStatement", - "src": "1658:43:6" - } - ] - }, - "documentation": "@dev Allows to confirm a Safe transaction with a regular transaction.\n This can only be done from an owner address.\n @param transactionHash Hash of the Safe transaction.", - "id": 590, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveTransactionByHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 559, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 558, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 590, - "src": "1306:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 557, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1306:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1305:25:6" - }, - "payable": false, - "returnParameters": { - "id": 560, - "nodeType": "ParameterList", - "parameters": [], - "src": "1350:0:6" - }, - "scope": 786, - "src": "1272:436:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 613, - "nodeType": "Block", - "src": "2328:96:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 605, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "2382:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 606, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "2386:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "2393:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 608, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "2399:9:6", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 609, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "2410:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "getTransactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "2363:18:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2363:53:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 603, - "name": "approveTransactionByHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 590, - "src": "2338:24:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - } - }, - "id": 611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2338:79:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 612, - "nodeType": "ExpressionStatement", - "src": "2338:79:6" - } - ] - }, - "documentation": "@dev Allows to confirm a Safe transaction with a regular transaction.\n This can only be done from an owner address.\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @param nonce Nonce used for this Safe transaction.", - "id": 614, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveTransactionWithParameters", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 592, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 614, - "src": "2188:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 591, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2188:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 594, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 614, - "src": "2209:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 593, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2209:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 596, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 614, - "src": "2233:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 595, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2233:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 614, - "src": "2254:24:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 597, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "2254:14:6", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 614, - "src": "2289:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2289:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2178:130:6" - }, - "payable": false, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2328:0:6" - }, - "scope": 786, - "src": "2137:287:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 668, - "nodeType": "Block", - "src": "3050:434:6", - "statements": [ - { - "assignments": [ - 628 - ], - "declarations": [ - { - "constant": false, - "id": 628, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 669, - "src": "3060:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 627, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3060:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 636, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "3105:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 618, - "src": "3109:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 632, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "3116:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 633, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 622, - "src": "3122:9:6", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 634, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 624, - "src": "3133:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 629, - "name": "getTransactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "3086:18:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" - } - }, - "id": 635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3086:53:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3060:79:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 638, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "3157:10:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 640, - "indexExpression": { - "argumentTypes": null, - "id": 639, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 628, - "src": "3168:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3157:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3188:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3157:32:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "53616665207472616e73616374696f6e20616c7265616479206578656375746564", - "id": 643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3191:35:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", - "typeString": "literal_string \"Safe transaction already executed\"" - }, - "value": "Safe transaction already executed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", - "typeString": "literal_string \"Safe transaction already executed\"" - } - ], - "id": 637, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "3149:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3149:78:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 645, - "nodeType": "ExpressionStatement", - "src": "3149:78:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 647, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 628, - "src": "3264:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 646, - "name": "checkAndClearConfirmations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "3237:26:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - } - }, - "id": 648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3237:43:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 649, - "nodeType": "ExpressionStatement", - "src": "3237:43:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 650, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "3343:10:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 652, - "indexExpression": { - "argumentTypes": null, - "id": 651, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 628, - "src": "3354:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3343:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3373:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3343:31:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 655, - "nodeType": "ExpressionStatement", - "src": "3343:31:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 658, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "3400:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 659, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 618, - "src": "3404:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 660, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "3411:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 661, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 622, - "src": "3417:9:6", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 662, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "3428:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3428:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 657, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "3392:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3392:46:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f7420657865637574652073616665207472616e73616374696f6e", - "id": 665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3440:36:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d12b254798790cac45e0b54201b0ecf8f3257f9e4c1cfc4633e272006616c878", - "typeString": "literal_string \"Could not execute safe transaction\"" - }, - "value": "Could not execute safe transaction" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d12b254798790cac45e0b54201b0ecf8f3257f9e4c1cfc4633e272006616c878", - "typeString": "literal_string \"Could not execute safe transaction\"" - } - ], - "id": 656, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "3384:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3384:93:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 667, - "nodeType": "ExpressionStatement", - "src": "3384:93:6" - } - ] - }, - "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners. If the sender is an owner this is automatically confirmed.\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @param nonce Nonce used for this Safe transaction.", - "id": 669, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "execTransactionIfApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 625, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 616, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 669, - "src": "2910:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 615, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2910:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 618, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 669, - "src": "2931:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 617, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2931:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 620, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 669, - "src": "2955:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 619, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2955:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 622, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 669, - "src": "2976:24:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 621, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "2976:14:6", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 624, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 669, - "src": "3011:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 623, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3011:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2900:130:6" - }, - "payable": false, - "returnParameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [], - "src": "3050:0:6" - }, - "scope": 786, - "src": "2866:618:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 738, - "nodeType": "Block", - "src": "3572:679:6", - "statements": [ - { - "assignments": [ - 677 - ], - "declarations": [ - { - "constant": false, - "id": 677, - "name": "approvals", - "nodeType": "VariableDeclaration", - "scope": 739, - "src": "3582:37:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 676, - "keyType": { - "id": 674, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3590:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3582:27:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 675, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3601:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 681, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 678, - "name": "isApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "3622:10:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(bytes32 => mapping(address => uint256))" - } - }, - "id": 680, - "indexExpression": { - "argumentTypes": null, - "id": 679, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 671, - "src": "3633:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3622:27:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3582:67:6" - }, - { - "assignments": [ - 683 - ], - "declarations": [ - { - "constant": false, - "id": 683, - "name": "confirmations", - "nodeType": "VariableDeclaration", - "scope": 739, - "src": "3659:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 682, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3659:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 685, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 684, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3683:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3659:25:6" - }, - { - "assignments": [ - 687 - ], - "declarations": [ - { - "constant": false, - "id": 687, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 739, - "src": "3736:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 686, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3736:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 691, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 688, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "3759:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 690, - "indexExpression": { - "argumentTypes": null, - "id": 689, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "3766:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3759:23:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3736:46:6" - }, - { - "body": { - "id": 729, - "nodeType": "Block", - "src": "3832:340:6", - "statements": [ - { - "assignments": [ - 696 - ], - "declarations": [ - { - "constant": false, - "id": 696, - "name": "ownerConfirmed", - "nodeType": "VariableDeclaration", - "scope": 739, - "src": "3846:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 695, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3846:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 702, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 697, - "name": "approvals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "3868:9:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 699, - "indexExpression": { - "argumentTypes": null, - "id": 698, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "3878:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3868:23:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 700, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3895:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3868:28:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3846:50:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 703, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "3913:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 704, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "3929:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3929:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3913:26:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "ownerConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "3943:14:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3913:44:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 722, - "nodeType": "IfStatement", - "src": "3910:203:6", - "trueBody": { - "id": 721, - "nodeType": "Block", - "src": "3959:154:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 709, - "name": "ownerConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "3981:14:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 717, - "nodeType": "IfStatement", - "src": "3977:88:6", - "trueBody": { - "id": 716, - "nodeType": "Block", - "src": "3997:68:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 710, - "name": "approvals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "4019:9:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 712, - "indexExpression": { - "argumentTypes": null, - "id": 711, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "4029:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4019:23:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4045:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4019:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 715, - "nodeType": "ExpressionStatement", - "src": "4019:27:6" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4082:16:6", - "subExpression": { - "argumentTypes": null, - "id": 718, - "name": "confirmations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 683, - "src": "4082:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 720, - "nodeType": "ExpressionStatement", - "src": "4082:16:6" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 723, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "4126:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 724, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4141:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 726, - "indexExpression": { - "argumentTypes": null, - "id": 725, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "4148:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4141:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4126:35:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 728, - "nodeType": "ExpressionStatement", - "src": "4126:35:6" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 692, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "3799:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 693, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "3815:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3799:31:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 730, - "nodeType": "WhileStatement", - "src": "3792:380:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 732, - "name": "confirmations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 683, - "src": "4189:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 733, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "4206:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4189:26:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4217:26:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b345da2aaad39251196728cc7926bed93e890843c2a47c2cdd1122427d828094", - "typeString": "literal_string \"Not enough confirmations\"" - }, - "value": "Not enough confirmations" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b345da2aaad39251196728cc7926bed93e890843c2a47c2cdd1122427d828094", - "typeString": "literal_string \"Not enough confirmations\"" - } - ], - "id": 731, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3831, - 3832 - ], - "referencedDeclaration": 3832, - "src": "4181:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4181:63:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 737, - "nodeType": "ExpressionStatement", - "src": "4181:63:6" - } - ] - }, - "documentation": null, - "id": 739, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "checkAndClearConfirmations", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 672, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 671, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 739, - "src": "3526:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 670, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3526:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3525:25:6" - }, - "payable": false, - "returnParameters": { - "id": 673, - "nodeType": "ParameterList", - "parameters": [], - "src": "3572:0:6" - }, - "scope": 786, - "src": "3490:761:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 784, - "nodeType": "Block", - "src": "4745:250:6", - "statements": [ - { - "assignments": [ - 755 - ], - "declarations": [ - { - "constant": false, - "id": 755, - "name": "safeTxHash", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "4755:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 754, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4755:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 769, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 759, - "name": "SAFE_TX_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 546, - "src": "4810:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 760, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "4828:2:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 761, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 743, - "src": "4832:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 763, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 745, - "src": "4849:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 762, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "4839:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4839:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 765, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 747, - "src": "4856:9:6", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 766, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "4867:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 757, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "4799:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4799:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4799:74:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 756, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "4776:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4776:107:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4755:128:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 774, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4945:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 773, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4940:4:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 775, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4940:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 777, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4957:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4952:4:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4952:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 779, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3869, - "src": "4961:4:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$786", - "typeString": "contract GnosisSafeTeamEdition" - } - }, - { - "argumentTypes": null, - "id": 780, - "name": "safeTxHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 755, - "src": "4967:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$786", - "typeString": "contract GnosisSafeTeamEdition" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 771, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "4923:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 772, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4923:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4923:55:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 770, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "4900:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4900:88:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 753, - "id": 783, - "nodeType": "Return", - "src": "4893:95:6" - } - ] - }, - "documentation": "@dev Returns hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param nonce Transaction nonce.\n @return Transaction hash.", - "id": 785, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 750, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 741, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "4566:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 740, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4566:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 743, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "4587:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 742, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4587:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 745, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "4611:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 744, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4611:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 747, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "4632:24:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 746, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "4632:14:6", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 749, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "4667:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 748, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4667:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4556:130:6" - }, - "payable": false, - "returnParameters": { - "id": 753, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 752, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "4732:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 751, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4732:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4731:9:6" - }, - "scope": 786, - "src": "4529:466:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 787, - "src": "272:4725:6" - } - ], - "src": "0:4998:6" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0xf8033d26d591c4656feb365972f359e3e5991417", - "transactionHash": "0xce05657997caa928720038b6b1b4847da5f547fb64aac7316f723321748170c1" - }, - "1534750848541": { - "events": {}, - "links": {}, - "address": "0x21a59654176f2689d12e828b77a783072cd26680", - "transactionHash": "0x8153582a7e15403e4a646684cb3a67b1987a9d29bc4780fedc649a3d4a9b8ad7" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:50:29.706Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/ISignatureValidator.json b/safe-contracts/build/contracts/ISignatureValidator.json new file mode 100644 index 00000000..7e8b6744 --- /dev/null +++ b/safe-contracts/build/contracts/ISignatureValidator.json @@ -0,0 +1,339 @@ +{ + "contractName": "ISignatureValidator", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_data", + "type": "bytes" + }, + { + "name": "_signature", + "type": "bytes" + } + ], + "name": "isValidSignature", + "outputs": [ + { + "name": "isValid", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity 0.4.24;\n\ncontract ISignatureValidator {\n /**\n * @dev Should return whether the signature provided is valid for the provided data\n * @param _data Arbitrary length data signed on the behalf of address(this)\n * @param _signature Signature byte array associated with _data\n *\n * MUST return a bool upon valid or invalid signature with corresponding _data\n * MUST take (bytes, bytes) as arguments\n */ \n function isValidSignature(\n bytes _data, \n bytes _signature)\n public\n returns (bool isValid); \n}", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", + "ast": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", + "exportedSymbols": { + "ISignatureValidator": [ + 1803 + ] + }, + "id": 1804, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1793, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:13" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 1803, + "linearizedBaseContracts": [ + 1803 + ], + "name": "ISignatureValidator", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "@dev Should return whether the signature provided is valid for the provided data\n@param _data Arbitrary length data signed on the behalf of address(this)\n@param _signature Signature byte array associated with _data\n * MUST return a bool upon valid or invalid signature with corresponding _data\nMUST take (bytes, bytes) as arguments", + "id": 1802, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "isValidSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1798, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1795, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 1802, + "src": "476:11:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1794, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "476:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1797, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1802, + "src": "498:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1796, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "498:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "466:49:13" + }, + "payable": false, + "returnParameters": { + "id": 1801, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1800, + "name": "isValid", + "nodeType": "VariableDeclaration", + "scope": 1802, + "src": "548:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1799, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "548:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "547:14:13" + }, + "scope": 1803, + "src": "441:121:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1804, + "src": "25:540:13" + } + ], + "src": "0:565:13" + }, + "legacyAST": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", + "exportedSymbols": { + "ISignatureValidator": [ + 1803 + ] + }, + "id": 1804, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1793, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:13" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 1803, + "linearizedBaseContracts": [ + 1803 + ], + "name": "ISignatureValidator", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "@dev Should return whether the signature provided is valid for the provided data\n@param _data Arbitrary length data signed on the behalf of address(this)\n@param _signature Signature byte array associated with _data\n * MUST return a bool upon valid or invalid signature with corresponding _data\nMUST take (bytes, bytes) as arguments", + "id": 1802, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "isValidSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1798, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1795, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 1802, + "src": "476:11:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1794, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "476:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1797, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1802, + "src": "498:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1796, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "498:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "466:49:13" + }, + "payable": false, + "returnParameters": { + "id": 1801, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1800, + "name": "isValid", + "nodeType": "VariableDeclaration", + "scope": 1802, + "src": "548:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1799, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "548:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "547:14:13" + }, + "scope": 1803, + "src": "441:121:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1804, + "src": "25:540:13" + } + ], + "src": "0:565:13" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-09-26T08:32:07.644Z" +} \ No newline at end of file diff --git a/safe-contracts/build/contracts/MasterCopy.json b/safe-contracts/build/contracts/MasterCopy.json index ed79e847..5c63b85a 100644 --- a/safe-contracts/build/contracts/MasterCopy.json +++ b/safe-contracts/build/contracts/MasterCopy.json @@ -16,40 +16,40 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610276806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820243ca7a44eb0464a47c14309cc3a29e407df6e966674981a787df22c0d9280220029", - "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820243ca7a44eb0464a47c14309cc3a29e407df6e966674981a787df22c0d9280220029", - "sourceMap": "203:673:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:673:7;;;;;;;", - "deployedSourceMap": "203:673:7:-;;;;;;;;;;;;;;;;;;;;;;;;626:248;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:7;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o", + "bytecode": "0x608060405234801561001057600080fd5b50610276806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582035e9d5d611938f796affd4397aed671c5c4079783e0a67a874440cb154a411440029", + "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582035e9d5d611938f796affd4397aed671c5c4079783e0a67a874440cb154a411440029", + "sourceMap": "203:673:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:673:9;;;;;;;", + "deployedSourceMap": "203:673:9:-;;;;;;;;;;;;;;;;;;;;;;;;626:248;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o", "source": "pragma solidity 0.4.24;\nimport \"./SelfAuthorized.sol\";\n\n\n/// @title MasterCopy - Base for master copy contracts (should always be first super contract)\n/// @author Richard Meissner - \ncontract MasterCopy is SelfAuthorized {\n // masterCopy always needs to be first declared variable, to ensure that it is at the same location as in the Proxy contract.\n // It should also always be ensured that the address is stored alone (uses a full word)\n address masterCopy;\n\n /// @dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n /// @param _masterCopy New contract address.\n function changeMasterCopy(address _masterCopy)\n public\n authorized\n {\n // Master copy address cannot be null.\n require(_masterCopy != 0, \"Invalid master copy address provided\");\n masterCopy = _masterCopy;\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", "exportedSymbols": { "MasterCopy": [ - 813 + 1693 ] }, - "id": 814, + "id": 1694, "nodeType": "SourceUnit", "nodes": [ { - "id": 788, + "id": 1668, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:7" + "src": "0:23:9" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", "file": "./SelfAuthorized.sol", - "id": 789, + "id": 1669, "nodeType": "ImportDirective", - "scope": 814, - "sourceUnit": 1766, - "src": "24:30:7", + "scope": 1694, + "sourceUnit": 1736, + "src": "24:30:9", "symbolAliases": [], "unitAlias": "" }, @@ -59,42 +59,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 790, + "id": 1670, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1765, - "src": "226:14:7", + "referencedDeclaration": 1735, + "src": "226:14:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1765", + "typeIdentifier": "t_contract$_SelfAuthorized_$1735", "typeString": "contract SelfAuthorized" } }, - "id": 791, + "id": 1671, "nodeType": "InheritanceSpecifier", - "src": "226:14:7" + "src": "226:14:9" } ], "contractDependencies": [ - 1765 + 1735 ], "contractKind": "contract", "documentation": "@title MasterCopy - Base for master copy contracts (should always be first super contract)\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 813, + "id": 1693, "linearizedBaseContracts": [ - 813, - 1765 + 1693, + 1735 ], "name": "MasterCopy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 793, + "id": 1673, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 813, - "src": "465:18:7", + "scope": 1693, + "src": "465:18:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -102,10 +102,10 @@ "typeString": "address" }, "typeName": { - "id": 792, + "id": 1672, "name": "address", "nodeType": "ElementaryTypeName", - "src": "465:7:7", + "src": "465:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -116,9 +116,9 @@ }, { "body": { - "id": 811, + "id": 1691, "nodeType": "Block", - "src": "711:163:7", + "src": "711:163:9", "statements": [ { "expression": { @@ -130,19 +130,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 803, + "id": 1683, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 801, + "id": 1681, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 795, - "src": "776:11:7", + "referencedDeclaration": 1675, + "src": "776:11:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -153,14 +153,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 802, + "id": 1682, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "791:1:7", + "src": "791:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -168,7 +168,7 @@ }, "value": "0" }, - "src": "776:16:7", + "src": "776:16:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -177,14 +177,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 804, + "id": 1684, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "794:38:7", + "src": "794:38:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", @@ -204,21 +204,21 @@ "typeString": "literal_string \"Invalid master copy address provided\"" } ], - "id": 800, + "id": 1680, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "768:7:7", + "referencedDeclaration": 4495, + "src": "768:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 805, + "id": 1685, "isConstant": false, "isLValue": false, "isPure": false, @@ -226,32 +226,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "768:65:7", + "src": "768:65:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 806, + "id": 1686, "nodeType": "ExpressionStatement", - "src": "768:65:7" + "src": "768:65:9" }, { "expression": { "argumentTypes": null, - "id": 809, + "id": 1689, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 807, + "id": 1687, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 793, - "src": "843:10:7", + "referencedDeclaration": 1673, + "src": "843:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -261,68 +261,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 808, + "id": 1688, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 795, - "src": "856:11:7", + "referencedDeclaration": 1675, + "src": "856:11:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "843:24:7", + "src": "843:24:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 810, + "id": 1690, "nodeType": "ExpressionStatement", - "src": "843:24:7" + "src": "843:24:9" } ] }, "documentation": "@dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n @param _masterCopy New contract address.", - "id": 812, + "id": 1692, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 798, + "id": 1678, "modifierName": { "argumentTypes": null, - "id": 797, + "id": 1677, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "696:10:7", + "referencedDeclaration": 1734, + "src": "696:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "696:10:7" + "src": "696:10:9" } ], "name": "changeMasterCopy", "nodeType": "FunctionDefinition", "parameters": { - "id": 796, + "id": 1676, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 795, + "id": 1675, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 812, - "src": "652:19:7", + "scope": 1692, + "src": "652:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -330,10 +330,10 @@ "typeString": "address" }, "typeName": { - "id": 794, + "id": 1674, "name": "address", "nodeType": "ElementaryTypeName", - "src": "652:7:7", + "src": "652:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -343,56 +343,56 @@ "visibility": "internal" } ], - "src": "651:21:7" + "src": "651:21:9" }, "payable": false, "returnParameters": { - "id": 799, + "id": 1679, "nodeType": "ParameterList", "parameters": [], - "src": "711:0:7" + "src": "711:0:9" }, - "scope": 813, - "src": "626:248:7", + "scope": 1693, + "src": "626:248:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 814, - "src": "203:673:7" + "scope": 1694, + "src": "203:673:9" } ], - "src": "0:877:7" + "src": "0:877:9" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", "exportedSymbols": { "MasterCopy": [ - 813 + 1693 ] }, - "id": 814, + "id": 1694, "nodeType": "SourceUnit", "nodes": [ { - "id": 788, + "id": 1668, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:7" + "src": "0:23:9" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", "file": "./SelfAuthorized.sol", - "id": 789, + "id": 1669, "nodeType": "ImportDirective", - "scope": 814, - "sourceUnit": 1766, - "src": "24:30:7", + "scope": 1694, + "sourceUnit": 1736, + "src": "24:30:9", "symbolAliases": [], "unitAlias": "" }, @@ -402,42 +402,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 790, + "id": 1670, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1765, - "src": "226:14:7", + "referencedDeclaration": 1735, + "src": "226:14:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1765", + "typeIdentifier": "t_contract$_SelfAuthorized_$1735", "typeString": "contract SelfAuthorized" } }, - "id": 791, + "id": 1671, "nodeType": "InheritanceSpecifier", - "src": "226:14:7" + "src": "226:14:9" } ], "contractDependencies": [ - 1765 + 1735 ], "contractKind": "contract", "documentation": "@title MasterCopy - Base for master copy contracts (should always be first super contract)\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 813, + "id": 1693, "linearizedBaseContracts": [ - 813, - 1765 + 1693, + 1735 ], "name": "MasterCopy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 793, + "id": 1673, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 813, - "src": "465:18:7", + "scope": 1693, + "src": "465:18:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -445,10 +445,10 @@ "typeString": "address" }, "typeName": { - "id": 792, + "id": 1672, "name": "address", "nodeType": "ElementaryTypeName", - "src": "465:7:7", + "src": "465:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -459,9 +459,9 @@ }, { "body": { - "id": 811, + "id": 1691, "nodeType": "Block", - "src": "711:163:7", + "src": "711:163:9", "statements": [ { "expression": { @@ -473,19 +473,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 803, + "id": 1683, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 801, + "id": 1681, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 795, - "src": "776:11:7", + "referencedDeclaration": 1675, + "src": "776:11:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -496,14 +496,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 802, + "id": 1682, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "791:1:7", + "src": "791:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -511,7 +511,7 @@ }, "value": "0" }, - "src": "776:16:7", + "src": "776:16:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -520,14 +520,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 804, + "id": 1684, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "794:38:7", + "src": "794:38:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", @@ -547,21 +547,21 @@ "typeString": "literal_string \"Invalid master copy address provided\"" } ], - "id": 800, + "id": 1680, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "768:7:7", + "referencedDeclaration": 4495, + "src": "768:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 805, + "id": 1685, "isConstant": false, "isLValue": false, "isPure": false, @@ -569,32 +569,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "768:65:7", + "src": "768:65:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 806, + "id": 1686, "nodeType": "ExpressionStatement", - "src": "768:65:7" + "src": "768:65:9" }, { "expression": { "argumentTypes": null, - "id": 809, + "id": 1689, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 807, + "id": 1687, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 793, - "src": "843:10:7", + "referencedDeclaration": 1673, + "src": "843:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -604,68 +604,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 808, + "id": 1688, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 795, - "src": "856:11:7", + "referencedDeclaration": 1675, + "src": "856:11:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "843:24:7", + "src": "843:24:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 810, + "id": 1690, "nodeType": "ExpressionStatement", - "src": "843:24:7" + "src": "843:24:9" } ] }, "documentation": "@dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n @param _masterCopy New contract address.", - "id": 812, + "id": 1692, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 798, + "id": 1678, "modifierName": { "argumentTypes": null, - "id": 797, + "id": 1677, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "696:10:7", + "referencedDeclaration": 1734, + "src": "696:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "696:10:7" + "src": "696:10:9" } ], "name": "changeMasterCopy", "nodeType": "FunctionDefinition", "parameters": { - "id": 796, + "id": 1676, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 795, + "id": 1675, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 812, - "src": "652:19:7", + "scope": 1692, + "src": "652:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -673,10 +673,10 @@ "typeString": "address" }, "typeName": { - "id": 794, + "id": 1674, "name": "address", "nodeType": "ElementaryTypeName", - "src": "652:7:7", + "src": "652:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -686,27 +686,27 @@ "visibility": "internal" } ], - "src": "651:21:7" + "src": "651:21:9" }, "payable": false, "returnParameters": { - "id": 799, + "id": 1679, "nodeType": "ParameterList", "parameters": [], - "src": "711:0:7" + "src": "711:0:9" }, - "scope": 813, - "src": "626:248:7", + "scope": 1693, + "src": "626:248:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 814, - "src": "203:673:7" + "scope": 1694, + "src": "203:673:9" } ], - "src": "0:877:7" + "src": "0:877:9" }, "compiler": { "name": "solc", @@ -714,5 +714,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.087Z" + "updatedAt": "2018-09-26T08:32:07.643Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/Migrations.json b/safe-contracts/build/contracts/Migrations.json index 8d638b93..f6652576 100644 --- a/safe-contracts/build/contracts/Migrations.json +++ b/safe-contracts/build/contracts/Migrations.json @@ -66,22 +66,22 @@ ], "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820395a1faf61b0f17e3924c1d3e3b1152739b523adb57dd5b79bb0bea6897a5ff70029", "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820395a1faf61b0f17e3924c1d3e3b1152739b523adb57dd5b79bb0bea6897a5ff70029", - "sourceMap": "25:572:8:-;;;191:68;8:9:-1;5:2;;;30:1;27;20:12;5:2;191:68:8;242:10;234:5;;:18;;;;;;;;;;;;;;;;;;25:572;;;;;;", - "deployedSourceMap": "25:572:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;400:195;;8:9:-1;5:2;;;30:1;27;20:12;5:2;400:195:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;77:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;77:36:8;;;;;;;;;;;;;;;;;;;;;;;51:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;51:20:8;;;;;;;;;;;;;;;;;;;;;;;;;;;265:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;265:129:8;;;;;;;;;;;;;;;;;;;;;;;;;;400:195;486:19;170:5;;;;;;;;;;;156:19;;:10;:19;;;152:26;;;519:11;486:45;;541:8;:21;;;563:24;;541:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;541:47:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;541:47:8;;;;152:26;400:195;;:::o;77:36::-;;;;:::o;51:20::-;;;;;;;;;;;;;:::o;265:129::-;170:5;;;;;;;;;;;156:19;;:10;:19;;;152:26;;;378:9;351:24;:36;;;;152:26;265:129;:::o", + "sourceMap": "25:572:1:-;;;191:68;8:9:-1;5:2;;;30:1;27;20:12;5:2;191:68:1;242:10;234:5;;:18;;;;;;;;;;;;;;;;;;25:572;;;;;;", + "deployedSourceMap": "25:572:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;400:195;;8:9:-1;5:2;;;30:1;27;20:12;5:2;400:195:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;77:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;77:36:1;;;;;;;;;;;;;;;;;;;;;;;51:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;51:20:1;;;;;;;;;;;;;;;;;;;;;;;;;;;265:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;265:129:1;;;;;;;;;;;;;;;;;;;;;;;;;;400:195;486:19;170:5;;;;;;;;;;;156:19;;:10;:19;;;152:26;;;519:11;486:45;;541:8;:21;;;563:24;;541:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;541:47:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;541:47:1;;;;152:26;400:195;;:::o;77:36::-;;;;:::o;51:20::-;;;;;;;;;;;;;:::o;265:129::-;170:5;;;;;;;;;;;156:19;;:10;:19;;;152:26;;;378:9;351:24;:36;;;;152:26;265:129;:::o", "source": "pragma solidity ^0.4.4;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n constructor()\n public\n {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed)\n public\n restricted\n {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address)\n public\n restricted\n {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Migrations.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ - 870 + 749 ] }, - "id": 871, + "id": 750, "nodeType": "SourceUnit", "nodes": [ { - "id": 815, + "id": 694, "literals": [ "solidity", "^", @@ -89,7 +89,7 @@ ".4" ], "nodeType": "PragmaDirective", - "src": "0:23:8" + "src": "0:23:1" }, { "baseContracts": [], @@ -97,20 +97,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 870, + "id": 749, "linearizedBaseContracts": [ - 870 + 749 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 817, + "id": 696, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 870, - "src": "51:20:8", + "scope": 749, + "src": "51:20:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -118,10 +118,10 @@ "typeString": "address" }, "typeName": { - "id": 816, + "id": 695, "name": "address", "nodeType": "ElementaryTypeName", - "src": "51:7:8", + "src": "51:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -132,11 +132,11 @@ }, { "constant": false, - "id": 819, + "id": 698, "name": "last_completed_migration", "nodeType": "VariableDeclaration", - "scope": 870, - "src": "77:36:8", + "scope": 749, + "src": "77:36:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -144,10 +144,10 @@ "typeString": "uint256" }, "typeName": { - "id": 818, + "id": 697, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "77:4:8", + "src": "77:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -158,9 +158,9 @@ }, { "body": { - "id": 827, + "id": 706, "nodeType": "Block", - "src": "142:43:8", + "src": "142:43:1", "statements": [ { "condition": { @@ -169,7 +169,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 824, + "id": 703, "isConstant": false, "isLValue": false, "isPure": false, @@ -178,18 +178,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 821, + "id": 700, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "156:3:8", + "referencedDeclaration": 4491, + "src": "156:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 822, + "id": 701, "isConstant": false, "isLValue": false, "isPure": false, @@ -197,7 +197,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "156:10:8", + "src": "156:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -207,70 +207,70 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 823, + "id": 702, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 817, - "src": "170:5:8", + "referencedDeclaration": 696, + "src": "170:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "156:19:8", + "src": "156:19:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 826, + "id": 705, "nodeType": "IfStatement", - "src": "152:26:8", + "src": "152:26:1", "trueBody": { - "id": 825, + "id": 704, "nodeType": "PlaceholderStatement", - "src": "177:1:8" + "src": "177:1:1" } } ] }, "documentation": null, - "id": 828, + "id": 707, "name": "restricted", "nodeType": "ModifierDefinition", "parameters": { - "id": 820, + "id": 699, "nodeType": "ParameterList", "parameters": [], - "src": "139:2:8" + "src": "139:2:1" }, - "src": "120:65:8", + "src": "120:65:1", "visibility": "internal" }, { "body": { - "id": 836, + "id": 715, "nodeType": "Block", - "src": "224:35:8", + "src": "224:35:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 834, + "id": 713, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 831, + "id": 710, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 817, - "src": "234:5:8", + "referencedDeclaration": 696, + "src": "234:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -282,18 +282,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 832, + "id": 711, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "242:3:8", + "referencedDeclaration": 4491, + "src": "242:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 833, + "id": 712, "isConstant": false, "isLValue": false, "isPure": false, @@ -301,26 +301,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "242:10:8", + "src": "242:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "234:18:8", + "src": "234:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 835, + "id": 714, "nodeType": "ExpressionStatement", - "src": "234:18:8" + "src": "234:18:1" } ] }, "documentation": null, - "id": 837, + "id": 716, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -328,46 +328,46 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 829, + "id": 708, "nodeType": "ParameterList", "parameters": [], - "src": "202:2:8" + "src": "202:2:1" }, "payable": false, "returnParameters": { - "id": 830, + "id": 709, "nodeType": "ParameterList", "parameters": [], - "src": "224:0:8" + "src": "224:0:1" }, - "scope": 870, - "src": "191:68:8", + "scope": 749, + "src": "191:68:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 848, + "id": 727, "nodeType": "Block", - "src": "341:53:8", + "src": "341:53:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 846, + "id": 725, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 844, + "id": 723, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 819, - "src": "351:24:8", + "referencedDeclaration": 698, + "src": "351:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -377,68 +377,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 845, + "id": 724, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 839, - "src": "378:9:8", + "referencedDeclaration": 718, + "src": "378:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "351:36:8", + "src": "351:36:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 847, + "id": 726, "nodeType": "ExpressionStatement", - "src": "351:36:8" + "src": "351:36:1" } ] }, "documentation": null, - "id": 849, + "id": 728, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 842, + "id": 721, "modifierName": { "argumentTypes": null, - "id": 841, + "id": 720, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "326:10:8", + "referencedDeclaration": 707, + "src": "326:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "326:10:8" + "src": "326:10:1" } ], "name": "setCompleted", "nodeType": "FunctionDefinition", "parameters": { - "id": 840, + "id": 719, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 839, + "id": 718, "name": "completed", "nodeType": "VariableDeclaration", - "scope": 849, - "src": "287:14:8", + "scope": 728, + "src": "287:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -446,10 +446,10 @@ "typeString": "uint256" }, "typeName": { - "id": 838, + "id": 717, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "287:4:8", + "src": "287:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -459,54 +459,54 @@ "visibility": "internal" } ], - "src": "286:16:8" + "src": "286:16:1" }, "payable": false, "returnParameters": { - "id": 843, + "id": 722, "nodeType": "ParameterList", "parameters": [], - "src": "341:0:8" + "src": "341:0:1" }, - "scope": 870, - "src": "265:129:8", + "scope": 749, + "src": "265:129:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 868, + "id": 747, "nodeType": "Block", - "src": "476:119:8", + "src": "476:119:1", "statements": [ { "assignments": [ - 857 + 736 ], "declarations": [ { "constant": false, - "id": 857, + "id": 736, "name": "upgraded", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "486:19:8", + "scope": 748, + "src": "486:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$870", + "typeIdentifier": "t_contract$_Migrations_$749", "typeString": "contract Migrations" }, "typeName": { "contractScope": null, - "id": 856, + "id": 735, "name": "Migrations", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 870, - "src": "486:10:8", + "referencedDeclaration": 749, + "src": "486:10:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$870", + "typeIdentifier": "t_contract$_Migrations_$749", "typeString": "contract Migrations" } }, @@ -514,18 +514,18 @@ "visibility": "internal" } ], - "id": 861, + "id": 740, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 859, + "id": 738, "name": "new_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "519:11:8", + "referencedDeclaration": 730, + "src": "519:11:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -539,18 +539,18 @@ "typeString": "address" } ], - "id": 858, + "id": 737, "name": "Migrations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "508:10:8", + "referencedDeclaration": 749, + "src": "508:10:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$870_$", + "typeIdentifier": "t_type$_t_contract$_Migrations_$749_$", "typeString": "type(contract Migrations)" } }, - "id": 860, + "id": 739, "isConstant": false, "isLValue": false, "isPure": false, @@ -558,14 +558,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "508:23:8", + "src": "508:23:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$870", + "typeIdentifier": "t_contract$_Migrations_$749", "typeString": "contract Migrations" } }, "nodeType": "VariableDeclarationStatement", - "src": "486:45:8" + "src": "486:45:1" }, { "expression": { @@ -573,12 +573,12 @@ "arguments": [ { "argumentTypes": null, - "id": 865, + "id": 744, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 819, - "src": "563:24:8", + "referencedDeclaration": 698, + "src": "563:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -594,32 +594,32 @@ ], "expression": { "argumentTypes": null, - "id": 862, + "id": 741, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "541:8:8", + "referencedDeclaration": 736, + "src": "541:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$870", + "typeIdentifier": "t_contract$_Migrations_$749", "typeString": "contract Migrations" } }, - "id": 864, + "id": 743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCompleted", "nodeType": "MemberAccess", - "referencedDeclaration": 849, - "src": "541:21:8", + "referencedDeclaration": 728, + "src": "541:21:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, - "id": 866, + "id": 745, "isConstant": false, "isLValue": false, "isPure": false, @@ -627,57 +627,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "541:47:8", + "src": "541:47:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 867, + "id": 746, "nodeType": "ExpressionStatement", - "src": "541:47:8" + "src": "541:47:1" } ] }, "documentation": null, - "id": 869, + "id": 748, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 854, + "id": 733, "modifierName": { "argumentTypes": null, - "id": 853, + "id": 732, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "461:10:8", + "referencedDeclaration": 707, + "src": "461:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "461:10:8" + "src": "461:10:1" } ], "name": "upgrade", "nodeType": "FunctionDefinition", "parameters": { - "id": 852, + "id": 731, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 851, + "id": 730, "name": "new_address", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "417:19:8", + "scope": 748, + "src": "417:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -685,10 +685,10 @@ "typeString": "address" }, "typeName": { - "id": 850, + "id": 729, "name": "address", "nodeType": "ElementaryTypeName", - "src": "417:7:8", + "src": "417:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -698,40 +698,40 @@ "visibility": "internal" } ], - "src": "416:21:8" + "src": "416:21:1" }, "payable": false, "returnParameters": { - "id": 855, + "id": 734, "nodeType": "ParameterList", "parameters": [], - "src": "476:0:8" + "src": "476:0:1" }, - "scope": 870, - "src": "400:195:8", + "scope": 749, + "src": "400:195:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 871, - "src": "25:572:8" + "scope": 750, + "src": "25:572:1" } ], - "src": "0:598:8" + "src": "0:598:1" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ - 870 + 749 ] }, - "id": 871, + "id": 750, "nodeType": "SourceUnit", "nodes": [ { - "id": 815, + "id": 694, "literals": [ "solidity", "^", @@ -739,7 +739,7 @@ ".4" ], "nodeType": "PragmaDirective", - "src": "0:23:8" + "src": "0:23:1" }, { "baseContracts": [], @@ -747,20 +747,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 870, + "id": 749, "linearizedBaseContracts": [ - 870 + 749 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 817, + "id": 696, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 870, - "src": "51:20:8", + "scope": 749, + "src": "51:20:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -768,10 +768,10 @@ "typeString": "address" }, "typeName": { - "id": 816, + "id": 695, "name": "address", "nodeType": "ElementaryTypeName", - "src": "51:7:8", + "src": "51:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -782,11 +782,11 @@ }, { "constant": false, - "id": 819, + "id": 698, "name": "last_completed_migration", "nodeType": "VariableDeclaration", - "scope": 870, - "src": "77:36:8", + "scope": 749, + "src": "77:36:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -794,10 +794,10 @@ "typeString": "uint256" }, "typeName": { - "id": 818, + "id": 697, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "77:4:8", + "src": "77:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -808,9 +808,9 @@ }, { "body": { - "id": 827, + "id": 706, "nodeType": "Block", - "src": "142:43:8", + "src": "142:43:1", "statements": [ { "condition": { @@ -819,7 +819,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 824, + "id": 703, "isConstant": false, "isLValue": false, "isPure": false, @@ -828,18 +828,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 821, + "id": 700, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "156:3:8", + "referencedDeclaration": 4491, + "src": "156:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 822, + "id": 701, "isConstant": false, "isLValue": false, "isPure": false, @@ -847,7 +847,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "156:10:8", + "src": "156:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -857,70 +857,70 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 823, + "id": 702, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 817, - "src": "170:5:8", + "referencedDeclaration": 696, + "src": "170:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "156:19:8", + "src": "156:19:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 826, + "id": 705, "nodeType": "IfStatement", - "src": "152:26:8", + "src": "152:26:1", "trueBody": { - "id": 825, + "id": 704, "nodeType": "PlaceholderStatement", - "src": "177:1:8" + "src": "177:1:1" } } ] }, "documentation": null, - "id": 828, + "id": 707, "name": "restricted", "nodeType": "ModifierDefinition", "parameters": { - "id": 820, + "id": 699, "nodeType": "ParameterList", "parameters": [], - "src": "139:2:8" + "src": "139:2:1" }, - "src": "120:65:8", + "src": "120:65:1", "visibility": "internal" }, { "body": { - "id": 836, + "id": 715, "nodeType": "Block", - "src": "224:35:8", + "src": "224:35:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 834, + "id": 713, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 831, + "id": 710, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 817, - "src": "234:5:8", + "referencedDeclaration": 696, + "src": "234:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -932,18 +932,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 832, + "id": 711, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "242:3:8", + "referencedDeclaration": 4491, + "src": "242:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 833, + "id": 712, "isConstant": false, "isLValue": false, "isPure": false, @@ -951,26 +951,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "242:10:8", + "src": "242:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "234:18:8", + "src": "234:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 835, + "id": 714, "nodeType": "ExpressionStatement", - "src": "234:18:8" + "src": "234:18:1" } ] }, "documentation": null, - "id": 837, + "id": 716, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -978,46 +978,46 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 829, + "id": 708, "nodeType": "ParameterList", "parameters": [], - "src": "202:2:8" + "src": "202:2:1" }, "payable": false, "returnParameters": { - "id": 830, + "id": 709, "nodeType": "ParameterList", "parameters": [], - "src": "224:0:8" + "src": "224:0:1" }, - "scope": 870, - "src": "191:68:8", + "scope": 749, + "src": "191:68:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 848, + "id": 727, "nodeType": "Block", - "src": "341:53:8", + "src": "341:53:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 846, + "id": 725, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 844, + "id": 723, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 819, - "src": "351:24:8", + "referencedDeclaration": 698, + "src": "351:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1027,68 +1027,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 845, + "id": 724, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 839, - "src": "378:9:8", + "referencedDeclaration": 718, + "src": "378:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "351:36:8", + "src": "351:36:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 847, + "id": 726, "nodeType": "ExpressionStatement", - "src": "351:36:8" + "src": "351:36:1" } ] }, "documentation": null, - "id": 849, + "id": 728, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 842, + "id": 721, "modifierName": { "argumentTypes": null, - "id": 841, + "id": 720, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "326:10:8", + "referencedDeclaration": 707, + "src": "326:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "326:10:8" + "src": "326:10:1" } ], "name": "setCompleted", "nodeType": "FunctionDefinition", "parameters": { - "id": 840, + "id": 719, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 839, + "id": 718, "name": "completed", "nodeType": "VariableDeclaration", - "scope": 849, - "src": "287:14:8", + "scope": 728, + "src": "287:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1096,10 +1096,10 @@ "typeString": "uint256" }, "typeName": { - "id": 838, + "id": 717, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "287:4:8", + "src": "287:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1109,54 +1109,54 @@ "visibility": "internal" } ], - "src": "286:16:8" + "src": "286:16:1" }, "payable": false, "returnParameters": { - "id": 843, + "id": 722, "nodeType": "ParameterList", "parameters": [], - "src": "341:0:8" + "src": "341:0:1" }, - "scope": 870, - "src": "265:129:8", + "scope": 749, + "src": "265:129:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 868, + "id": 747, "nodeType": "Block", - "src": "476:119:8", + "src": "476:119:1", "statements": [ { "assignments": [ - 857 + 736 ], "declarations": [ { "constant": false, - "id": 857, + "id": 736, "name": "upgraded", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "486:19:8", + "scope": 748, + "src": "486:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$870", + "typeIdentifier": "t_contract$_Migrations_$749", "typeString": "contract Migrations" }, "typeName": { "contractScope": null, - "id": 856, + "id": 735, "name": "Migrations", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 870, - "src": "486:10:8", + "referencedDeclaration": 749, + "src": "486:10:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$870", + "typeIdentifier": "t_contract$_Migrations_$749", "typeString": "contract Migrations" } }, @@ -1164,18 +1164,18 @@ "visibility": "internal" } ], - "id": 861, + "id": 740, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 859, + "id": 738, "name": "new_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "519:11:8", + "referencedDeclaration": 730, + "src": "519:11:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1189,18 +1189,18 @@ "typeString": "address" } ], - "id": 858, + "id": 737, "name": "Migrations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "508:10:8", + "referencedDeclaration": 749, + "src": "508:10:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$870_$", + "typeIdentifier": "t_type$_t_contract$_Migrations_$749_$", "typeString": "type(contract Migrations)" } }, - "id": 860, + "id": 739, "isConstant": false, "isLValue": false, "isPure": false, @@ -1208,14 +1208,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "508:23:8", + "src": "508:23:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$870", + "typeIdentifier": "t_contract$_Migrations_$749", "typeString": "contract Migrations" } }, "nodeType": "VariableDeclarationStatement", - "src": "486:45:8" + "src": "486:45:1" }, { "expression": { @@ -1223,12 +1223,12 @@ "arguments": [ { "argumentTypes": null, - "id": 865, + "id": 744, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 819, - "src": "563:24:8", + "referencedDeclaration": 698, + "src": "563:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1244,32 +1244,32 @@ ], "expression": { "argumentTypes": null, - "id": 862, + "id": 741, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "541:8:8", + "referencedDeclaration": 736, + "src": "541:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$870", + "typeIdentifier": "t_contract$_Migrations_$749", "typeString": "contract Migrations" } }, - "id": 864, + "id": 743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCompleted", "nodeType": "MemberAccess", - "referencedDeclaration": 849, - "src": "541:21:8", + "referencedDeclaration": 728, + "src": "541:21:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, - "id": 866, + "id": 745, "isConstant": false, "isLValue": false, "isPure": false, @@ -1277,57 +1277,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "541:47:8", + "src": "541:47:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 867, + "id": 746, "nodeType": "ExpressionStatement", - "src": "541:47:8" + "src": "541:47:1" } ] }, "documentation": null, - "id": 869, + "id": 748, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 854, + "id": 733, "modifierName": { "argumentTypes": null, - "id": 853, + "id": 732, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "461:10:8", + "referencedDeclaration": 707, + "src": "461:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "461:10:8" + "src": "461:10:1" } ], "name": "upgrade", "nodeType": "FunctionDefinition", "parameters": { - "id": 852, + "id": 731, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 851, + "id": 730, "name": "new_address", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "417:19:8", + "scope": 748, + "src": "417:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1335,10 +1335,10 @@ "typeString": "address" }, "typeName": { - "id": 850, + "id": 729, "name": "address", "nodeType": "ElementaryTypeName", - "src": "417:7:8", + "src": "417:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1348,27 +1348,27 @@ "visibility": "internal" } ], - "src": "416:21:8" + "src": "416:21:1" }, "payable": false, "returnParameters": { - "id": 855, + "id": 734, "nodeType": "ParameterList", "parameters": [], - "src": "476:0:8" + "src": "476:0:1" }, - "scope": 870, - "src": "400:195:8", + "scope": 749, + "src": "400:195:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 871, - "src": "25:572:8" + "scope": 750, + "src": "25:572:1" } ], - "src": "0:598:8" + "src": "0:598:1" }, "compiler": { "name": "solc", @@ -1378,16 +1378,10 @@ "4": { "events": {}, "links": {}, - "address": "0x37be2d5e08fe065db40d65f118fd1874eaaae57f", - "transactionHash": "0x03ed45a8edb5a146521947bd462ad15bbf99be0119adaaa3a4a466c08ddd9e28" - }, - "1534750848541": { - "events": {}, - "links": {}, - "address": "0xa94b7f0465e98609391c623d0560c5720a3f2d33", - "transactionHash": "0x8177f4d6b8b339feba809d5036efcce4a93cf97c36cc43648a263a037ef2c79a" + "address": "0x1127f9b3aa0954830f673bb5a92d04288f47e9b1", + "transactionHash": "0x5c5233b8983197bf6149b3d6c4d3216950eabe8ff2391c38b3ef0530218560fc" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:50:29.681Z" + "updatedAt": "2018-09-26T08:56:03.703Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/MockContract.json b/safe-contracts/build/contracts/MockContract.json new file mode 100644 index 00000000..f0c2ad9e --- /dev/null +++ b/safe-contracts/build/contracts/MockContract.json @@ -0,0 +1,12732 @@ +{ + "contractName": "MockContract", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "MOCKS_LIST_END_HASH", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "MOCKS_LIST_START", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "MOCKS_LIST_END", + "outputs": [ + { + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "SENTINEL_ANY_MOCKS", + "outputs": [ + { + "name": "", + "type": "bytes4" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "constant": false, + "inputs": [ + { + "name": "call", + "type": "bytes" + }, + { + "name": "response", + "type": "bytes" + } + ], + "name": "givenReturn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "method", + "type": "bytes4" + }, + { + "name": "response", + "type": "bytes" + } + ], + "name": "givenReturnAny", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "call", + "type": "bytes" + } + ], + "name": "givenRevert", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "method", + "type": "bytes4" + } + ], + "name": "givenRevertAny", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "call", + "type": "bytes" + }, + { + "name": "message", + "type": "string" + } + ], + "name": "givenRevertWithMessage", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "method", + "type": "bytes4" + }, + { + "name": "message", + "type": "string" + } + ], + "name": "givenRevertAnyWithMessage", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "call", + "type": "bytes" + } + ], + "name": "givenOutOfGas", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "method", + "type": "bytes4" + } + ], + "name": "givenOutOfGasAny", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "reset", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040805190810160405280600481526020017f3078666600000000000000000000000000000000000000000000000000000000815250600080600180026000191660001916815260200190815260200160002090805190602001906200007a9291906200014b565b5060017c0100000000000000000000000000000000000000000000000000000000026004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c010000000000000000000000000000000000000000000000000000000090040217905550620001fa565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200018e57805160ff1916838001178555620001bf565b82800160010185558215620001bf579182015b82811115620001be578251825591602001919060010190620001a1565b5b509050620001ce9190620001d2565b5090565b620001f791905b80821115620001f3576000816000905550600101620001d9565b5090565b90565b61231c806200020a6000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806311bcf7b21461062f578063122e523f146106985780632ed238dc1461072a57806350b908731461075d5780635fd1e7fa146107c657806367aad04a146108125780636ef7920f146108455780637a63538b146108915780637cd96ee414610923578063b947d020146109b3578063d826f88f14610a62578063f07da22914610a79578063fc95802514610ae2575b600060606000359150600160028111156100db57fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff16600281111561011a57fe5b14156102045760036000366040518083838082843782019150509250505090815260200160405180910390206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156101f55780601f106101ca576101008083540402835291602001916101f5565b820191906000526020600020905b8154815290600101906020018083116101d857829003601f168201915b50509250505060405180910390fd5b60028081111561021057fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff16600281111561024f57fe5b141561025e5761025d610b91565b5b60026000366040518083838082843782019150509250505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103185780601f106102ed57610100808354040283529160200191610318565b820191906000526020600020905b8154815290600101906020018083116102fb57829003601f168201915b50505050509050600081511415610627576001600281111561033657fe5b60056000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff1660028111156103a057fe5b14156104b55760076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156104a65780601f1061047b576101008083540402835291602001916104a6565b820191906000526020600020905b81548152906001019060200180831161048957829003601f168201915b50509250505060405180910390fd5b6002808111156104c157fe5b60056000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16600281111561052b57fe5b141561053a57610539610b91565b5b60066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561061f5780601f106105f45761010080835404028352916020019161061f565b820191906000526020600020905b81548152906001019060200180831161060257829003601f168201915b505050505090505b805181602001f35b34801561063b57600080fd5b50610696600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ba6565b005b3480156106a457600080fd5b5061072860048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c3f565b005b34801561073657600080fd5b5061073f610d25565b60405180826000191660001916815260200191505060405180910390f35b34801561076957600080fd5b506107c4600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610dc0565b005b3480156107d257600080fd5b5061081060048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610ee8565b005b34801561081e57600080fd5b50610827610f67565b60405180826000191660001916815260200191505060405180910390f35b34801561085157600080fd5b5061088f60048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610f6e565b005b34801561089d57600080fd5b5061092160048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610fed565b005b34801561092f57600080fd5b506109386110d3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561097857808201518184015260208101905061095d565b50505050905090810190601f1680156109a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109bf57600080fd5b50610a60600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061110c565b005b348015610a6e57600080fd5b50610a77611225565b005b348015610a8557600080fd5b50610a8e611bc7565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b348015610aee57600080fd5b50610b8f600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611beb565b005b5b600115610ba457600160405455610b92565b565b60026001826040518082805190602001908083835b602083101515610be05780518252602082019150602081019050602083039250610bbb565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115610c2e57fe5b0217905550610c3c81611d05565b50565b600160056000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115610cad57fe5b02179055508060076000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000209080519060200190610d179291906120c4565b50610d2182611e31565b5050565b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b602083101515610d905780518252602082019150602081019050602083039250610d6b565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902081565b600180826040518082805190602001908083835b602083101515610df95780518252602082019150602081019050602083039250610dd4565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115610e4757fe5b021790555060206040519081016040528060008152506003826040518082805190602001908083835b602083101515610e955780518252602082019150602081019050602083039250610e70565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190610edb9291906120c4565b50610ee581611d05565b50565b600160056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115610f5657fe5b0217905550610f6481611e31565b50565b6001800281565b600260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115610fdc57fe5b0217905550610fea81611e31565b50565b600060056000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561105b57fe5b02179055508060066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906110c5929190612144565b506110cf82611e31565b5050565b6040805190810160405280600481526020017f307866660000000000000000000000000000000000000000000000000000000081525081565b600180836040518082805190602001908083835b6020831015156111455780518252602082019150602081019050602083039250611120565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083600281111561119357fe5b0217905550806003836040518082805190602001908083835b6020831015156111d157805182526020820191506020810190506020830392506111ac565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902090805190602001906112179291906120c4565b5061122182611d05565b5050565b6060600080600080600060018002600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112dd5780601f106112b2576101008083540402835291602001916112dd565b820191906000526020600020905b8154815290600101906020018083116112c057829003601f168201915b50505050509350836040518082805190602001908083835b60208310151561131a57805182526020820191506020810190506020830392506112f5565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902092505b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b6020831015156113b55780518252602082019150602081019050602083039250611390565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191683600019161415156116fd5760006001856040518082805190602001908083835b60208310151561142c5780518252602082019150602081019050602083039250611407565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083600281111561147a57fe5b021790555060206040519081016040528060008152506002856040518082805190602001908083835b6020831015156114c857805182526020820191506020810190506020830392506114a3565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051906020019061150e9291906121c4565b5060206040519081016040528060008152506003856040518082805190602001908083835b6020831015156115585780518252602082019150602081019050602083039250611533565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051906020019061159e9291906120c4565b5060008084600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561164d5780601f106116225761010080835404028352916020019161164d565b820191906000526020600020905b81548152906001019060200180831161163057829003601f168201915b505050505093506020604051908101604052806000815250600080856000191660001916815260200190815260200160002090805190602001906116929291906121c4565b50836040518082805190602001908083835b6020831015156116c957805182526020820191506020810190506020830392506116a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020925061134a565b6040805190810160405280600481526020017f307866660000000000000000000000000000000000000000000000000000000081525060008060018002600019166000191681526020019081526020016000209080519060200190611763929190612144565b506004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000291505b60017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515611af757819050600060056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908360028111156118da57fe5b0217905550602060405190810160405280600081525060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906119549291906121c4565b50602060405190810160405280600081525060076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906119ca9291906120c4565b5060046000827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c010000000000000000000000000000000000000000000000000000000002915060007c01000000000000000000000000000000000000000000000000000000000260046000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c010000000000000000000000000000000000000000000000000000000090040217905550611802565b60017c0100000000000000000000000000000000000000000000000000000000026004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c01000000000000000000000000000000000000000000000000000000009004021790555050505050565b60017c01000000000000000000000000000000000000000000000000000000000281565b60006001836040518082805190602001908083835b602083101515611c255780518252602082019150602081019050602083039250611c00565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115611c7357fe5b0217905550806002836040518082805190602001908083835b602083101515611cb15780518252602082019150602081019050602083039250611c8c565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611cf7929190612144565b50611d0182611d05565b5050565b6000816040518082805190602001908083835b602083101515611d3d5780518252602082019150602081019050602083039250611d18565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050600080600083600019166000191681526020019081526020016000208054600181600116156101000203166002900490501415611e2d57600080600180026000191660001916815260200190815260200160002060008083600019166000191681526020019081526020016000209080546001816001161561010002031660029004611df9929190612244565b508160008060018002600019166000191681526020019081526020016000209080519060200190611e2b929190612144565b505b5050565b60007c01000000000000000000000000000000000000000000000000000000000260046000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156120c1576004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000260046000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c010000000000000000000000000000000000000000000000000000000090040217905550806004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c0100000000000000000000000000000000000000000000000000000000900402179055505b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061210557805160ff1916838001178555612133565b82800160010185558215612133579182015b82811115612132578251825591602001919060010190612117565b5b50905061214091906122cb565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061218557805160ff19168380011785556121b3565b828001600101855582156121b3579182015b828111156121b2578251825591602001919060010190612197565b5b5090506121c091906122cb565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061220557805160ff1916838001178555612233565b82800160010185558215612233579182015b82811115612232578251825591602001919060010190612217565b5b50905061224091906122cb565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061227d57805485556122ba565b828001600101855582156122ba57600052602060002091601f016020900482015b828111156122b957825482559160010191906001019061229e565b5b5090506122c791906122cb565b5090565b6122ed91905b808211156122e95760008160009055506001016122d1565b5090565b905600a165627a7a72305820e3d9d37bc53f32c931f3f9481042543fd8b3c9d309d8b8ccac2c32e98ff9c7bb0029", + "deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806311bcf7b21461062f578063122e523f146106985780632ed238dc1461072a57806350b908731461075d5780635fd1e7fa146107c657806367aad04a146108125780636ef7920f146108455780637a63538b146108915780637cd96ee414610923578063b947d020146109b3578063d826f88f14610a62578063f07da22914610a79578063fc95802514610ae2575b600060606000359150600160028111156100db57fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff16600281111561011a57fe5b14156102045760036000366040518083838082843782019150509250505090815260200160405180910390206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156101f55780601f106101ca576101008083540402835291602001916101f5565b820191906000526020600020905b8154815290600101906020018083116101d857829003601f168201915b50509250505060405180910390fd5b60028081111561021057fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff16600281111561024f57fe5b141561025e5761025d610b91565b5b60026000366040518083838082843782019150509250505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103185780601f106102ed57610100808354040283529160200191610318565b820191906000526020600020905b8154815290600101906020018083116102fb57829003601f168201915b50505050509050600081511415610627576001600281111561033657fe5b60056000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff1660028111156103a057fe5b14156104b55760076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156104a65780601f1061047b576101008083540402835291602001916104a6565b820191906000526020600020905b81548152906001019060200180831161048957829003601f168201915b50509250505060405180910390fd5b6002808111156104c157fe5b60056000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16600281111561052b57fe5b141561053a57610539610b91565b5b60066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561061f5780601f106105f45761010080835404028352916020019161061f565b820191906000526020600020905b81548152906001019060200180831161060257829003601f168201915b505050505090505b805181602001f35b34801561063b57600080fd5b50610696600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ba6565b005b3480156106a457600080fd5b5061072860048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c3f565b005b34801561073657600080fd5b5061073f610d25565b60405180826000191660001916815260200191505060405180910390f35b34801561076957600080fd5b506107c4600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610dc0565b005b3480156107d257600080fd5b5061081060048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610ee8565b005b34801561081e57600080fd5b50610827610f67565b60405180826000191660001916815260200191505060405180910390f35b34801561085157600080fd5b5061088f60048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610f6e565b005b34801561089d57600080fd5b5061092160048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610fed565b005b34801561092f57600080fd5b506109386110d3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561097857808201518184015260208101905061095d565b50505050905090810190601f1680156109a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109bf57600080fd5b50610a60600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061110c565b005b348015610a6e57600080fd5b50610a77611225565b005b348015610a8557600080fd5b50610a8e611bc7565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b348015610aee57600080fd5b50610b8f600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611beb565b005b5b600115610ba457600160405455610b92565b565b60026001826040518082805190602001908083835b602083101515610be05780518252602082019150602081019050602083039250610bbb565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115610c2e57fe5b0217905550610c3c81611d05565b50565b600160056000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115610cad57fe5b02179055508060076000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000209080519060200190610d179291906120c4565b50610d2182611e31565b5050565b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b602083101515610d905780518252602082019150602081019050602083039250610d6b565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902081565b600180826040518082805190602001908083835b602083101515610df95780518252602082019150602081019050602083039250610dd4565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115610e4757fe5b021790555060206040519081016040528060008152506003826040518082805190602001908083835b602083101515610e955780518252602082019150602081019050602083039250610e70565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190610edb9291906120c4565b50610ee581611d05565b50565b600160056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115610f5657fe5b0217905550610f6481611e31565b50565b6001800281565b600260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115610fdc57fe5b0217905550610fea81611e31565b50565b600060056000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561105b57fe5b02179055508060066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906110c5929190612144565b506110cf82611e31565b5050565b6040805190810160405280600481526020017f307866660000000000000000000000000000000000000000000000000000000081525081565b600180836040518082805190602001908083835b6020831015156111455780518252602082019150602081019050602083039250611120565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083600281111561119357fe5b0217905550806003836040518082805190602001908083835b6020831015156111d157805182526020820191506020810190506020830392506111ac565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902090805190602001906112179291906120c4565b5061122182611d05565b5050565b6060600080600080600060018002600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112dd5780601f106112b2576101008083540402835291602001916112dd565b820191906000526020600020905b8154815290600101906020018083116112c057829003601f168201915b50505050509350836040518082805190602001908083835b60208310151561131a57805182526020820191506020810190506020830392506112f5565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902092505b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b6020831015156113b55780518252602082019150602081019050602083039250611390565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191683600019161415156116fd5760006001856040518082805190602001908083835b60208310151561142c5780518252602082019150602081019050602083039250611407565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083600281111561147a57fe5b021790555060206040519081016040528060008152506002856040518082805190602001908083835b6020831015156114c857805182526020820191506020810190506020830392506114a3565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051906020019061150e9291906121c4565b5060206040519081016040528060008152506003856040518082805190602001908083835b6020831015156115585780518252602082019150602081019050602083039250611533565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051906020019061159e9291906120c4565b5060008084600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561164d5780601f106116225761010080835404028352916020019161164d565b820191906000526020600020905b81548152906001019060200180831161163057829003601f168201915b505050505093506020604051908101604052806000815250600080856000191660001916815260200190815260200160002090805190602001906116929291906121c4565b50836040518082805190602001908083835b6020831015156116c957805182526020820191506020810190506020830392506116a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020925061134a565b6040805190810160405280600481526020017f307866660000000000000000000000000000000000000000000000000000000081525060008060018002600019166000191681526020019081526020016000209080519060200190611763929190612144565b506004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000291505b60017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515611af757819050600060056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908360028111156118da57fe5b0217905550602060405190810160405280600081525060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906119549291906121c4565b50602060405190810160405280600081525060076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906119ca9291906120c4565b5060046000827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c010000000000000000000000000000000000000000000000000000000002915060007c01000000000000000000000000000000000000000000000000000000000260046000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c010000000000000000000000000000000000000000000000000000000090040217905550611802565b60017c0100000000000000000000000000000000000000000000000000000000026004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c01000000000000000000000000000000000000000000000000000000009004021790555050505050565b60017c01000000000000000000000000000000000000000000000000000000000281565b60006001836040518082805190602001908083835b602083101515611c255780518252602082019150602081019050602083039250611c00565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115611c7357fe5b0217905550806002836040518082805190602001908083835b602083101515611cb15780518252602082019150602081019050602083039250611c8c565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611cf7929190612144565b50611d0182611d05565b5050565b6000816040518082805190602001908083835b602083101515611d3d5780518252602082019150602081019050602083039250611d18565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050600080600083600019166000191681526020019081526020016000208054600181600116156101000203166002900490501415611e2d57600080600180026000191660001916815260200190815260200160002060008083600019166000191681526020019081526020016000209080546001816001161561010002031660029004611df9929190612244565b508160008060018002600019166000191681526020019081526020016000209080519060200190611e2b929190612144565b505b5050565b60007c01000000000000000000000000000000000000000000000000000000000260046000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156120c1576004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000260046000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c010000000000000000000000000000000000000000000000000000000090040217905550806004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c0100000000000000000000000000000000000000000000000000000000900402179055505b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061210557805160ff1916838001178555612133565b82800160010185558215612133579182015b82811115612132578251825591602001919060010190612117565b5b50905061214091906122cb565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061218557805160ff19168380011785556121b3565b828001600101855582156121b3579182015b828111156121b2578251825591602001919060010190612197565b5b5090506121c091906122cb565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061220557805160ff1916838001178555612233565b82800160010185558215612233579182015b82811115612232578251825591602001919060010190612217565b5b50905061224091906122cb565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061227d57805485556122ba565b828001600101855582156122ba57600052602060002091601f016020900482015b828111156122b957825482559160010191906001019061229e565b5b5090506122c791906122cb565b5090565b6122ed91905b808211156122e95760008160009055506001016122d1565b5090565b905600a165627a7a72305820e3d9d37bc53f32c931f3f9481042543fd8b3c9d309d8b8ccac2c32e98ff9c7bb0029", + "sourceMap": "26:4585:27:-;;;703:115;8:9:-1;5:2;;;30:1;27;20:12;5:2;703:115:27;747:14;;;;;;;;;;;;;;;;;;721:5;:23;140:3;727:16;;721:23;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;:::i;:::-;;312:3;796:18;;765:8;:28;312:3;774:18;;765:28;;;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;;26:4585;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "26:4585:27:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3978:15;4203:19;4036:1;4023:15;4011:27;;4072:15;4049:38;;;;;;;;:9;4059:8;;4049:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;;;;;4045:85;;;4101:13;4115:8;;4101:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4094:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4045:85;4160:17;4137:40;;;;;;;;:9;4147:8;;4137:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;;;;;;4133:67;;;4184:11;:9;:11::i;:::-;4133:67;4225:12;4238:8;;4225:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4203:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4325:1;4308:6;:13;:18;4304:241;;;4363:15;4337:41;;;;;;;;:12;:22;4350:8;4337:22;;;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;;;;;;4333:93;;;4393:16;:26;4410:8;4393:26;;;;;;;;;;;;;;;;;4386:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4333:93;4460:17;4434:43;;;;;;;;:12;:22;4447:8;4434:22;;;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;;;;;;;4430:72;;;4485:11;:9;:11::i;:::-;4430:72;4515:15;:25;4531:8;4515:25;;;;;;;;;;;;;;;;;4506:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4304:241;4594:6;4588:13;4579:6;4573:4;4569:17;4562:40;2536:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2536:104:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2350:183;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2350:183:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;194:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;194:71:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1935:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1935:128:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2066:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2066:118:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;97:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;97:46:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2643:121;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2643:121:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:172;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1760:172:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;146:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;146:45:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;146:45:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2187:160;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2187:160:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2767:1076;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2767:1076:27;;;;;;268:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;268:47:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1608:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1608:149:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3846:99;3879:63;3885:4;3879:63;;;3931:1;3924:4;3918:11;3911:22;3905:33;;;3846:99::o;2536:104::-;2600:17;2582:9;2592:4;2582:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2582:15:27;;;;;;;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;;;;;;;2621:15;2631:4;2621:9;:15::i;:::-;2536:104;:::o;2350:183::-;2450:15;2427:12;:20;2440:6;2427:20;;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;;;;;;;2496:7;2469:16;:24;2486:6;2469:24;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;:::i;:::-;;2507:20;2520:6;2507:12;:20::i;:::-;2350:183;;:::o;194:71::-;250:14;;;;;;;;;;;;;;;;;;240:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;240:25:27;;;;;;;;;;;;;;;;194:71;:::o;1935:128::-;1997:15;1979:9;1989:4;1979:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1979:15:27;;;;;;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;;;;;;;2016:24;;;;;;;;;;;;;:13;2030:4;2016:19;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2016:19:27;;;;;;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;:::i;:::-;;2044:15;2054:4;2044:9;:15::i;:::-;1935:128;:::o;2066:118::-;2139:15;2116:12;:20;2129:6;2116:20;;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;;;;;;;2158:20;2171:6;2158:12;:20::i;:::-;2066:118;:::o;97:46::-;140:3;97:46;;;:::o;2643:121::-;2718:17;2695:12;:20;2708:6;2695:20;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;;;;;;;2739:20;2752:6;2739:12;:20::i;:::-;2643:121;:::o;1760:172::-;1849:15;1826:12;:20;1839:6;1826:20;;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;;;;;;;1894:8;1868:15;:23;1884:6;1868:23;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;:::i;:::-;;1906:20;1919:6;1906:12;:20::i;:::-;1760:172;;:::o;146:45::-;;;;;;;;;;;;;;;;;;;;:::o;2187:160::-;2276:15;2258:9;2268:4;2258:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2258:15:27;;;;;;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;;;;;;;2317:7;2295:13;2309:4;2295:19;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2295:19:27;;;;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:::i;:::-;;2328:15;2338:4;2328:9;:15::i;:::-;2187:160;;:::o;2767:1076::-;2822:21;2873:16;3387:18;3486:21;2846:5;:23;140:3;2852:16;;2846:23;;;;;;;;;;;;;;;;;2822:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2902:8;2892:19;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2892:19:27;;;;;;;;;;;;;;;;2873:38;;2944:354;250:14;;;;;;;;;;;;;;;;;;240:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;240:25:27;;;;;;;;;;;;;;;;2950:31;;;:8;:31;;;;;2944:354;;;3036:15;3014:9;3024:8;3014:19;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3014:19:27;;;;;;;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;;;;;;;3056:30;;;;;;;;;;;;;:12;3069:8;3056:22;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3056:22:27;;;;;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;:::i;:::-;;3091:28;;;;;;;;;;;;;:13;3105:8;3091:23;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3091:23:27;;;;;;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;:::i;:::-;;3165:5;:15;3171:8;3165:15;;;;;;;;;;;;;;;;;3154:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3215:20;;;;;;;;;;;;;:5;:15;3221:8;3215:15;;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;:::i;:::-;;3284:8;3274:19;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3274:19:27;;;;;;;;;;;;;;;;3263:30;;2944:354;;;3343:14;;;;;;;;;;;;;;;;;;3317:5;:23;140:3;3323:16;;3317:23;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;:::i;:::-;;3408:8;:28;312:3;3417:18;;3408:28;;;;;;;;;;;;;;;;;;;;;;;;;;;3387:49;;3440:331;312:3;3461:18;;3446:33;;;:11;:33;;;;;3440:331;;;3510:11;3486:35;;3557:15;3526:12;:28;3539:14;3526:28;;;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;;;;;;;3577:39;;;;;;;;;;;;;:15;:31;3593:14;3577:31;;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;:::i;:::-;;3621:37;;;;;;;;;;;;;:16;:32;3638:14;3621:32;;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;:::i;:::-;;3677:8;:24;3686:14;3677:24;;;;;;;;;;;;;;;;;;;;;;;;;;;3663:38;;3763:3;3736:30;;:8;:24;3745:14;3736:24;;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;;3440:331;;;312:3;3821:18;;3790:8;:28;312:3;3799:18;;3790:28;;;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;;2767:1076;;;;:::o;268:47::-;312:3;268:47;;;:::o;1608:149::-;1686:15;1668:9;1678:4;1668:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1668:15:27;;;;;;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;;;;;;;1726:8;1705:12;1718:4;1705:18;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1705:18:27;;;;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:::i;:::-;;1738:15;1748:4;1738:9;:15::i;:::-;1608:149;;:::o;821:203::-;864:16;893:4;883:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;883:15:27;;;;;;;;;;;;;;;;864:34;;932:1;906:5;:15;912:8;906:15;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;:27;902:119;;;958:5;:23;140:3;964:16;;958:23;;;;;;;;;;;;;;;;;940:5;:15;946:8;940:15;;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1012:4;986:5;:23;140:3;992:16;;986:23;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;:::i;:::-;;902:119;821:203;;:::o;1027:188::-;1104:3;1082:25;;:8;:18;1091:8;1082:18;;;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;1078:134;;;1135:8;:28;312:3;1144:18;;1135:28;;;;;;;;;;;;;;;;;;;;;;;;;;;1114:8;:18;1123:8;1114:18;;;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;;1199:8;1168;:28;312:3;1177:18;;1168:28;;;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;1078:134;1027:188;:::o;26:4585::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "pragma solidity ^0.4.23;\n\ncontract MockContract {\n\tenum MockType { Return, Revert, OutOfGas }\n\t\n\tbytes32 public constant MOCKS_LIST_START = 0x1;\n\tbytes public constant MOCKS_LIST_END = \"0xff\";\n\tbytes32 public constant MOCKS_LIST_END_HASH = keccak256(MOCKS_LIST_END);\n\tbytes4 public constant SENTINEL_ANY_MOCKS = 0x1;\n\n\t// A linked list allows easy iteration and inclusion checks\n\tmapping(bytes32 => bytes) mocks;\n\tmapping(bytes => MockType) mockTypes;\n\tmapping(bytes => bytes) expectations;\n\tmapping(bytes => string) revertMessage;\n\n\tmapping(bytes4 => bytes4) anyMocks;\n\tmapping(bytes4 => MockType) mockTypesAny;\n\tmapping(bytes4 => bytes) expectationsAny;\n\tmapping(bytes4 => string) revertMessageAny;\n\n\tconstructor() {\n\t\tmocks[MOCKS_LIST_START] = MOCKS_LIST_END;\n\t\tanyMocks[SENTINEL_ANY_MOCKS] = SENTINEL_ANY_MOCKS;\n\t}\n\n\tfunction trackMock(bytes call) private {\n\t\tbytes32 callHash = keccak256(call);\n\t\tif (mocks[callHash].length == 0) {\n\t\t\tmocks[callHash] = mocks[MOCKS_LIST_START];\n\t\t\tmocks[MOCKS_LIST_START] = call;\n\t\t}\n\t}\n\n\tfunction trackAnyMock(bytes4 methodId) private {\n\t\tif (anyMocks[methodId] == 0x0) {\n\t\t\tanyMocks[methodId] = anyMocks[SENTINEL_ANY_MOCKS];\n\t\t\tanyMocks[SENTINEL_ANY_MOCKS] = methodId;\n\t\t}\n\t}\n\n\t/**\n\t * @dev Stores a response that the contract will return if the fallback function is called with the given method name and matching arguments.\n\t * @param call ABI encoded calldata that if invoked on this contract will return `response`. Parameter values need to match exactly.\n\t * @param response ABI encoded response that will be returned if this contract is invoked with `call`\n\t */\n\tfunction givenReturn(bytes call, bytes response) public {\n\t\tmockTypes[call] = MockType.Return;\n\t\texpectations[call] = response;\n\t\ttrackMock(call);\n\t}\n\n\tfunction givenReturnAny(bytes4 method, bytes response) public {\n\t\tmockTypesAny[method] = MockType.Return;\n\t\texpectationsAny[method] = response;\n\t\ttrackAnyMock(method);\t\t\n\t}\n\n\tfunction givenRevert(bytes call) public {\n\t\tmockTypes[call] = MockType.Revert;\n\t\trevertMessage[call] = \"\";\n\t\ttrackMock(call);\n\t}\n\n\tfunction givenRevertAny(bytes4 method) public {\n\t\tmockTypesAny[method] = MockType.Revert;\n\t\ttrackAnyMock(method);\t\t\n\t}\n\n\tfunction givenRevertWithMessage(bytes call, string message) public {\n\t\tmockTypes[call] = MockType.Revert;\n\t\trevertMessage[call] = message;\n\t\ttrackMock(call);\n\t}\n\n\tfunction givenRevertAnyWithMessage(bytes4 method, string message) public {\n\t\tmockTypesAny[method] = MockType.Revert;\n\t\trevertMessageAny[method] = message;\n\t\ttrackAnyMock(method);\t\t\n\t}\n\n\tfunction givenOutOfGas(bytes call) public {\n\t\tmockTypes[call] = MockType.OutOfGas;\n\t\ttrackMock(call);\n\t}\n\n\tfunction givenOutOfGasAny(bytes4 method) public {\n\t\tmockTypesAny[method] = MockType.OutOfGas;\n\t\ttrackAnyMock(method);\t\n\t}\n\n\tfunction reset() public {\n\t\t// Reset all exact mocks\n\t\tbytes memory nextMock = mocks[MOCKS_LIST_START];\n\t\tbytes32 mockHash = keccak256(nextMock);\n\t\t// We cannot compary bytes\n\t\twhile(mockHash != MOCKS_LIST_END_HASH) {\n\t\t\t// Reset all mock maps\n\t\t\tmockTypes[nextMock] = MockType.Return;\n\t\t\texpectations[nextMock] = hex\"\";\n\t\t\trevertMessage[nextMock] = \"\";\n\t\t\t// Set next mock to remove\n\t\t\tnextMock = mocks[mockHash];\n\t\t\t// Remove from linked list\n\t\t\tmocks[mockHash] = \"\";\n\t\t\t// Update mock hash\n\t\t\tmockHash = keccak256(nextMock);\n\t\t}\n\t\t// Clear list\n\t\tmocks[MOCKS_LIST_START] = MOCKS_LIST_END;\n\n\t\t// Reset all any mocks\n\t\tbytes4 nextAnyMock = anyMocks[SENTINEL_ANY_MOCKS];\n\t\twhile(nextAnyMock != SENTINEL_ANY_MOCKS) {\n\t\t\tbytes4 currentAnyMock = nextAnyMock;\n\t\t\tmockTypesAny[currentAnyMock] = MockType.Return;\n\t\t\texpectationsAny[currentAnyMock] = hex\"\";\n\t\t\trevertMessageAny[currentAnyMock] = \"\";\n\t\t\tnextAnyMock = anyMocks[currentAnyMock];\n\t\t\t// Remove from linked list\n\t\t\tanyMocks[currentAnyMock] = 0x0;\n\t\t}\n\t\t// Clear list\n\t\tanyMocks[SENTINEL_ANY_MOCKS] = SENTINEL_ANY_MOCKS;\n\t}\n\n\tfunction useAllGas() private {\n\t\twhile(true) {\n\t\t\tassembly {\n\t\t\t\tsstore(sload(0x40), 1)\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction() payable public {\n\t\tbytes4 methodId;\n\t\tassembly {\n\t\t\tmethodId := calldataload(0)\n\t\t}\n\t\tif (mockTypes[msg.data] == MockType.Revert) {\n\t\t\trevert(revertMessage[msg.data]);\n\t\t}\n\t\tif (mockTypes[msg.data] == MockType.OutOfGas) {\n\t\t\tuseAllGas();\n\t\t}\n\t\tbytes memory result = expectations[msg.data];\n\n\t\t// Check any mocks if there is no expected result\n\t\tif (result.length == 0) {\n\t\t\tif (mockTypesAny[methodId] == MockType.Revert) {\n\t\t\t\trevert(revertMessageAny[methodId]);\n\t\t\t}\n\t\t\tif (mockTypesAny[methodId] == MockType.OutOfGas) {\n\t\t\t\tuseAllGas();\n\t\t\t}\n\t\t\tresult = expectationsAny[methodId];\n\t\t}\n\t\tassembly {\n\t\t\treturn(add(0x20, result), mload(result))\n\t\t}\n\t}\n}\n", + "sourcePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", + "ast": { + "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", + "exportedSymbols": { + "MockContract": [ + 4476 + ] + }, + "id": 4477, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3969, + "literals": [ + "solidity", + "^", + "0.4", + ".23" + ], + "nodeType": "PragmaDirective", + "src": "0:24:27" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4476, + "linearizedBaseContracts": [ + 4476 + ], + "name": "MockContract", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "MockContract.MockType", + "id": 3973, + "members": [ + { + "id": 3970, + "name": "Return", + "nodeType": "EnumValue", + "src": "67:6:27" + }, + { + "id": 3971, + "name": "Revert", + "nodeType": "EnumValue", + "src": "75:6:27" + }, + { + "id": 3972, + "name": "OutOfGas", + "nodeType": "EnumValue", + "src": "83:8:27" + } + ], + "name": "MockType", + "nodeType": "EnumDefinition", + "src": "51:42:27" + }, + { + "constant": true, + "id": 3976, + "name": "MOCKS_LIST_START", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "97:46:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3974, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "97:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307831", + "id": 3975, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "140:3:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "0x1" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 3979, + "name": "MOCKS_LIST_END", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "146:45:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes" + }, + "typeName": { + "id": 3977, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "146:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786666", + "id": 3978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "185:6:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513", + "typeString": "literal_string \"0xff\"" + }, + "value": "0xff" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 3984, + "name": "MOCKS_LIST_END_HASH", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "194:71:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3980, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "194:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3982, + "name": "MOCKS_LIST_END", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3979, + "src": "250:14:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + ], + "id": 3981, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "240:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 3983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "240:25:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 3987, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "268:47:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3985, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "268:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307831", + "id": 3986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "312:3:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "0x1" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 3991, + "name": "mocks", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "380:31:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes)" + }, + "typeName": { + "id": 3990, + "keyType": { + "id": 3988, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "388:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "380:25:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes)" + }, + "valueType": { + "id": 3989, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "399:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3995, + "name": "mockTypes", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "414:36:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes => enum MockContract.MockType)" + }, + "typeName": { + "id": 3994, + "keyType": { + "id": 3992, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "422:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "nodeType": "Mapping", + "src": "414:26:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes => enum MockContract.MockType)" + }, + "valueType": { + "contractScope": null, + "id": 3993, + "name": "MockType", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3973, + "src": "431:8:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3999, + "name": "expectations", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "453:36:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", + "typeString": "mapping(bytes => bytes)" + }, + "typeName": { + "id": 3998, + "keyType": { + "id": 3996, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "461:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "nodeType": "Mapping", + "src": "453:23:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", + "typeString": "mapping(bytes => bytes)" + }, + "valueType": { + "id": 3997, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "470:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4003, + "name": "revertMessage", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "492:38:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", + "typeString": "mapping(bytes => string)" + }, + "typeName": { + "id": 4002, + "keyType": { + "id": 4000, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "500:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "nodeType": "Mapping", + "src": "492:24:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", + "typeString": "mapping(bytes => string)" + }, + "valueType": { + "id": 4001, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "509:6:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4007, + "name": "anyMocks", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "534:34:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + }, + "typeName": { + "id": 4006, + "keyType": { + "id": 4004, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "542:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "534:25:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + }, + "valueType": { + "id": 4005, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "552:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4011, + "name": "mockTypesAny", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "571:40:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + }, + "typeName": { + "id": 4010, + "keyType": { + "id": 4008, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "579:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "571:27:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + }, + "valueType": { + "contractScope": null, + "id": 4009, + "name": "MockType", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3973, + "src": "589:8:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4015, + "name": "expectationsAny", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "614:40:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", + "typeString": "mapping(bytes4 => bytes)" + }, + "typeName": { + "id": 4014, + "keyType": { + "id": 4012, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "622:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "614:24:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", + "typeString": "mapping(bytes4 => bytes)" + }, + "valueType": { + "id": 4013, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "632:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4019, + "name": "revertMessageAny", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "657:42:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", + "typeString": "mapping(bytes4 => string)" + }, + "typeName": { + "id": 4018, + "keyType": { + "id": 4016, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "665:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "657:25:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", + "typeString": "mapping(bytes4 => string)" + }, + "valueType": { + "id": 4017, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "675:6:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 4034, + "nodeType": "Block", + "src": "717:101:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4022, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "721:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4024, + "indexExpression": { + "argumentTypes": null, + "id": 4023, + "name": "MOCKS_LIST_START", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3976, + "src": "727:16:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "721:23:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4025, + "name": "MOCKS_LIST_END", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3979, + "src": "747:14:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "src": "721:40:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4027, + "nodeType": "ExpressionStatement", + "src": "721:40:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4028, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "765:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4030, + "indexExpression": { + "argumentTypes": null, + "id": 4029, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3987, + "src": "774:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "765:28:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4031, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3987, + "src": "796:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "765:49:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 4033, + "nodeType": "ExpressionStatement", + "src": "765:49:27" + } + ] + }, + "documentation": null, + "id": 4035, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4020, + "nodeType": "ParameterList", + "parameters": [], + "src": "714:2:27" + }, + "payable": false, + "returnParameters": { + "id": 4021, + "nodeType": "ParameterList", + "parameters": [], + "src": "717:0:27" + }, + "scope": 4476, + "src": "703:115:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4068, + "nodeType": "Block", + "src": "860:164:27", + "statements": [ + { + "assignments": [ + 4041 + ], + "declarations": [ + { + "constant": false, + "id": 4041, + "name": "callHash", + "nodeType": "VariableDeclaration", + "scope": 4069, + "src": "864:16:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4040, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "864:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4045, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4043, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4037, + "src": "893:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4042, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "883:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 4044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "883:15:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "864:34:27" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4046, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "906:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4048, + "indexExpression": { + "argumentTypes": null, + "id": 4047, + "name": "callHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4041, + "src": "912:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "906:15:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4049, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "906:22:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4050, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "932:1:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "906:27:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4067, + "nodeType": "IfStatement", + "src": "902:119:27", + "trueBody": { + "id": 4066, + "nodeType": "Block", + "src": "935:86:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4052, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "940:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4054, + "indexExpression": { + "argumentTypes": null, + "id": 4053, + "name": "callHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4041, + "src": "946:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "940:15:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4055, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "958:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4057, + "indexExpression": { + "argumentTypes": null, + "id": 4056, + "name": "MOCKS_LIST_START", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3976, + "src": "964:16:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "958:23:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "src": "940:41:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4059, + "nodeType": "ExpressionStatement", + "src": "940:41:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4060, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "986:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4062, + "indexExpression": { + "argumentTypes": null, + "id": 4061, + "name": "MOCKS_LIST_START", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3976, + "src": "992:16:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "986:23:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4063, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4037, + "src": "1012:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "986:30:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4065, + "nodeType": "ExpressionStatement", + "src": "986:30:27" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4069, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "trackMock", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4037, + "name": "call", + "nodeType": "VariableDeclaration", + "scope": 4069, + "src": "840:10:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4036, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "840:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "839:12:27" + }, + "payable": false, + "returnParameters": { + "id": 4039, + "nodeType": "ParameterList", + "parameters": [], + "src": "860:0:27" + }, + "scope": 4476, + "src": "821:203:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 4095, + "nodeType": "Block", + "src": "1074:141:27", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 4078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4074, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "1082:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4076, + "indexExpression": { + "argumentTypes": null, + "id": 4075, + "name": "methodId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "1091:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1082:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830", + "id": 4077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1104:3:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + }, + "src": "1082:25:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4094, + "nodeType": "IfStatement", + "src": "1078:134:27", + "trueBody": { + "id": 4093, + "nodeType": "Block", + "src": "1109:103:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4079, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "1114:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4081, + "indexExpression": { + "argumentTypes": null, + "id": 4080, + "name": "methodId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "1123:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1114:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4082, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "1135:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4084, + "indexExpression": { + "argumentTypes": null, + "id": 4083, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3987, + "src": "1144:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1135:28:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1114:49:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 4086, + "nodeType": "ExpressionStatement", + "src": "1114:49:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4087, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "1168:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4089, + "indexExpression": { + "argumentTypes": null, + "id": 4088, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3987, + "src": "1177:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1168:28:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4090, + "name": "methodId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "1199:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1168:39:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 4092, + "nodeType": "ExpressionStatement", + "src": "1168:39:27" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4096, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "trackAnyMock", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4072, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4071, + "name": "methodId", + "nodeType": "VariableDeclaration", + "scope": 4096, + "src": "1049:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4070, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1049:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1048:17:27" + }, + "payable": false, + "returnParameters": { + "id": 4073, + "nodeType": "ParameterList", + "parameters": [], + "src": "1074:0:27" + }, + "scope": 4476, + "src": "1027:188:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 4120, + "nodeType": "Block", + "src": "1664:93:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4103, + "name": "mockTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3995, + "src": "1668:9:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes memory => enum MockContract.MockType)" + } + }, + "id": 4105, + "indexExpression": { + "argumentTypes": null, + "id": 4104, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4098, + "src": "1678:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1668:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4106, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "1686:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4107, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Return", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1686:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "1668:33:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4109, + "nodeType": "ExpressionStatement", + "src": "1668:33:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4110, + "name": "expectations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3999, + "src": "1705:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", + "typeString": "mapping(bytes memory => bytes storage ref)" + } + }, + "id": 4112, + "indexExpression": { + "argumentTypes": null, + "id": 4111, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4098, + "src": "1718:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1705:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4113, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "1726:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "1705:29:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4115, + "nodeType": "ExpressionStatement", + "src": "1705:29:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4117, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4098, + "src": "1748:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4116, + "name": "trackMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4069, + "src": "1738:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory)" + } + }, + "id": 4118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1738:15:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4119, + "nodeType": "ExpressionStatement", + "src": "1738:15:27" + } + ] + }, + "documentation": "@dev Stores a response that the contract will return if the fallback function is called with the given method name and matching arguments.\n@param call ABI encoded calldata that if invoked on this contract will return `response`. Parameter values need to match exactly.\n@param response ABI encoded response that will be returned if this contract is invoked with `call`", + "id": 4121, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "givenReturn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4098, + "name": "call", + "nodeType": "VariableDeclaration", + "scope": 4121, + "src": "1629:10:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4097, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1629:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4100, + "name": "response", + "nodeType": "VariableDeclaration", + "scope": 4121, + "src": "1641:14:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4099, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1641:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1628:28:27" + }, + "payable": false, + "returnParameters": { + "id": 4102, + "nodeType": "ParameterList", + "parameters": [], + "src": "1664:0:27" + }, + "scope": 4476, + "src": "1608:149:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4145, + "nodeType": "Block", + "src": "1822:110:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4128, + "name": "mockTypesAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4011, + "src": "1826:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + } + }, + "id": 4130, + "indexExpression": { + "argumentTypes": null, + "id": 4129, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4123, + "src": "1839:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1826:20:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4131, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "1849:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Return", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1849:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "1826:38:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4134, + "nodeType": "ExpressionStatement", + "src": "1826:38:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4135, + "name": "expectationsAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4015, + "src": "1868:15:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", + "typeString": "mapping(bytes4 => bytes storage ref)" + } + }, + "id": 4137, + "indexExpression": { + "argumentTypes": null, + "id": 4136, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4123, + "src": "1884:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1868:23:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4138, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4125, + "src": "1894:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "1868:34:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4140, + "nodeType": "ExpressionStatement", + "src": "1868:34:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4142, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4123, + "src": "1919:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 4141, + "name": "trackAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4096, + "src": "1906:12:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 4143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1906:20:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4144, + "nodeType": "ExpressionStatement", + "src": "1906:20:27" + } + ] + }, + "documentation": null, + "id": 4146, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "givenReturnAny", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4123, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 4146, + "src": "1784:13:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4122, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1784:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4125, + "name": "response", + "nodeType": "VariableDeclaration", + "scope": 4146, + "src": "1799:14:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4124, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1799:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1783:31:27" + }, + "payable": false, + "returnParameters": { + "id": 4127, + "nodeType": "ParameterList", + "parameters": [], + "src": "1822:0:27" + }, + "scope": 4476, + "src": "1760:172:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4168, + "nodeType": "Block", + "src": "1975:88:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4151, + "name": "mockTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3995, + "src": "1979:9:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes memory => enum MockContract.MockType)" + } + }, + "id": 4153, + "indexExpression": { + "argumentTypes": null, + "id": 4152, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4148, + "src": "1989:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1979:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4154, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "1997:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4155, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Revert", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1997:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "1979:33:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4157, + "nodeType": "ExpressionStatement", + "src": "1979:33:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4158, + "name": "revertMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4003, + "src": "2016:13:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", + "typeString": "mapping(bytes memory => string storage ref)" + } + }, + "id": 4160, + "indexExpression": { + "argumentTypes": null, + "id": 4159, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4148, + "src": "2030:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2016:19:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "", + "id": 4161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2038:2:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "src": "2016:24:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4163, + "nodeType": "ExpressionStatement", + "src": "2016:24:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4165, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4148, + "src": "2054:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4164, + "name": "trackMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4069, + "src": "2044:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory)" + } + }, + "id": 4166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2044:15:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4167, + "nodeType": "ExpressionStatement", + "src": "2044:15:27" + } + ] + }, + "documentation": null, + "id": 4169, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "givenRevert", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4149, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4148, + "name": "call", + "nodeType": "VariableDeclaration", + "scope": 4169, + "src": "1956:10:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4147, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1956:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1955:12:27" + }, + "payable": false, + "returnParameters": { + "id": 4150, + "nodeType": "ParameterList", + "parameters": [], + "src": "1975:0:27" + }, + "scope": 4476, + "src": "1935:128:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4185, + "nodeType": "Block", + "src": "2112:72:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4174, + "name": "mockTypesAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4011, + "src": "2116:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + } + }, + "id": 4176, + "indexExpression": { + "argumentTypes": null, + "id": 4175, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4171, + "src": "2129:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2116:20:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4177, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "2139:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Revert", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2139:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "2116:38:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4180, + "nodeType": "ExpressionStatement", + "src": "2116:38:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4182, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4171, + "src": "2171:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 4181, + "name": "trackAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4096, + "src": "2158:12:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 4183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2158:20:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4184, + "nodeType": "ExpressionStatement", + "src": "2158:20:27" + } + ] + }, + "documentation": null, + "id": 4186, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "givenRevertAny", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4172, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4171, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 4186, + "src": "2090:13:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4170, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2090:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2089:15:27" + }, + "payable": false, + "returnParameters": { + "id": 4173, + "nodeType": "ParameterList", + "parameters": [], + "src": "2112:0:27" + }, + "scope": 4476, + "src": "2066:118:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4210, + "nodeType": "Block", + "src": "2254:93:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4193, + "name": "mockTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3995, + "src": "2258:9:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes memory => enum MockContract.MockType)" + } + }, + "id": 4195, + "indexExpression": { + "argumentTypes": null, + "id": 4194, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4188, + "src": "2268:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2258:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4196, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "2276:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4197, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Revert", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2276:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "2258:33:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4199, + "nodeType": "ExpressionStatement", + "src": "2258:33:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4200, + "name": "revertMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4003, + "src": "2295:13:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", + "typeString": "mapping(bytes memory => string storage ref)" + } + }, + "id": 4202, + "indexExpression": { + "argumentTypes": null, + "id": 4201, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4188, + "src": "2309:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2295:19:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4203, + "name": "message", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4190, + "src": "2317:7:27", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2295:29:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4205, + "nodeType": "ExpressionStatement", + "src": "2295:29:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4207, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4188, + "src": "2338:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4206, + "name": "trackMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4069, + "src": "2328:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory)" + } + }, + "id": 4208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2328:15:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4209, + "nodeType": "ExpressionStatement", + "src": "2328:15:27" + } + ] + }, + "documentation": null, + "id": 4211, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "givenRevertWithMessage", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4191, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4188, + "name": "call", + "nodeType": "VariableDeclaration", + "scope": 4211, + "src": "2219:10:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4187, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2219:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4190, + "name": "message", + "nodeType": "VariableDeclaration", + "scope": 4211, + "src": "2231:14:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4189, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2231:6:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2218:28:27" + }, + "payable": false, + "returnParameters": { + "id": 4192, + "nodeType": "ParameterList", + "parameters": [], + "src": "2254:0:27" + }, + "scope": 4476, + "src": "2187:160:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4235, + "nodeType": "Block", + "src": "2423:110:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4218, + "name": "mockTypesAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4011, + "src": "2427:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + } + }, + "id": 4220, + "indexExpression": { + "argumentTypes": null, + "id": 4219, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4213, + "src": "2440:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2427:20:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4221, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "2450:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Revert", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2450:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "2427:38:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4224, + "nodeType": "ExpressionStatement", + "src": "2427:38:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4225, + "name": "revertMessageAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4019, + "src": "2469:16:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", + "typeString": "mapping(bytes4 => string storage ref)" + } + }, + "id": 4227, + "indexExpression": { + "argumentTypes": null, + "id": 4226, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4213, + "src": "2486:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2469:24:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4228, + "name": "message", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4215, + "src": "2496:7:27", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2469:34:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4230, + "nodeType": "ExpressionStatement", + "src": "2469:34:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4232, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4213, + "src": "2520:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 4231, + "name": "trackAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4096, + "src": "2507:12:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 4233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2507:20:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4234, + "nodeType": "ExpressionStatement", + "src": "2507:20:27" + } + ] + }, + "documentation": null, + "id": 4236, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "givenRevertAnyWithMessage", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4213, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 4236, + "src": "2385:13:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4212, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2385:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4215, + "name": "message", + "nodeType": "VariableDeclaration", + "scope": 4236, + "src": "2400:14:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4214, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2400:6:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2384:31:27" + }, + "payable": false, + "returnParameters": { + "id": 4217, + "nodeType": "ParameterList", + "parameters": [], + "src": "2423:0:27" + }, + "scope": 4476, + "src": "2350:183:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4252, + "nodeType": "Block", + "src": "2578:62:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4241, + "name": "mockTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3995, + "src": "2582:9:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes memory => enum MockContract.MockType)" + } + }, + "id": 4243, + "indexExpression": { + "argumentTypes": null, + "id": 4242, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4238, + "src": "2592:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2582:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4244, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "2600:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "OutOfGas", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2600:17:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "2582:35:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4247, + "nodeType": "ExpressionStatement", + "src": "2582:35:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4249, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4238, + "src": "2631:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4248, + "name": "trackMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4069, + "src": "2621:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory)" + } + }, + "id": 4250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2621:15:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4251, + "nodeType": "ExpressionStatement", + "src": "2621:15:27" + } + ] + }, + "documentation": null, + "id": 4253, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "givenOutOfGas", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4239, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4238, + "name": "call", + "nodeType": "VariableDeclaration", + "scope": 4253, + "src": "2559:10:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4237, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2559:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2558:12:27" + }, + "payable": false, + "returnParameters": { + "id": 4240, + "nodeType": "ParameterList", + "parameters": [], + "src": "2578:0:27" + }, + "scope": 4476, + "src": "2536:104:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4269, + "nodeType": "Block", + "src": "2691:73:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4258, + "name": "mockTypesAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4011, + "src": "2695:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + } + }, + "id": 4260, + "indexExpression": { + "argumentTypes": null, + "id": 4259, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4255, + "src": "2708:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2695:20:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4261, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "2718:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "OutOfGas", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2718:17:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "2695:40:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4264, + "nodeType": "ExpressionStatement", + "src": "2695:40:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4266, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4255, + "src": "2752:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 4265, + "name": "trackAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4096, + "src": "2739:12:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 4267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2739:20:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4268, + "nodeType": "ExpressionStatement", + "src": "2739:20:27" + } + ] + }, + "documentation": null, + "id": 4270, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "givenOutOfGasAny", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4256, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4255, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 4270, + "src": "2669:13:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4254, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2669:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2668:15:27" + }, + "payable": false, + "returnParameters": { + "id": 4257, + "nodeType": "ParameterList", + "parameters": [], + "src": "2691:0:27" + }, + "scope": 4476, + "src": "2643:121:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4385, + "nodeType": "Block", + "src": "2791:1052:27", + "statements": [ + { + "assignments": [ + 4274 + ], + "declarations": [ + { + "constant": false, + "id": 4274, + "name": "nextMock", + "nodeType": "VariableDeclaration", + "scope": 4386, + "src": "2822:21:27", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4273, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2822:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4278, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4275, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "2846:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4277, + "indexExpression": { + "argumentTypes": null, + "id": 4276, + "name": "MOCKS_LIST_START", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3976, + "src": "2852:16:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2846:23:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2822:47:27" + }, + { + "assignments": [ + 4280 + ], + "declarations": [ + { + "constant": false, + "id": 4280, + "name": "mockHash", + "nodeType": "VariableDeclaration", + "scope": 4386, + "src": "2873:16:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4279, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2873:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4284, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4282, + "name": "nextMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4274, + "src": "2902:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4281, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "2892:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 4283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2892:19:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2873:38:27" + }, + { + "body": { + "id": 4325, + "nodeType": "Block", + "src": "2983:315:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4288, + "name": "mockTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3995, + "src": "3014:9:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes memory => enum MockContract.MockType)" + } + }, + "id": 4290, + "indexExpression": { + "argumentTypes": null, + "id": 4289, + "name": "nextMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4274, + "src": "3024:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3014:19:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4291, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "3036:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Return", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3036:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "3014:37:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4294, + "nodeType": "ExpressionStatement", + "src": "3014:37:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4295, + "name": "expectations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3999, + "src": "3056:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", + "typeString": "mapping(bytes memory => bytes storage ref)" + } + }, + "id": 4297, + "indexExpression": { + "argumentTypes": null, + "id": 4296, + "name": "nextMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4274, + "src": "3069:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3056:22:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "", + "id": 4298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3081:5:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "src": "3056:30:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4300, + "nodeType": "ExpressionStatement", + "src": "3056:30:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4301, + "name": "revertMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4003, + "src": "3091:13:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", + "typeString": "mapping(bytes memory => string storage ref)" + } + }, + "id": 4303, + "indexExpression": { + "argumentTypes": null, + "id": 4302, + "name": "nextMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4274, + "src": "3105:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3091:23:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "", + "id": 4304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3117:2:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "src": "3091:28:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4306, + "nodeType": "ExpressionStatement", + "src": "3091:28:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4307, + "name": "nextMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4274, + "src": "3154:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4308, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "3165:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4310, + "indexExpression": { + "argumentTypes": null, + "id": 4309, + "name": "mockHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "3171:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3165:15:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "src": "3154:26:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4312, + "nodeType": "ExpressionStatement", + "src": "3154:26:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4313, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "3215:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4315, + "indexExpression": { + "argumentTypes": null, + "id": 4314, + "name": "mockHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "3221:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3215:15:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "", + "id": 4316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3233:2:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "src": "3215:20:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4318, + "nodeType": "ExpressionStatement", + "src": "3215:20:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4319, + "name": "mockHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "3263:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4321, + "name": "nextMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4274, + "src": "3284:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4320, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "3274:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 4322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3274:19:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3263:30:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4324, + "nodeType": "ExpressionStatement", + "src": "3263:30:27" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 4287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4285, + "name": "mockHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "2950:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 4286, + "name": "MOCKS_LIST_END_HASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3984, + "src": "2962:19:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "2950:31:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4326, + "nodeType": "WhileStatement", + "src": "2944:354:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4327, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "3317:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4329, + "indexExpression": { + "argumentTypes": null, + "id": 4328, + "name": "MOCKS_LIST_START", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3976, + "src": "3323:16:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3317:23:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4330, + "name": "MOCKS_LIST_END", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3979, + "src": "3343:14:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "src": "3317:40:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4332, + "nodeType": "ExpressionStatement", + "src": "3317:40:27" + }, + { + "assignments": [ + 4334 + ], + "declarations": [ + { + "constant": false, + "id": 4334, + "name": "nextAnyMock", + "nodeType": "VariableDeclaration", + "scope": 4386, + "src": "3387:18:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4333, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3387:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4338, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4335, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "3408:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4337, + "indexExpression": { + "argumentTypes": null, + "id": 4336, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3987, + "src": "3417:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3408:28:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3387:49:27" + }, + { + "body": { + "id": 4377, + "nodeType": "Block", + "src": "3481:290:27", + "statements": [ + { + "assignments": [ + 4343 + ], + "declarations": [ + { + "constant": false, + "id": 4343, + "name": "currentAnyMock", + "nodeType": "VariableDeclaration", + "scope": 4386, + "src": "3486:21:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4342, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3486:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4345, + "initialValue": { + "argumentTypes": null, + "id": 4344, + "name": "nextAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "3510:11:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3486:35:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4346, + "name": "mockTypesAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4011, + "src": "3526:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + } + }, + "id": 4348, + "indexExpression": { + "argumentTypes": null, + "id": 4347, + "name": "currentAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4343, + "src": "3539:14:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3526:28:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4349, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "3557:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Return", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3557:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "3526:46:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4352, + "nodeType": "ExpressionStatement", + "src": "3526:46:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4353, + "name": "expectationsAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4015, + "src": "3577:15:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", + "typeString": "mapping(bytes4 => bytes storage ref)" + } + }, + "id": 4355, + "indexExpression": { + "argumentTypes": null, + "id": 4354, + "name": "currentAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4343, + "src": "3593:14:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3577:31:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "", + "id": 4356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3611:5:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "src": "3577:39:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4358, + "nodeType": "ExpressionStatement", + "src": "3577:39:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4359, + "name": "revertMessageAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4019, + "src": "3621:16:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", + "typeString": "mapping(bytes4 => string storage ref)" + } + }, + "id": 4361, + "indexExpression": { + "argumentTypes": null, + "id": 4360, + "name": "currentAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4343, + "src": "3638:14:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3621:32:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "", + "id": 4362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3656:2:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "src": "3621:37:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4364, + "nodeType": "ExpressionStatement", + "src": "3621:37:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4365, + "name": "nextAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "3663:11:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4366, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "3677:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4368, + "indexExpression": { + "argumentTypes": null, + "id": 4367, + "name": "currentAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4343, + "src": "3686:14:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3677:24:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "3663:38:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 4370, + "nodeType": "ExpressionStatement", + "src": "3663:38:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4371, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "3736:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4373, + "indexExpression": { + "argumentTypes": null, + "id": 4372, + "name": "currentAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4343, + "src": "3745:14:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3736:24:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830", + "id": 4374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3763:3:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + }, + "src": "3736:30:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 4376, + "nodeType": "ExpressionStatement", + "src": "3736:30:27" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 4341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4339, + "name": "nextAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "3446:11:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 4340, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3987, + "src": "3461:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "3446:33:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4378, + "nodeType": "WhileStatement", + "src": "3440:331:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4379, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "3790:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4381, + "indexExpression": { + "argumentTypes": null, + "id": 4380, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3987, + "src": "3799:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3790:28:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4382, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3987, + "src": "3821:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "3790:49:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 4384, + "nodeType": "ExpressionStatement", + "src": "3790:49:27" + } + ] + }, + "documentation": null, + "id": 4386, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "reset", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4271, + "nodeType": "ParameterList", + "parameters": [], + "src": "2781:2:27" + }, + "payable": false, + "returnParameters": { + "id": 4272, + "nodeType": "ParameterList", + "parameters": [], + "src": "2791:0:27" + }, + "scope": 4476, + "src": "2767:1076:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4393, + "nodeType": "Block", + "src": "3875:70:27", + "statements": [ + { + "body": { + "id": 4391, + "nodeType": "Block", + "src": "3891:51:27", + "statements": [ + { + "externalReferences": [], + "id": 4390, + "nodeType": "InlineAssembly", + "operations": "{\n sstore(sload(0x40), 1)\n}", + "src": "3896:46:27" + } + ] + }, + "condition": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3885:4:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "id": 4392, + "nodeType": "WhileStatement", + "src": "3879:63:27" + } + ] + }, + "documentation": null, + "id": 4394, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "useAllGas", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4387, + "nodeType": "ParameterList", + "parameters": [], + "src": "3864:2:27" + }, + "payable": false, + "returnParameters": { + "id": 4388, + "nodeType": "ParameterList", + "parameters": [], + "src": "3875:0:27" + }, + "scope": 4476, + "src": "3846:99:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 4474, + "nodeType": "Block", + "src": "3974:635:27", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 4398, + "name": "methodId", + "nodeType": "VariableDeclaration", + "scope": 4475, + "src": "3978:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4397, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3978:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4399, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3978:15:27" + }, + { + "externalReferences": [ + { + "methodId": { + "declaration": 4398, + "isOffset": false, + "isSlot": false, + "src": "4011:8:27", + "valueSize": 1 + } + } + ], + "id": 4400, + "nodeType": "InlineAssembly", + "operations": "{\n methodId := calldataload(0)\n}", + "src": "3997:50:27" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + }, + "id": 4407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4401, + "name": "mockTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3995, + "src": "4049:9:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes memory => enum MockContract.MockType)" + } + }, + "id": 4404, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4402, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "4059:3:27", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4059:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4049:19:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4405, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "4072:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Revert", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4072:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "4049:38:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4416, + "nodeType": "IfStatement", + "src": "4045:85:27", + "trueBody": { + "id": 4415, + "nodeType": "Block", + "src": "4089:41:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4409, + "name": "revertMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4003, + "src": "4101:13:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", + "typeString": "mapping(bytes memory => string storage ref)" + } + }, + "id": 4412, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4410, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "4115:3:27", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4115:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4101:23:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 4408, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4496, + 4497 + ], + "referencedDeclaration": 4497, + "src": "4094:6:27", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 4413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4094:31:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4414, + "nodeType": "ExpressionStatement", + "src": "4094:31:27" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + }, + "id": 4423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4417, + "name": "mockTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3995, + "src": "4137:9:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes memory => enum MockContract.MockType)" + } + }, + "id": 4420, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4418, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "4147:3:27", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4147:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4137:19:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4421, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "4160:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "OutOfGas", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4160:17:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "4137:40:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4428, + "nodeType": "IfStatement", + "src": "4133:67:27", + "trueBody": { + "id": 4427, + "nodeType": "Block", + "src": "4179:21:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4424, + "name": "useAllGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4394, + "src": "4184:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 4425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4184:11:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4426, + "nodeType": "ExpressionStatement", + "src": "4184:11:27" + } + ] + } + }, + { + "assignments": [ + 4430 + ], + "declarations": [ + { + "constant": false, + "id": 4430, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 4475, + "src": "4203:19:27", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4429, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4203:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4435, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4431, + "name": "expectations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3999, + "src": "4225:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", + "typeString": "mapping(bytes memory => bytes storage ref)" + } + }, + "id": 4434, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4432, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "4238:3:27", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4238:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4225:22:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4203:44:27" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4436, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4430, + "src": "4308:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4308:13:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4325:1:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4308:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4472, + "nodeType": "IfStatement", + "src": "4304:241:27", + "trueBody": { + "id": 4471, + "nodeType": "Block", + "src": "4328:217:27", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + }, + "id": 4445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4440, + "name": "mockTypesAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4011, + "src": "4337:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + } + }, + "id": 4442, + "indexExpression": { + "argumentTypes": null, + "id": 4441, + "name": "methodId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4398, + "src": "4350:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4337:22:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4443, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "4363:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Revert", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4363:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "4337:41:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4453, + "nodeType": "IfStatement", + "src": "4333:93:27", + "trueBody": { + "id": 4452, + "nodeType": "Block", + "src": "4380:46:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4447, + "name": "revertMessageAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4019, + "src": "4393:16:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", + "typeString": "mapping(bytes4 => string storage ref)" + } + }, + "id": 4449, + "indexExpression": { + "argumentTypes": null, + "id": 4448, + "name": "methodId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4398, + "src": "4410:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4393:26:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 4446, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4496, + 4497 + ], + "referencedDeclaration": 4497, + "src": "4386:6:27", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 4450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4386:34:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4451, + "nodeType": "ExpressionStatement", + "src": "4386:34:27" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + }, + "id": 4459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4454, + "name": "mockTypesAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4011, + "src": "4434:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + } + }, + "id": 4456, + "indexExpression": { + "argumentTypes": null, + "id": 4455, + "name": "methodId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4398, + "src": "4447:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4434:22:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4457, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "4460:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "OutOfGas", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4460:17:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "4434:43:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4464, + "nodeType": "IfStatement", + "src": "4430:72:27", + "trueBody": { + "id": 4463, + "nodeType": "Block", + "src": "4479:23:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4460, + "name": "useAllGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4394, + "src": "4485:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 4461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4485:11:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4462, + "nodeType": "ExpressionStatement", + "src": "4485:11:27" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 4469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4465, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4430, + "src": "4506:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4466, + "name": "expectationsAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4015, + "src": "4515:15:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", + "typeString": "mapping(bytes4 => bytes storage ref)" + } + }, + "id": 4468, + "indexExpression": { + "argumentTypes": null, + "id": 4467, + "name": "methodId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4398, + "src": "4531:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4515:25:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "src": "4506:34:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4470, + "nodeType": "ExpressionStatement", + "src": "4506:34:27" + } + ] + } + }, + { + "externalReferences": [ + { + "result": { + "declaration": 4430, + "isOffset": false, + "isSlot": false, + "src": "4579:6:27", + "valueSize": 1 + } + }, + { + "result": { + "declaration": 4430, + "isOffset": false, + "isSlot": false, + "src": "4594:6:27", + "valueSize": 1 + } + } + ], + "id": 4473, + "nodeType": "InlineAssembly", + "operations": "{\n return(add(0x20, result), mload(result))\n}", + "src": "4548:61:27" + } + ] + }, + "documentation": null, + "id": 4475, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4395, + "nodeType": "ParameterList", + "parameters": [], + "src": "3956:2:27" + }, + "payable": true, + "returnParameters": { + "id": 4396, + "nodeType": "ParameterList", + "parameters": [], + "src": "3974:0:27" + }, + "scope": 4476, + "src": "3948:661:27", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4477, + "src": "26:4585:27" + } + ], + "src": "0:4612:27" + }, + "legacyAST": { + "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", + "exportedSymbols": { + "MockContract": [ + 4476 + ] + }, + "id": 4477, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3969, + "literals": [ + "solidity", + "^", + "0.4", + ".23" + ], + "nodeType": "PragmaDirective", + "src": "0:24:27" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4476, + "linearizedBaseContracts": [ + 4476 + ], + "name": "MockContract", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "MockContract.MockType", + "id": 3973, + "members": [ + { + "id": 3970, + "name": "Return", + "nodeType": "EnumValue", + "src": "67:6:27" + }, + { + "id": 3971, + "name": "Revert", + "nodeType": "EnumValue", + "src": "75:6:27" + }, + { + "id": 3972, + "name": "OutOfGas", + "nodeType": "EnumValue", + "src": "83:8:27" + } + ], + "name": "MockType", + "nodeType": "EnumDefinition", + "src": "51:42:27" + }, + { + "constant": true, + "id": 3976, + "name": "MOCKS_LIST_START", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "97:46:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3974, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "97:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307831", + "id": 3975, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "140:3:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "0x1" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 3979, + "name": "MOCKS_LIST_END", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "146:45:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes" + }, + "typeName": { + "id": 3977, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "146:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786666", + "id": 3978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "185:6:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513", + "typeString": "literal_string \"0xff\"" + }, + "value": "0xff" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 3984, + "name": "MOCKS_LIST_END_HASH", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "194:71:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3980, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "194:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3982, + "name": "MOCKS_LIST_END", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3979, + "src": "250:14:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + ], + "id": 3981, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "240:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 3983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "240:25:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 3987, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "268:47:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3985, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "268:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307831", + "id": 3986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "312:3:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "0x1" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 3991, + "name": "mocks", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "380:31:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes)" + }, + "typeName": { + "id": 3990, + "keyType": { + "id": 3988, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "388:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "380:25:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes)" + }, + "valueType": { + "id": 3989, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "399:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3995, + "name": "mockTypes", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "414:36:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes => enum MockContract.MockType)" + }, + "typeName": { + "id": 3994, + "keyType": { + "id": 3992, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "422:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "nodeType": "Mapping", + "src": "414:26:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes => enum MockContract.MockType)" + }, + "valueType": { + "contractScope": null, + "id": 3993, + "name": "MockType", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3973, + "src": "431:8:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3999, + "name": "expectations", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "453:36:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", + "typeString": "mapping(bytes => bytes)" + }, + "typeName": { + "id": 3998, + "keyType": { + "id": 3996, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "461:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "nodeType": "Mapping", + "src": "453:23:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", + "typeString": "mapping(bytes => bytes)" + }, + "valueType": { + "id": 3997, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "470:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4003, + "name": "revertMessage", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "492:38:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", + "typeString": "mapping(bytes => string)" + }, + "typeName": { + "id": 4002, + "keyType": { + "id": 4000, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "500:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "nodeType": "Mapping", + "src": "492:24:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", + "typeString": "mapping(bytes => string)" + }, + "valueType": { + "id": 4001, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "509:6:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4007, + "name": "anyMocks", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "534:34:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + }, + "typeName": { + "id": 4006, + "keyType": { + "id": 4004, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "542:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "534:25:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + }, + "valueType": { + "id": 4005, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "552:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4011, + "name": "mockTypesAny", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "571:40:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + }, + "typeName": { + "id": 4010, + "keyType": { + "id": 4008, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "579:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "571:27:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + }, + "valueType": { + "contractScope": null, + "id": 4009, + "name": "MockType", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3973, + "src": "589:8:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4015, + "name": "expectationsAny", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "614:40:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", + "typeString": "mapping(bytes4 => bytes)" + }, + "typeName": { + "id": 4014, + "keyType": { + "id": 4012, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "622:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "614:24:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", + "typeString": "mapping(bytes4 => bytes)" + }, + "valueType": { + "id": 4013, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "632:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4019, + "name": "revertMessageAny", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "657:42:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", + "typeString": "mapping(bytes4 => string)" + }, + "typeName": { + "id": 4018, + "keyType": { + "id": 4016, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "665:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "657:25:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", + "typeString": "mapping(bytes4 => string)" + }, + "valueType": { + "id": 4017, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "675:6:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 4034, + "nodeType": "Block", + "src": "717:101:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4022, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "721:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4024, + "indexExpression": { + "argumentTypes": null, + "id": 4023, + "name": "MOCKS_LIST_START", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3976, + "src": "727:16:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "721:23:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4025, + "name": "MOCKS_LIST_END", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3979, + "src": "747:14:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "src": "721:40:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4027, + "nodeType": "ExpressionStatement", + "src": "721:40:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4028, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "765:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4030, + "indexExpression": { + "argumentTypes": null, + "id": 4029, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3987, + "src": "774:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "765:28:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4031, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3987, + "src": "796:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "765:49:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 4033, + "nodeType": "ExpressionStatement", + "src": "765:49:27" + } + ] + }, + "documentation": null, + "id": 4035, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4020, + "nodeType": "ParameterList", + "parameters": [], + "src": "714:2:27" + }, + "payable": false, + "returnParameters": { + "id": 4021, + "nodeType": "ParameterList", + "parameters": [], + "src": "717:0:27" + }, + "scope": 4476, + "src": "703:115:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4068, + "nodeType": "Block", + "src": "860:164:27", + "statements": [ + { + "assignments": [ + 4041 + ], + "declarations": [ + { + "constant": false, + "id": 4041, + "name": "callHash", + "nodeType": "VariableDeclaration", + "scope": 4069, + "src": "864:16:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4040, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "864:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4045, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4043, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4037, + "src": "893:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4042, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "883:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 4044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "883:15:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "864:34:27" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4046, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "906:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4048, + "indexExpression": { + "argumentTypes": null, + "id": 4047, + "name": "callHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4041, + "src": "912:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "906:15:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4049, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "906:22:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4050, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "932:1:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "906:27:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4067, + "nodeType": "IfStatement", + "src": "902:119:27", + "trueBody": { + "id": 4066, + "nodeType": "Block", + "src": "935:86:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4052, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "940:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4054, + "indexExpression": { + "argumentTypes": null, + "id": 4053, + "name": "callHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4041, + "src": "946:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "940:15:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4055, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "958:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4057, + "indexExpression": { + "argumentTypes": null, + "id": 4056, + "name": "MOCKS_LIST_START", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3976, + "src": "964:16:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "958:23:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "src": "940:41:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4059, + "nodeType": "ExpressionStatement", + "src": "940:41:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4060, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "986:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4062, + "indexExpression": { + "argumentTypes": null, + "id": 4061, + "name": "MOCKS_LIST_START", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3976, + "src": "992:16:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "986:23:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4063, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4037, + "src": "1012:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "986:30:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4065, + "nodeType": "ExpressionStatement", + "src": "986:30:27" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4069, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "trackMock", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4037, + "name": "call", + "nodeType": "VariableDeclaration", + "scope": 4069, + "src": "840:10:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4036, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "840:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "839:12:27" + }, + "payable": false, + "returnParameters": { + "id": 4039, + "nodeType": "ParameterList", + "parameters": [], + "src": "860:0:27" + }, + "scope": 4476, + "src": "821:203:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 4095, + "nodeType": "Block", + "src": "1074:141:27", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 4078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4074, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "1082:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4076, + "indexExpression": { + "argumentTypes": null, + "id": 4075, + "name": "methodId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "1091:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1082:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830", + "id": 4077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1104:3:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + }, + "src": "1082:25:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4094, + "nodeType": "IfStatement", + "src": "1078:134:27", + "trueBody": { + "id": 4093, + "nodeType": "Block", + "src": "1109:103:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4079, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "1114:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4081, + "indexExpression": { + "argumentTypes": null, + "id": 4080, + "name": "methodId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "1123:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1114:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4082, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "1135:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4084, + "indexExpression": { + "argumentTypes": null, + "id": 4083, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3987, + "src": "1144:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1135:28:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1114:49:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 4086, + "nodeType": "ExpressionStatement", + "src": "1114:49:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4087, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "1168:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4089, + "indexExpression": { + "argumentTypes": null, + "id": 4088, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3987, + "src": "1177:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1168:28:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4090, + "name": "methodId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "1199:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1168:39:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 4092, + "nodeType": "ExpressionStatement", + "src": "1168:39:27" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4096, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "trackAnyMock", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4072, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4071, + "name": "methodId", + "nodeType": "VariableDeclaration", + "scope": 4096, + "src": "1049:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4070, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1049:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1048:17:27" + }, + "payable": false, + "returnParameters": { + "id": 4073, + "nodeType": "ParameterList", + "parameters": [], + "src": "1074:0:27" + }, + "scope": 4476, + "src": "1027:188:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 4120, + "nodeType": "Block", + "src": "1664:93:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4103, + "name": "mockTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3995, + "src": "1668:9:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes memory => enum MockContract.MockType)" + } + }, + "id": 4105, + "indexExpression": { + "argumentTypes": null, + "id": 4104, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4098, + "src": "1678:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1668:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4106, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "1686:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4107, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Return", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1686:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "1668:33:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4109, + "nodeType": "ExpressionStatement", + "src": "1668:33:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4110, + "name": "expectations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3999, + "src": "1705:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", + "typeString": "mapping(bytes memory => bytes storage ref)" + } + }, + "id": 4112, + "indexExpression": { + "argumentTypes": null, + "id": 4111, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4098, + "src": "1718:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1705:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4113, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "1726:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "1705:29:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4115, + "nodeType": "ExpressionStatement", + "src": "1705:29:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4117, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4098, + "src": "1748:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4116, + "name": "trackMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4069, + "src": "1738:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory)" + } + }, + "id": 4118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1738:15:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4119, + "nodeType": "ExpressionStatement", + "src": "1738:15:27" + } + ] + }, + "documentation": "@dev Stores a response that the contract will return if the fallback function is called with the given method name and matching arguments.\n@param call ABI encoded calldata that if invoked on this contract will return `response`. Parameter values need to match exactly.\n@param response ABI encoded response that will be returned if this contract is invoked with `call`", + "id": 4121, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "givenReturn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4098, + "name": "call", + "nodeType": "VariableDeclaration", + "scope": 4121, + "src": "1629:10:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4097, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1629:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4100, + "name": "response", + "nodeType": "VariableDeclaration", + "scope": 4121, + "src": "1641:14:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4099, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1641:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1628:28:27" + }, + "payable": false, + "returnParameters": { + "id": 4102, + "nodeType": "ParameterList", + "parameters": [], + "src": "1664:0:27" + }, + "scope": 4476, + "src": "1608:149:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4145, + "nodeType": "Block", + "src": "1822:110:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4128, + "name": "mockTypesAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4011, + "src": "1826:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + } + }, + "id": 4130, + "indexExpression": { + "argumentTypes": null, + "id": 4129, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4123, + "src": "1839:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1826:20:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4131, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "1849:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Return", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1849:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "1826:38:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4134, + "nodeType": "ExpressionStatement", + "src": "1826:38:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4135, + "name": "expectationsAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4015, + "src": "1868:15:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", + "typeString": "mapping(bytes4 => bytes storage ref)" + } + }, + "id": 4137, + "indexExpression": { + "argumentTypes": null, + "id": 4136, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4123, + "src": "1884:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1868:23:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4138, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4125, + "src": "1894:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "1868:34:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4140, + "nodeType": "ExpressionStatement", + "src": "1868:34:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4142, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4123, + "src": "1919:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 4141, + "name": "trackAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4096, + "src": "1906:12:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 4143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1906:20:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4144, + "nodeType": "ExpressionStatement", + "src": "1906:20:27" + } + ] + }, + "documentation": null, + "id": 4146, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "givenReturnAny", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4123, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 4146, + "src": "1784:13:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4122, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1784:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4125, + "name": "response", + "nodeType": "VariableDeclaration", + "scope": 4146, + "src": "1799:14:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4124, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1799:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1783:31:27" + }, + "payable": false, + "returnParameters": { + "id": 4127, + "nodeType": "ParameterList", + "parameters": [], + "src": "1822:0:27" + }, + "scope": 4476, + "src": "1760:172:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4168, + "nodeType": "Block", + "src": "1975:88:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4151, + "name": "mockTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3995, + "src": "1979:9:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes memory => enum MockContract.MockType)" + } + }, + "id": 4153, + "indexExpression": { + "argumentTypes": null, + "id": 4152, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4148, + "src": "1989:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1979:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4154, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "1997:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4155, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Revert", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1997:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "1979:33:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4157, + "nodeType": "ExpressionStatement", + "src": "1979:33:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4158, + "name": "revertMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4003, + "src": "2016:13:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", + "typeString": "mapping(bytes memory => string storage ref)" + } + }, + "id": 4160, + "indexExpression": { + "argumentTypes": null, + "id": 4159, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4148, + "src": "2030:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2016:19:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "", + "id": 4161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2038:2:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "src": "2016:24:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4163, + "nodeType": "ExpressionStatement", + "src": "2016:24:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4165, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4148, + "src": "2054:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4164, + "name": "trackMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4069, + "src": "2044:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory)" + } + }, + "id": 4166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2044:15:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4167, + "nodeType": "ExpressionStatement", + "src": "2044:15:27" + } + ] + }, + "documentation": null, + "id": 4169, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "givenRevert", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4149, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4148, + "name": "call", + "nodeType": "VariableDeclaration", + "scope": 4169, + "src": "1956:10:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4147, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1956:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1955:12:27" + }, + "payable": false, + "returnParameters": { + "id": 4150, + "nodeType": "ParameterList", + "parameters": [], + "src": "1975:0:27" + }, + "scope": 4476, + "src": "1935:128:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4185, + "nodeType": "Block", + "src": "2112:72:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4174, + "name": "mockTypesAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4011, + "src": "2116:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + } + }, + "id": 4176, + "indexExpression": { + "argumentTypes": null, + "id": 4175, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4171, + "src": "2129:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2116:20:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4177, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "2139:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Revert", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2139:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "2116:38:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4180, + "nodeType": "ExpressionStatement", + "src": "2116:38:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4182, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4171, + "src": "2171:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 4181, + "name": "trackAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4096, + "src": "2158:12:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 4183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2158:20:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4184, + "nodeType": "ExpressionStatement", + "src": "2158:20:27" + } + ] + }, + "documentation": null, + "id": 4186, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "givenRevertAny", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4172, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4171, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 4186, + "src": "2090:13:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4170, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2090:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2089:15:27" + }, + "payable": false, + "returnParameters": { + "id": 4173, + "nodeType": "ParameterList", + "parameters": [], + "src": "2112:0:27" + }, + "scope": 4476, + "src": "2066:118:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4210, + "nodeType": "Block", + "src": "2254:93:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4193, + "name": "mockTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3995, + "src": "2258:9:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes memory => enum MockContract.MockType)" + } + }, + "id": 4195, + "indexExpression": { + "argumentTypes": null, + "id": 4194, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4188, + "src": "2268:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2258:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4196, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "2276:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4197, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Revert", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2276:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "2258:33:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4199, + "nodeType": "ExpressionStatement", + "src": "2258:33:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4200, + "name": "revertMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4003, + "src": "2295:13:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", + "typeString": "mapping(bytes memory => string storage ref)" + } + }, + "id": 4202, + "indexExpression": { + "argumentTypes": null, + "id": 4201, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4188, + "src": "2309:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2295:19:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4203, + "name": "message", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4190, + "src": "2317:7:27", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2295:29:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4205, + "nodeType": "ExpressionStatement", + "src": "2295:29:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4207, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4188, + "src": "2338:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4206, + "name": "trackMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4069, + "src": "2328:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory)" + } + }, + "id": 4208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2328:15:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4209, + "nodeType": "ExpressionStatement", + "src": "2328:15:27" + } + ] + }, + "documentation": null, + "id": 4211, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "givenRevertWithMessage", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4191, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4188, + "name": "call", + "nodeType": "VariableDeclaration", + "scope": 4211, + "src": "2219:10:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4187, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2219:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4190, + "name": "message", + "nodeType": "VariableDeclaration", + "scope": 4211, + "src": "2231:14:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4189, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2231:6:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2218:28:27" + }, + "payable": false, + "returnParameters": { + "id": 4192, + "nodeType": "ParameterList", + "parameters": [], + "src": "2254:0:27" + }, + "scope": 4476, + "src": "2187:160:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4235, + "nodeType": "Block", + "src": "2423:110:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4218, + "name": "mockTypesAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4011, + "src": "2427:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + } + }, + "id": 4220, + "indexExpression": { + "argumentTypes": null, + "id": 4219, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4213, + "src": "2440:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2427:20:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4221, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "2450:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Revert", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2450:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "2427:38:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4224, + "nodeType": "ExpressionStatement", + "src": "2427:38:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4225, + "name": "revertMessageAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4019, + "src": "2469:16:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", + "typeString": "mapping(bytes4 => string storage ref)" + } + }, + "id": 4227, + "indexExpression": { + "argumentTypes": null, + "id": 4226, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4213, + "src": "2486:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2469:24:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4228, + "name": "message", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4215, + "src": "2496:7:27", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2469:34:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4230, + "nodeType": "ExpressionStatement", + "src": "2469:34:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4232, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4213, + "src": "2520:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 4231, + "name": "trackAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4096, + "src": "2507:12:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 4233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2507:20:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4234, + "nodeType": "ExpressionStatement", + "src": "2507:20:27" + } + ] + }, + "documentation": null, + "id": 4236, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "givenRevertAnyWithMessage", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4213, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 4236, + "src": "2385:13:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4212, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2385:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4215, + "name": "message", + "nodeType": "VariableDeclaration", + "scope": 4236, + "src": "2400:14:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4214, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2400:6:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2384:31:27" + }, + "payable": false, + "returnParameters": { + "id": 4217, + "nodeType": "ParameterList", + "parameters": [], + "src": "2423:0:27" + }, + "scope": 4476, + "src": "2350:183:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4252, + "nodeType": "Block", + "src": "2578:62:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4241, + "name": "mockTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3995, + "src": "2582:9:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes memory => enum MockContract.MockType)" + } + }, + "id": 4243, + "indexExpression": { + "argumentTypes": null, + "id": 4242, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4238, + "src": "2592:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2582:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4244, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "2600:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "OutOfGas", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2600:17:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "2582:35:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4247, + "nodeType": "ExpressionStatement", + "src": "2582:35:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4249, + "name": "call", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4238, + "src": "2631:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4248, + "name": "trackMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4069, + "src": "2621:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory)" + } + }, + "id": 4250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2621:15:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4251, + "nodeType": "ExpressionStatement", + "src": "2621:15:27" + } + ] + }, + "documentation": null, + "id": 4253, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "givenOutOfGas", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4239, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4238, + "name": "call", + "nodeType": "VariableDeclaration", + "scope": 4253, + "src": "2559:10:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4237, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2559:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2558:12:27" + }, + "payable": false, + "returnParameters": { + "id": 4240, + "nodeType": "ParameterList", + "parameters": [], + "src": "2578:0:27" + }, + "scope": 4476, + "src": "2536:104:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4269, + "nodeType": "Block", + "src": "2691:73:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4258, + "name": "mockTypesAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4011, + "src": "2695:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + } + }, + "id": 4260, + "indexExpression": { + "argumentTypes": null, + "id": 4259, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4255, + "src": "2708:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2695:20:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4261, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "2718:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "OutOfGas", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2718:17:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "2695:40:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4264, + "nodeType": "ExpressionStatement", + "src": "2695:40:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4266, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4255, + "src": "2752:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 4265, + "name": "trackAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4096, + "src": "2739:12:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 4267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2739:20:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4268, + "nodeType": "ExpressionStatement", + "src": "2739:20:27" + } + ] + }, + "documentation": null, + "id": 4270, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "givenOutOfGasAny", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4256, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4255, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 4270, + "src": "2669:13:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4254, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2669:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2668:15:27" + }, + "payable": false, + "returnParameters": { + "id": 4257, + "nodeType": "ParameterList", + "parameters": [], + "src": "2691:0:27" + }, + "scope": 4476, + "src": "2643:121:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4385, + "nodeType": "Block", + "src": "2791:1052:27", + "statements": [ + { + "assignments": [ + 4274 + ], + "declarations": [ + { + "constant": false, + "id": 4274, + "name": "nextMock", + "nodeType": "VariableDeclaration", + "scope": 4386, + "src": "2822:21:27", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4273, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2822:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4278, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4275, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "2846:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4277, + "indexExpression": { + "argumentTypes": null, + "id": 4276, + "name": "MOCKS_LIST_START", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3976, + "src": "2852:16:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2846:23:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2822:47:27" + }, + { + "assignments": [ + 4280 + ], + "declarations": [ + { + "constant": false, + "id": 4280, + "name": "mockHash", + "nodeType": "VariableDeclaration", + "scope": 4386, + "src": "2873:16:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4279, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2873:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4284, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4282, + "name": "nextMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4274, + "src": "2902:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4281, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "2892:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 4283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2892:19:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2873:38:27" + }, + { + "body": { + "id": 4325, + "nodeType": "Block", + "src": "2983:315:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4288, + "name": "mockTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3995, + "src": "3014:9:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes memory => enum MockContract.MockType)" + } + }, + "id": 4290, + "indexExpression": { + "argumentTypes": null, + "id": 4289, + "name": "nextMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4274, + "src": "3024:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3014:19:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4291, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "3036:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Return", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3036:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "3014:37:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4294, + "nodeType": "ExpressionStatement", + "src": "3014:37:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4295, + "name": "expectations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3999, + "src": "3056:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", + "typeString": "mapping(bytes memory => bytes storage ref)" + } + }, + "id": 4297, + "indexExpression": { + "argumentTypes": null, + "id": 4296, + "name": "nextMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4274, + "src": "3069:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3056:22:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "", + "id": 4298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3081:5:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "src": "3056:30:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4300, + "nodeType": "ExpressionStatement", + "src": "3056:30:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4301, + "name": "revertMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4003, + "src": "3091:13:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", + "typeString": "mapping(bytes memory => string storage ref)" + } + }, + "id": 4303, + "indexExpression": { + "argumentTypes": null, + "id": 4302, + "name": "nextMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4274, + "src": "3105:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3091:23:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "", + "id": 4304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3117:2:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "src": "3091:28:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4306, + "nodeType": "ExpressionStatement", + "src": "3091:28:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4307, + "name": "nextMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4274, + "src": "3154:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4308, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "3165:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4310, + "indexExpression": { + "argumentTypes": null, + "id": 4309, + "name": "mockHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "3171:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3165:15:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "src": "3154:26:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4312, + "nodeType": "ExpressionStatement", + "src": "3154:26:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4313, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "3215:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4315, + "indexExpression": { + "argumentTypes": null, + "id": 4314, + "name": "mockHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "3221:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3215:15:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "", + "id": 4316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3233:2:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "src": "3215:20:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4318, + "nodeType": "ExpressionStatement", + "src": "3215:20:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4319, + "name": "mockHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "3263:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4321, + "name": "nextMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4274, + "src": "3284:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4320, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4485, + "src": "3274:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 4322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3274:19:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3263:30:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4324, + "nodeType": "ExpressionStatement", + "src": "3263:30:27" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 4287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4285, + "name": "mockHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "2950:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 4286, + "name": "MOCKS_LIST_END_HASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3984, + "src": "2962:19:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "2950:31:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4326, + "nodeType": "WhileStatement", + "src": "2944:354:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4327, + "name": "mocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3991, + "src": "3317:5:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", + "typeString": "mapping(bytes32 => bytes storage ref)" + } + }, + "id": 4329, + "indexExpression": { + "argumentTypes": null, + "id": 4328, + "name": "MOCKS_LIST_START", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3976, + "src": "3323:16:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3317:23:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4330, + "name": "MOCKS_LIST_END", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3979, + "src": "3343:14:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "src": "3317:40:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4332, + "nodeType": "ExpressionStatement", + "src": "3317:40:27" + }, + { + "assignments": [ + 4334 + ], + "declarations": [ + { + "constant": false, + "id": 4334, + "name": "nextAnyMock", + "nodeType": "VariableDeclaration", + "scope": 4386, + "src": "3387:18:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4333, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3387:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4338, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4335, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "3408:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4337, + "indexExpression": { + "argumentTypes": null, + "id": 4336, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3987, + "src": "3417:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3408:28:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3387:49:27" + }, + { + "body": { + "id": 4377, + "nodeType": "Block", + "src": "3481:290:27", + "statements": [ + { + "assignments": [ + 4343 + ], + "declarations": [ + { + "constant": false, + "id": 4343, + "name": "currentAnyMock", + "nodeType": "VariableDeclaration", + "scope": 4386, + "src": "3486:21:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4342, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3486:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4345, + "initialValue": { + "argumentTypes": null, + "id": 4344, + "name": "nextAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "3510:11:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3486:35:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4346, + "name": "mockTypesAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4011, + "src": "3526:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + } + }, + "id": 4348, + "indexExpression": { + "argumentTypes": null, + "id": 4347, + "name": "currentAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4343, + "src": "3539:14:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3526:28:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4349, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "3557:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Return", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3557:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "3526:46:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "id": 4352, + "nodeType": "ExpressionStatement", + "src": "3526:46:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4353, + "name": "expectationsAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4015, + "src": "3577:15:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", + "typeString": "mapping(bytes4 => bytes storage ref)" + } + }, + "id": 4355, + "indexExpression": { + "argumentTypes": null, + "id": 4354, + "name": "currentAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4343, + "src": "3593:14:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3577:31:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "", + "id": 4356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3611:5:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "src": "3577:39:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 4358, + "nodeType": "ExpressionStatement", + "src": "3577:39:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4359, + "name": "revertMessageAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4019, + "src": "3621:16:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", + "typeString": "mapping(bytes4 => string storage ref)" + } + }, + "id": 4361, + "indexExpression": { + "argumentTypes": null, + "id": 4360, + "name": "currentAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4343, + "src": "3638:14:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3621:32:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "", + "id": 4362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3656:2:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "src": "3621:37:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4364, + "nodeType": "ExpressionStatement", + "src": "3621:37:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4365, + "name": "nextAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "3663:11:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4366, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "3677:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4368, + "indexExpression": { + "argumentTypes": null, + "id": 4367, + "name": "currentAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4343, + "src": "3686:14:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3677:24:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "3663:38:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 4370, + "nodeType": "ExpressionStatement", + "src": "3663:38:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4371, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "3736:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4373, + "indexExpression": { + "argumentTypes": null, + "id": 4372, + "name": "currentAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4343, + "src": "3745:14:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3736:24:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830", + "id": 4374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3763:3:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + }, + "src": "3736:30:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 4376, + "nodeType": "ExpressionStatement", + "src": "3736:30:27" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 4341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4339, + "name": "nextAnyMock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "3446:11:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 4340, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3987, + "src": "3461:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "3446:33:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4378, + "nodeType": "WhileStatement", + "src": "3440:331:27" + }, + { + "expression": { + "argumentTypes": null, + "id": 4383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4379, + "name": "anyMocks", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4007, + "src": "3790:8:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", + "typeString": "mapping(bytes4 => bytes4)" + } + }, + "id": 4381, + "indexExpression": { + "argumentTypes": null, + "id": 4380, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3987, + "src": "3799:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3790:28:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4382, + "name": "SENTINEL_ANY_MOCKS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3987, + "src": "3821:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "3790:49:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 4384, + "nodeType": "ExpressionStatement", + "src": "3790:49:27" + } + ] + }, + "documentation": null, + "id": 4386, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "reset", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4271, + "nodeType": "ParameterList", + "parameters": [], + "src": "2781:2:27" + }, + "payable": false, + "returnParameters": { + "id": 4272, + "nodeType": "ParameterList", + "parameters": [], + "src": "2791:0:27" + }, + "scope": 4476, + "src": "2767:1076:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4393, + "nodeType": "Block", + "src": "3875:70:27", + "statements": [ + { + "body": { + "id": 4391, + "nodeType": "Block", + "src": "3891:51:27", + "statements": [ + { + "externalReferences": [], + "id": 4390, + "nodeType": "InlineAssembly", + "operations": "{\n sstore(sload(0x40), 1)\n}", + "src": "3896:46:27" + } + ] + }, + "condition": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3885:4:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "id": 4392, + "nodeType": "WhileStatement", + "src": "3879:63:27" + } + ] + }, + "documentation": null, + "id": 4394, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "useAllGas", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4387, + "nodeType": "ParameterList", + "parameters": [], + "src": "3864:2:27" + }, + "payable": false, + "returnParameters": { + "id": 4388, + "nodeType": "ParameterList", + "parameters": [], + "src": "3875:0:27" + }, + "scope": 4476, + "src": "3846:99:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 4474, + "nodeType": "Block", + "src": "3974:635:27", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 4398, + "name": "methodId", + "nodeType": "VariableDeclaration", + "scope": 4475, + "src": "3978:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4397, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3978:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4399, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3978:15:27" + }, + { + "externalReferences": [ + { + "methodId": { + "declaration": 4398, + "isOffset": false, + "isSlot": false, + "src": "4011:8:27", + "valueSize": 1 + } + } + ], + "id": 4400, + "nodeType": "InlineAssembly", + "operations": "{\n methodId := calldataload(0)\n}", + "src": "3997:50:27" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + }, + "id": 4407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4401, + "name": "mockTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3995, + "src": "4049:9:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes memory => enum MockContract.MockType)" + } + }, + "id": 4404, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4402, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "4059:3:27", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4059:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4049:19:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4405, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "4072:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Revert", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4072:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "4049:38:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4416, + "nodeType": "IfStatement", + "src": "4045:85:27", + "trueBody": { + "id": 4415, + "nodeType": "Block", + "src": "4089:41:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4409, + "name": "revertMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4003, + "src": "4101:13:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", + "typeString": "mapping(bytes memory => string storage ref)" + } + }, + "id": 4412, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4410, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "4115:3:27", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4115:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4101:23:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 4408, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4496, + 4497 + ], + "referencedDeclaration": 4497, + "src": "4094:6:27", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 4413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4094:31:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4414, + "nodeType": "ExpressionStatement", + "src": "4094:31:27" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + }, + "id": 4423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4417, + "name": "mockTypes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3995, + "src": "4137:9:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes memory => enum MockContract.MockType)" + } + }, + "id": 4420, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4418, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "4147:3:27", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4147:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4137:19:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4421, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "4160:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "OutOfGas", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4160:17:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "4137:40:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4428, + "nodeType": "IfStatement", + "src": "4133:67:27", + "trueBody": { + "id": 4427, + "nodeType": "Block", + "src": "4179:21:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4424, + "name": "useAllGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4394, + "src": "4184:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 4425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4184:11:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4426, + "nodeType": "ExpressionStatement", + "src": "4184:11:27" + } + ] + } + }, + { + "assignments": [ + 4430 + ], + "declarations": [ + { + "constant": false, + "id": 4430, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 4475, + "src": "4203:19:27", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4429, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4203:5:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4435, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4431, + "name": "expectations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3999, + "src": "4225:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", + "typeString": "mapping(bytes memory => bytes storage ref)" + } + }, + "id": 4434, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4432, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "4238:3:27", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4238:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4225:22:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4203:44:27" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4436, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4430, + "src": "4308:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4308:13:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4325:1:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4308:18:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4472, + "nodeType": "IfStatement", + "src": "4304:241:27", + "trueBody": { + "id": 4471, + "nodeType": "Block", + "src": "4328:217:27", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + }, + "id": 4445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4440, + "name": "mockTypesAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4011, + "src": "4337:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + } + }, + "id": 4442, + "indexExpression": { + "argumentTypes": null, + "id": 4441, + "name": "methodId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4398, + "src": "4350:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4337:22:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4443, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "4363:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Revert", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4363:15:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "4337:41:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4453, + "nodeType": "IfStatement", + "src": "4333:93:27", + "trueBody": { + "id": 4452, + "nodeType": "Block", + "src": "4380:46:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4447, + "name": "revertMessageAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4019, + "src": "4393:16:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", + "typeString": "mapping(bytes4 => string storage ref)" + } + }, + "id": 4449, + "indexExpression": { + "argumentTypes": null, + "id": 4448, + "name": "methodId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4398, + "src": "4410:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4393:26:27", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 4446, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4496, + 4497 + ], + "referencedDeclaration": 4497, + "src": "4386:6:27", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 4450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4386:34:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4451, + "nodeType": "ExpressionStatement", + "src": "4386:34:27" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + }, + "id": 4459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4454, + "name": "mockTypesAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4011, + "src": "4434:12:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", + "typeString": "mapping(bytes4 => enum MockContract.MockType)" + } + }, + "id": 4456, + "indexExpression": { + "argumentTypes": null, + "id": 4455, + "name": "methodId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4398, + "src": "4447:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4434:22:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4457, + "name": "MockType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3973, + "src": "4460:8:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", + "typeString": "type(enum MockContract.MockType)" + } + }, + "id": 4458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "OutOfGas", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4460:17:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MockType_$3973", + "typeString": "enum MockContract.MockType" + } + }, + "src": "4434:43:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4464, + "nodeType": "IfStatement", + "src": "4430:72:27", + "trueBody": { + "id": 4463, + "nodeType": "Block", + "src": "4479:23:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4460, + "name": "useAllGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4394, + "src": "4485:9:27", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 4461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4485:11:27", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4462, + "nodeType": "ExpressionStatement", + "src": "4485:11:27" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 4469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4465, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4430, + "src": "4506:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4466, + "name": "expectationsAny", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4015, + "src": "4515:15:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", + "typeString": "mapping(bytes4 => bytes storage ref)" + } + }, + "id": 4468, + "indexExpression": { + "argumentTypes": null, + "id": 4467, + "name": "methodId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4398, + "src": "4531:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4515:25:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "src": "4506:34:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4470, + "nodeType": "ExpressionStatement", + "src": "4506:34:27" + } + ] + } + }, + { + "externalReferences": [ + { + "result": { + "declaration": 4430, + "isOffset": false, + "isSlot": false, + "src": "4579:6:27", + "valueSize": 1 + } + }, + { + "result": { + "declaration": 4430, + "isOffset": false, + "isSlot": false, + "src": "4594:6:27", + "valueSize": 1 + } + } + ], + "id": 4473, + "nodeType": "InlineAssembly", + "operations": "{\n return(add(0x20, result), mload(result))\n}", + "src": "4548:61:27" + } + ] + }, + "documentation": null, + "id": 4475, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4395, + "nodeType": "ParameterList", + "parameters": [], + "src": "3956:2:27" + }, + "payable": true, + "returnParameters": { + "id": 4396, + "nodeType": "ParameterList", + "parameters": [], + "src": "3974:0:27" + }, + "scope": 4476, + "src": "3948:661:27", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4477, + "src": "26:4585:27" + } + ], + "src": "0:4612:27" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-09-26T08:32:07.672Z" +} \ No newline at end of file diff --git a/safe-contracts/build/contracts/Module.json b/safe-contracts/build/contracts/Module.json index f46f23c9..ea9158b3 100644 --- a/safe-contracts/build/contracts/Module.json +++ b/safe-contracts/build/contracts/Module.json @@ -30,51 +30,51 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610320806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156102b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820c4cbbb4804cafb192f924790c7620a73fe469c6cf97df4b72000fce648e4f9020029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156102b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820c4cbbb4804cafb192f924790c7620a73fe469c6cf97df4b72000fce648e4f9020029", - "sourceMap": "225:511:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;225:511:9;;;;;;;", - "deployedSourceMap": "225:511:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:9;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:9;;;;;;;;;;;;;:::o;626:248:7:-;359:7:9;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:7;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./MasterCopy.sol\";\nimport \"./ModuleManager.sol\";\n\n\n/// @title Module - Base class for modules.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract Module is MasterCopy {\n\n ModuleManager public manager;\n\n modifier authorized() {\n require(msg.sender == address(manager), \"Method can only be called from manager\");\n _;\n }\n\n function setManager()\n internal\n {\n // manager can only be 0 at initalization of contract.\n // Check ensures that setup function can only be called once.\n require(address(manager) == 0, \"Manager has already been set\");\n manager = ModuleManager(msg.sender);\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", + "bytecode": "0x608060405234801561001057600080fd5b50610320806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156102b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058206735a74f4afef13f3b2701cdd3899ee378ad1eb5d0cd64887ffd5885365545ee0029", + "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156102b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058206735a74f4afef13f3b2701cdd3899ee378ad1eb5d0cd64887ffd5885365545ee0029", + "sourceMap": "233:511:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;233:511:4;;;;;;;", + "deployedSourceMap": "233:511:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;270:28:4;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:28:4;;;;;;;;;;;;;:::o;626:248:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o", + "source": "pragma solidity 0.4.24;\nimport \"../common/MasterCopy.sol\";\nimport \"./ModuleManager.sol\";\n\n\n/// @title Module - Base class for modules.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract Module is MasterCopy {\n\n ModuleManager public manager;\n\n modifier authorized() {\n require(msg.sender == address(manager), \"Method can only be called from manager\");\n _;\n }\n\n function setManager()\n internal\n {\n // manager can only be 0 at initalization of contract.\n // Check ensures that setup function can only be called once.\n require(address(manager) == 0, \"Manager has already been set\");\n manager = ModuleManager(msg.sender);\n }\n}\n", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", "exportedSymbols": { "Module": [ - 913 + 935 ] }, - "id": 914, + "id": 936, "nodeType": "SourceUnit", "nodes": [ { - "id": 872, + "id": 894, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:9" + "src": "0:23:4" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", - "file": "./MasterCopy.sol", - "id": 873, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", + "file": "../common/MasterCopy.sol", + "id": 895, "nodeType": "ImportDirective", - "scope": 914, - "sourceUnit": 814, - "src": "24:26:9", + "scope": 936, + "sourceUnit": 1694, + "src": "24:34:4", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", "file": "./ModuleManager.sol", - "id": 874, + "id": 896, "nodeType": "ImportDirective", - "scope": 914, - "sourceUnit": 1181, - "src": "51:29:9", + "scope": 936, + "sourceUnit": 1213, + "src": "59:29:4", "symbolAliases": [], "unitAlias": "" }, @@ -84,59 +84,59 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 875, + "id": 897, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 813, - "src": "244:10:9", + "referencedDeclaration": 1693, + "src": "252:10:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$813", + "typeIdentifier": "t_contract$_MasterCopy_$1693", "typeString": "contract MasterCopy" } }, - "id": 876, + "id": 898, "nodeType": "InheritanceSpecifier", - "src": "244:10:9" + "src": "252:10:4" } ], "contractDependencies": [ - 813, - 1765 + 1693, + 1735 ], "contractKind": "contract", "documentation": "@title Module - Base class for modules.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 913, + "id": 935, "linearizedBaseContracts": [ - 913, - 813, - 1765 + 935, + 1693, + 1735 ], "name": "Module", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 878, + "id": 900, "name": "manager", "nodeType": "VariableDeclaration", - "scope": 913, - "src": "262:28:9", + "scope": 935, + "src": "270:28:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" }, "typeName": { "contractScope": null, - "id": 877, + "id": 899, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1180, - "src": "262:13:9", + "referencedDeclaration": 1212, + "src": "270:13:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, @@ -145,9 +145,9 @@ }, { "body": { - "id": 891, + "id": 913, "nodeType": "Block", - "src": "319:109:9", + "src": "327:109:4", "statements": [ { "expression": { @@ -159,7 +159,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 886, + "id": 908, "isConstant": false, "isLValue": false, "isPure": false, @@ -168,18 +168,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 881, + "id": 903, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "337:3:9", + "referencedDeclaration": 4491, + "src": "345:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 882, + "id": 904, "isConstant": false, "isLValue": false, "isPure": false, @@ -187,7 +187,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "337:10:9", + "src": "345:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -200,14 +200,14 @@ "arguments": [ { "argumentTypes": null, - "id": 884, + "id": 906, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "359:7:9", + "referencedDeclaration": 900, + "src": "367:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } } @@ -215,24 +215,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } ], - "id": 883, + "id": 905, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "351:7:9", + "src": "359:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 885, + "id": 907, "isConstant": false, "isLValue": false, "isPure": false, @@ -240,13 +240,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "351:16:9", + "src": "359:16:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "337:30:9", + "src": "345:30:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -255,14 +255,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572", - "id": 887, + "id": 909, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "369:40:9", + "src": "377:40:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f857f17fb7e241a141cb689ce417fc402008e9655fbe55c721e32587b5d510de", @@ -282,21 +282,21 @@ "typeString": "literal_string \"Method can only be called from manager\"" } ], - "id": 880, + "id": 902, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "329:7:9", + "referencedDeclaration": 4495, + "src": "337:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 888, + "id": 910, "isConstant": false, "isLValue": false, "isPure": false, @@ -304,41 +304,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "329:81:9", + "src": "337:81:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 889, + "id": 911, "nodeType": "ExpressionStatement", - "src": "329:81:9" + "src": "337:81:4" }, { - "id": 890, + "id": 912, "nodeType": "PlaceholderStatement", - "src": "420:1:9" + "src": "428:1:4" } ] }, "documentation": null, - "id": 892, + "id": 914, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 879, + "id": 901, "nodeType": "ParameterList", "parameters": [], - "src": "316:2:9" + "src": "324:2:4" }, - "src": "297:131:9", + "src": "305:131:4", "visibility": "internal" }, { "body": { - "id": 911, + "id": 933, "nodeType": "Block", - "src": "477:257:9", + "src": "485:257:4", "statements": [ { "expression": { @@ -350,7 +350,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 900, + "id": 922, "isConstant": false, "isLValue": false, "isPure": false, @@ -360,14 +360,14 @@ "arguments": [ { "argumentTypes": null, - "id": 897, + "id": 919, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "636:7:9", + "referencedDeclaration": 900, + "src": "644:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } } @@ -375,24 +375,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } ], - "id": 896, + "id": 918, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "628:7:9", + "src": "636:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 898, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, @@ -400,7 +400,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "628:16:9", + "src": "636:16:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -411,14 +411,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 899, + "id": 921, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "648:1:9", + "src": "656:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -426,7 +426,7 @@ }, "value": "0" }, - "src": "628:21:9", + "src": "636:21:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -435,14 +435,14 @@ { "argumentTypes": null, "hexValue": "4d616e616765722068617320616c7265616479206265656e20736574", - "id": 901, + "id": 923, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "651:30:9", + "src": "659:30:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5b4e79257e154cde85ff5a3cf5bf48eb2c3921f8c031de73d371d41be013f3cc", @@ -462,21 +462,21 @@ "typeString": "literal_string \"Manager has already been set\"" } ], - "id": 895, + "id": 917, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "620:7:9", + "referencedDeclaration": 4495, + "src": "628:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 902, + "id": 924, "isConstant": false, "isLValue": false, "isPure": false, @@ -484,34 +484,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "620:62:9", + "src": "628:62:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 903, + "id": 925, "nodeType": "ExpressionStatement", - "src": "620:62:9" + "src": "628:62:4" }, { "expression": { "argumentTypes": null, - "id": 909, + "id": 931, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 904, + "id": 926, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "692:7:9", + "referencedDeclaration": 900, + "src": "700:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, @@ -524,18 +524,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 906, + "id": 928, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "716:3:9", + "referencedDeclaration": 4491, + "src": "724:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 907, + "id": 929, "isConstant": false, "isLValue": false, "isPure": false, @@ -543,7 +543,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "716:10:9", + "src": "724:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -557,18 +557,18 @@ "typeString": "address" } ], - "id": 905, + "id": 927, "name": "ModuleManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1180, - "src": "702:13:9", + "referencedDeclaration": 1212, + "src": "710:13:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1180_$", + "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1212_$", "typeString": "type(contract ModuleManager)" } }, - "id": 908, + "id": 930, "isConstant": false, "isLValue": false, "isPure": false, @@ -576,26 +576,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "702:25:9", + "src": "710:25:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, - "src": "692:35:9", + "src": "700:35:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, - "id": 910, + "id": 932, "nodeType": "ExpressionStatement", - "src": "692:35:9" + "src": "700:35:4" } ] }, "documentation": null, - "id": 912, + "id": 934, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -603,70 +603,70 @@ "name": "setManager", "nodeType": "FunctionDefinition", "parameters": { - "id": 893, + "id": 915, "nodeType": "ParameterList", "parameters": [], - "src": "453:2:9" + "src": "461:2:4" }, "payable": false, "returnParameters": { - "id": 894, + "id": 916, "nodeType": "ParameterList", "parameters": [], - "src": "477:0:9" + "src": "485:0:4" }, - "scope": 913, - "src": "434:300:9", + "scope": 935, + "src": "442:300:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 914, - "src": "225:511:9" + "scope": 936, + "src": "233:511:4" } ], - "src": "0:737:9" + "src": "0:745:4" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", "exportedSymbols": { "Module": [ - 913 + 935 ] }, - "id": 914, + "id": 936, "nodeType": "SourceUnit", "nodes": [ { - "id": 872, + "id": 894, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:9" + "src": "0:23:4" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", - "file": "./MasterCopy.sol", - "id": 873, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", + "file": "../common/MasterCopy.sol", + "id": 895, "nodeType": "ImportDirective", - "scope": 914, - "sourceUnit": 814, - "src": "24:26:9", + "scope": 936, + "sourceUnit": 1694, + "src": "24:34:4", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", "file": "./ModuleManager.sol", - "id": 874, + "id": 896, "nodeType": "ImportDirective", - "scope": 914, - "sourceUnit": 1181, - "src": "51:29:9", + "scope": 936, + "sourceUnit": 1213, + "src": "59:29:4", "symbolAliases": [], "unitAlias": "" }, @@ -676,59 +676,59 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 875, + "id": 897, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 813, - "src": "244:10:9", + "referencedDeclaration": 1693, + "src": "252:10:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$813", + "typeIdentifier": "t_contract$_MasterCopy_$1693", "typeString": "contract MasterCopy" } }, - "id": 876, + "id": 898, "nodeType": "InheritanceSpecifier", - "src": "244:10:9" + "src": "252:10:4" } ], "contractDependencies": [ - 813, - 1765 + 1693, + 1735 ], "contractKind": "contract", "documentation": "@title Module - Base class for modules.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 913, + "id": 935, "linearizedBaseContracts": [ - 913, - 813, - 1765 + 935, + 1693, + 1735 ], "name": "Module", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 878, + "id": 900, "name": "manager", "nodeType": "VariableDeclaration", - "scope": 913, - "src": "262:28:9", + "scope": 935, + "src": "270:28:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" }, "typeName": { "contractScope": null, - "id": 877, + "id": 899, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1180, - "src": "262:13:9", + "referencedDeclaration": 1212, + "src": "270:13:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, @@ -737,9 +737,9 @@ }, { "body": { - "id": 891, + "id": 913, "nodeType": "Block", - "src": "319:109:9", + "src": "327:109:4", "statements": [ { "expression": { @@ -751,7 +751,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 886, + "id": 908, "isConstant": false, "isLValue": false, "isPure": false, @@ -760,18 +760,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 881, + "id": 903, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "337:3:9", + "referencedDeclaration": 4491, + "src": "345:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 882, + "id": 904, "isConstant": false, "isLValue": false, "isPure": false, @@ -779,7 +779,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "337:10:9", + "src": "345:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -792,14 +792,14 @@ "arguments": [ { "argumentTypes": null, - "id": 884, + "id": 906, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "359:7:9", + "referencedDeclaration": 900, + "src": "367:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } } @@ -807,24 +807,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } ], - "id": 883, + "id": 905, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "351:7:9", + "src": "359:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 885, + "id": 907, "isConstant": false, "isLValue": false, "isPure": false, @@ -832,13 +832,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "351:16:9", + "src": "359:16:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "337:30:9", + "src": "345:30:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -847,14 +847,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572", - "id": 887, + "id": 909, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "369:40:9", + "src": "377:40:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f857f17fb7e241a141cb689ce417fc402008e9655fbe55c721e32587b5d510de", @@ -874,21 +874,21 @@ "typeString": "literal_string \"Method can only be called from manager\"" } ], - "id": 880, + "id": 902, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "329:7:9", + "referencedDeclaration": 4495, + "src": "337:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 888, + "id": 910, "isConstant": false, "isLValue": false, "isPure": false, @@ -896,41 +896,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "329:81:9", + "src": "337:81:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 889, + "id": 911, "nodeType": "ExpressionStatement", - "src": "329:81:9" + "src": "337:81:4" }, { - "id": 890, + "id": 912, "nodeType": "PlaceholderStatement", - "src": "420:1:9" + "src": "428:1:4" } ] }, "documentation": null, - "id": 892, + "id": 914, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 879, + "id": 901, "nodeType": "ParameterList", "parameters": [], - "src": "316:2:9" + "src": "324:2:4" }, - "src": "297:131:9", + "src": "305:131:4", "visibility": "internal" }, { "body": { - "id": 911, + "id": 933, "nodeType": "Block", - "src": "477:257:9", + "src": "485:257:4", "statements": [ { "expression": { @@ -942,7 +942,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 900, + "id": 922, "isConstant": false, "isLValue": false, "isPure": false, @@ -952,14 +952,14 @@ "arguments": [ { "argumentTypes": null, - "id": 897, + "id": 919, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "636:7:9", + "referencedDeclaration": 900, + "src": "644:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } } @@ -967,24 +967,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } ], - "id": 896, + "id": 918, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "628:7:9", + "src": "636:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 898, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, @@ -992,7 +992,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "628:16:9", + "src": "636:16:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1003,14 +1003,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 899, + "id": 921, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "648:1:9", + "src": "656:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1018,7 +1018,7 @@ }, "value": "0" }, - "src": "628:21:9", + "src": "636:21:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1027,14 +1027,14 @@ { "argumentTypes": null, "hexValue": "4d616e616765722068617320616c7265616479206265656e20736574", - "id": 901, + "id": 923, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "651:30:9", + "src": "659:30:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5b4e79257e154cde85ff5a3cf5bf48eb2c3921f8c031de73d371d41be013f3cc", @@ -1054,21 +1054,21 @@ "typeString": "literal_string \"Manager has already been set\"" } ], - "id": 895, + "id": 917, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "620:7:9", + "referencedDeclaration": 4495, + "src": "628:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 902, + "id": 924, "isConstant": false, "isLValue": false, "isPure": false, @@ -1076,34 +1076,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "620:62:9", + "src": "628:62:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 903, + "id": 925, "nodeType": "ExpressionStatement", - "src": "620:62:9" + "src": "628:62:4" }, { "expression": { "argumentTypes": null, - "id": 909, + "id": 931, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 904, + "id": 926, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "692:7:9", + "referencedDeclaration": 900, + "src": "700:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, @@ -1116,18 +1116,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 906, + "id": 928, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "716:3:9", + "referencedDeclaration": 4491, + "src": "724:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 907, + "id": 929, "isConstant": false, "isLValue": false, "isPure": false, @@ -1135,7 +1135,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "716:10:9", + "src": "724:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1149,18 +1149,18 @@ "typeString": "address" } ], - "id": 905, + "id": 927, "name": "ModuleManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1180, - "src": "702:13:9", + "referencedDeclaration": 1212, + "src": "710:13:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1180_$", + "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1212_$", "typeString": "type(contract ModuleManager)" } }, - "id": 908, + "id": 930, "isConstant": false, "isLValue": false, "isPure": false, @@ -1168,26 +1168,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "702:25:9", + "src": "710:25:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, - "src": "692:35:9", + "src": "700:35:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, - "id": 910, + "id": 932, "nodeType": "ExpressionStatement", - "src": "692:35:9" + "src": "700:35:4" } ] }, "documentation": null, - "id": 912, + "id": 934, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1195,30 +1195,30 @@ "name": "setManager", "nodeType": "FunctionDefinition", "parameters": { - "id": 893, + "id": 915, "nodeType": "ParameterList", "parameters": [], - "src": "453:2:9" + "src": "461:2:4" }, "payable": false, "returnParameters": { - "id": 894, + "id": 916, "nodeType": "ParameterList", "parameters": [], - "src": "477:0:9" + "src": "485:0:4" }, - "scope": 913, - "src": "434:300:9", + "scope": 935, + "src": "442:300:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 914, - "src": "225:511:9" + "scope": 936, + "src": "233:511:4" } ], - "src": "0:737:9" + "src": "0:745:4" }, "compiler": { "name": "solc", @@ -1226,5 +1226,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.088Z" + "updatedAt": "2018-09-26T08:32:07.632Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/ModuleManager.json b/safe-contracts/build/contracts/ModuleManager.json index b43f10c4..79b06429 100644 --- a/safe-contracts/build/contracts/ModuleManager.json +++ b/safe-contracts/build/contracts/ModuleManager.json @@ -15,39 +15,35 @@ "stateMutability": "view", "type": "function" }, - { - "constant": true, - "inputs": [], - "name": "NAME", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "payable": true, "stateMutability": "payable", "type": "fallback" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "module", + "type": "address" + } + ], + "name": "EnabledModule", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "module", + "type": "address" + } + ], + "name": "DisabledModule", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -138,73 +134,73 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611165806100206000396000f300608060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a714610085578063610b59251461013d57806385e332cd14610180578063a3f4df7e146101d7578063b2494df314610267578063e009cfde146102d3578063ffa1ad7414610336575b005b34801561009157600080fd5b50610123600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b34801561014957600080fd5b5061017e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104f1565b005b34801561018c57600080fd5b506101956108cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101e357600080fd5b506101ec6108d0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022c578082015181840152602081019050610211565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027357600080fd5b5061027c610909565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102bf5780820151818401526020810190506102a4565b505050509050019250505060405180910390f35b3480156102df57600080fd5b50610334600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bac565b005b34801561034257600080fd5b5061034b610fc1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038b578082015181840152602081019050610370565b50505050905090810190601f1680156103b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156104da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b6104e7858585855a610ffa565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561060e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610a1b576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610977565b82604051908082528060200260200182016040528015610a4a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610ba357818184815181101515610af957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610ab4565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610cc95750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000600281111561100a57fe5b84600281111561101657fe5b141561102f57611028878787866110f7565b91506110ed565b6001600281111561103c57fe5b84600281111561104857fe5b141561106057611059878685611110565b91506110ec565b61106985611127565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a7230582063ceed54b0b46040279fde92172d5974b790ff47810554207dadb799881f93440029", - "deployedBytecode": "0x608060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a714610085578063610b59251461013d57806385e332cd14610180578063a3f4df7e146101d7578063b2494df314610267578063e009cfde146102d3578063ffa1ad7414610336575b005b34801561009157600080fd5b50610123600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b34801561014957600080fd5b5061017e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104f1565b005b34801561018c57600080fd5b506101956108cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101e357600080fd5b506101ec6108d0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022c578082015181840152602081019050610211565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027357600080fd5b5061027c610909565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102bf5780820151818401526020810190506102a4565b505050509050019250505060405180910390f35b3480156102df57600080fd5b50610334600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bac565b005b34801561034257600080fd5b5061034b610fc1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038b578082015181840152602081019050610370565b50505050905090810190601f1680156103b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156104da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b6104e7858585855a610ffa565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561060e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610a1b576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610977565b82604051908082528060200260200182016040528015610a4a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610ba357818184815181101515610af957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610ab4565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610cc95750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000600281111561100a57fe5b84600281111561101657fe5b141561102f57611028878787866110f7565b91506110ed565b6001600281111561103c57fe5b84600281111561104857fe5b141561106057611059878685611110565b91506110ec565b61106985611127565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a7230582063ceed54b0b46040279fde92172d5974b790ff47810554207dadb799881f93440029", - "sourceMap": "332:3628:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;332:3628:10;;;;;;;", - "deployedSourceMap": "332:3628:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2712:429;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2712:429:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:459:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:10;;;;;;;;;;;;;;;;;;;;;;;;;;;390:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;390:46:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;390:46:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3220:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3220:738:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3220:738:10;;;;;;;;;;;;;;;;;1902:474;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1902:474:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;442:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;442:40:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;442:40:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2712:429;2844:12;2952:1;2929:7;:19;2937:10;2929:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2921:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3088:46;3096:2;3100:5;3107:4;3113:9;3124;3088:7;:46::i;:::-;3078:56;;2712:429;;;;;;:::o;1182:459::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:10;1337:6;1329:20;;;;:59;;;;;539:3;1353:35;;1361:6;1353:35;;;;1329:59;1321:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:1;1483:7;:15;1491:6;1483:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1475:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1565:7;:25;539:3;1565:25;;;;;;;;;;;;;;;;;;;;;;;;;1547:7;:15;1555:6;1547:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1628:6;1600:7;:25;539:3;1600:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1182:459;:::o;488:55::-;539:3;488:55;:::o;390:46::-;;;;;;;;;;;;;;;;;;;;:::o;3220:738::-;3287:9;3346:19;3379:21;3579:22;3368:1;3346:23;;3403:7;:25;539:3;3403:25;;;;;;;;;;;;;;;;;;;;;;;;;3379:49;;3438:132;539:3;3444:33;;:13;:33;;;;3438:132;;;3509:7;:22;3517:13;3509:22;;;;;;;;;;;;;;;;;;;;;;;;;3493:38;;3545:14;;;;;;;3438:132;;;3618:11;3604:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3604:26:10;;;;3579:51;;3688:1;3674:15;;3715:7;:25;539:3;3715:25;;;;;;;;;;;;;;;;;;;;;;;;;3699:41;;3750:180;539:3;3756:33;;:13;:33;;;;3750:180;;;3826:13;3805:5;3811:11;3805:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3869:7;:22;3877:13;3869:22;;;;;;;;;;;;;;;;;;;;;;;;;3853:38;;3905:14;;;;;;;3750:180;;;3946:5;3939:12;;3220:738;;;;:::o;1902:474::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2116:1:10;2105:6;2097:20;;;;:59;;;;;539:3;2121:35;;2129:6;2121:35;;;;2097:59;2089:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:6;2210:38;;:7;:19;2218:10;2210:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2202:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2325:7;:15;2333:6;2325:15;;;;;;;;;;;;;;;;;;;;;;;;;2303:7;:19;2311:10;2303:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2368:1;2350:7;:15;2358:6;2350:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1902:474;;:::o;442:40::-;;;;;;;;;;;;;;;;;;;;:::o;390:548:3:-;521:12;792:19;566;553:32;;;;;;;;:9;:32;;;;;;;;;549:383;;;609:35;621:2;625:5;632:4;638:5;609:11;:35::i;:::-;599:45;;549:383;;;676:27;663:40;;;;;;;;:9;:40;;;;;;;;;659:273;;;727:36;747:2;751:4;757:5;727:19;:36::i;:::-;717:46;;659:273;;;814:19;828:4;814:13;:19::i;:::-;792:41;;872:1;857:11;:16;;;;847:26;;892:29;909:11;892:29;;;;;;;;;;;;;;;;;;;;;;659:273;549:383;390:548;;;;;;;;:::o;944:309::-;1053:12;1235:1;1232;1225:4;1219:11;1212:4;1206;1202:15;1195:5;1191:2;1184:5;1179:58;1168:69;;1154:93;;;;;;:::o;1259:303::-;1361:12;1544:1;1541;1534:4;1528:11;1521:4;1515;1511:15;1507:2;1500:5;1487:59;1476:70;;1462:94;;;;;:::o;1568:261::-;1637:19;1807:4;1801:11;1794:4;1788;1784:15;1781:1;1774:39;1759:54;;1745:78;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./Enum.sol\";\nimport \"./Executor.sol\";\nimport \"./Module.sol\";\nimport \"./SelfAuthorized.sol\";\n\n\n/// @title Module Manager - A contract that manages modules that can execute transactions via this contract\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract ModuleManager is SelfAuthorized, Executor {\n\n string public constant NAME = \"Module Manager\";\n string public constant VERSION = \"0.0.1\";\n address public constant SENTINEL_MODULES = address(0x1);\n\n mapping (address => address) internal modules;\n \n function setupModules(address to, bytes data)\n internal\n {\n require(modules[SENTINEL_MODULES] == 0, \"Modules have already been initialized\");\n modules[SENTINEL_MODULES] = SENTINEL_MODULES;\n if (to != 0)\n // Setup has to complete successfully or transaction fails.\n require(executeDelegateCall(to, data, gasleft()), \"Could not finish initialization\");\n }\n\n /// @dev Allows to add a module to the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param module Module to be whitelisted.\n function enableModule(Module module)\n public\n authorized\n {\n // Module address cannot be null or sentinel.\n require(address(module) != 0 && address(module) != SENTINEL_MODULES, \"Invalid module address provided\");\n // Module cannot be added twice.\n require(modules[module] == 0, \"Module has already been added\");\n modules[module] = modules[SENTINEL_MODULES];\n modules[SENTINEL_MODULES] = module;\n }\n\n /// @dev Allows to remove a module from the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param prevModule Module that pointed to the module to be removed in the linked list\n /// @param module Module to be removed.\n function disableModule(Module prevModule, Module module)\n public\n authorized\n {\n // Validate module address and check that it corresponds to module index.\n require(address(module) != 0 && address(module) != SENTINEL_MODULES, \"Invalid module address provided\");\n require(modules[prevModule] == address(module), \"Invalid prevModule, module pair provided\");\n modules[prevModule] = modules[module];\n modules[module] = 0;\n }\n\n /// @dev Allows a Module to execute a Safe transaction without any further confirmations.\n /// @param to Destination address of module transaction.\n /// @param value Ether value of module transaction.\n /// @param data Data payload of module transaction.\n /// @param operation Operation type of module transaction.\n function execTransactionFromModule(address to, uint256 value, bytes data, Enum.Operation operation)\n public\n returns (bool success)\n {\n // Only whitelisted modules are allowed.\n require(modules[msg.sender] != 0, \"Method can only be called from an enabled module\");\n // Execute transaction without further confirmations.\n success = execute(to, value, data, operation, gasleft());\n }\n\n /// @dev Returns array of modules.\n /// @return Array of modules.\n function getModules()\n public\n view\n returns (address[])\n {\n // Calculate module count\n uint256 moduleCount = 0;\n address currentModule = modules[SENTINEL_MODULES];\n while(currentModule != SENTINEL_MODULES) {\n currentModule = modules[currentModule];\n moduleCount ++;\n }\n address[] memory array = new address[](moduleCount);\n\n // populate return array\n moduleCount = 0;\n currentModule = modules[SENTINEL_MODULES];\n while(currentModule != SENTINEL_MODULES) {\n array[moduleCount] = currentModule;\n currentModule = modules[currentModule];\n moduleCount ++;\n }\n return array;\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", + "bytecode": "0x608060405234801561001057600080fd5b50611083806100206000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a71461006f578063610b59251461012757806385e332cd1461016a578063b2494df3146101c1578063e009cfde1461022d575b005b34801561007b57600080fd5b5061010d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610290565b604051808215151515815260200191505060405180910390f35b34801561013357600080fd5b50610168600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103bb565b005b34801561017657600080fd5b5061017f6107f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cd57600080fd5b506101d66107fd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102195780820151818401526020810190506101fe565b505050509050019250505060405180910390f35b34801561023957600080fd5b5061028e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aa0565b005b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156103a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b6103b1858585855a610f18565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156104d85750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561054c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600181565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561090f576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061086b565b8260405190808252806020026020018201604052801561093e5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610a97578181848151811015156109ed57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506109a8565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610bbd5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610c31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b60008060006002811115610f2857fe5b846002811115610f3457fe5b1415610f4d57610f4687878786611015565b915061100b565b60016002811115610f5a57fe5b846002811115610f6657fe5b1415610f7e57610f7787868561102e565b915061100a565b610f8785611045565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820b03a2427075cac45bbdeb264b166fb8b827b7633a6c00d861f316e04ef37ba630029", + "deployedBytecode": "0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a71461006f578063610b59251461012757806385e332cd1461016a578063b2494df3146101c1578063e009cfde1461022d575b005b34801561007b57600080fd5b5061010d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610290565b604051808215151515815260200191505060405180910390f35b34801561013357600080fd5b50610168600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103bb565b005b34801561017657600080fd5b5061017f6107f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cd57600080fd5b506101d66107fd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102195780820151818401526020810190506101fe565b505050509050019250505060405180910390f35b34801561023957600080fd5b5061028e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aa0565b005b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156103a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b6103b1858585855a610f18565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156104d85750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561054c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600181565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561090f576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061086b565b8260405190808252806020026020018201604052801561093e5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610a97578181848151811015156109ed57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506109a8565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610bbd5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610c31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b60008060006002811115610f2857fe5b846002811115610f3457fe5b1415610f4d57610f4687878786611015565b915061100b565b60016002811115610f5a57fe5b846002811115610f6657fe5b1415610f7e57610f7787868561102e565b915061100a565b610f8785611045565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820b03a2427075cac45bbdeb264b166fb8b827b7633a6c00d861f316e04ef37ba630029", + "sourceMap": "348:3685:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;348:3685:5;;;;;;;", + "deployedSourceMap": "348:3685:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:429;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2785:429:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:495;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:495:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;3293:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3293:738:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3293:738:5;;;;;;;;;;;;;;;;;1938:511;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1938:511:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:429;2917:12;3025:1;3002:7;:19;3010:10;3002:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2994:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3161:46;3169:2;3173:5;3180:4;3186:9;3197;3161:7;:46::i;:::-;3151:56;;2785:429;;;;;;:::o;1182:495::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:5;1337:6;1329:20;;;;:59;;;;;539:3;1353:35;;1361:6;1353:35;;;;1329:59;1321:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:1;1483:7;:15;1491:6;1483:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1475:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1565:7;:25;539:3;1565:25;;;;;;;;;;;;;;;;;;;;;;;;;1547:7;:15;1555:6;1547:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1628:6;1600:7;:25;539:3;1600:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1649:21;1663:6;1649:21;;;;;;;;;;;;;;;;;;;;;;1182:495;:::o;488:55::-;539:3;488:55;:::o;3293:738::-;3360:9;3419:19;3452:21;3652:22;3441:1;3419:23;;3476:7;:25;539:3;3476:25;;;;;;;;;;;;;;;;;;;;;;;;;3452:49;;3511:132;539:3;3517:33;;:13;:33;;;;3511:132;;;3582:7;:22;3590:13;3582:22;;;;;;;;;;;;;;;;;;;;;;;;;3566:38;;3618:14;;;;;;;3511:132;;;3691:11;3677:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3677:26:5;;;;3652:51;;3761:1;3747:15;;3788:7;:25;539:3;3788:25;;;;;;;;;;;;;;;;;;;;;;;;;3772:41;;3823:180;539:3;3829:33;;:13;:33;;;;3823:180;;;3899:13;3878:5;3884:11;3878:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3942:7;:22;3950:13;3942:22;;;;;;;;;;;;;;;;;;;;;;;;;3926:38;;3978:14;;;;;;;3823:180;;;4019:5;4012:12;;3293:738;;;;:::o;1938:511::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2152:1:5;2141:6;2133:20;;;;:59;;;;;539:3;2157:35;;2165:6;2157:35;;;;2133:59;2125:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:6;2246:38;;:7;:19;2254:10;2246:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2238:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2361:7;:15;2369:6;2361:15;;;;;;;;;;;;;;;;;;;;;;;;;2339:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2404:1;2386:7;:15;2394:6;2386:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2420:22;2435:6;2420:22;;;;;;;;;;;;;;;;;;;;;;1938:511;;:::o;313:548:3:-;444:12;715:19;489;476:32;;;;;;;;:9;:32;;;;;;;;;472:383;;;532:35;544:2;548:5;555:4;561:5;532:11;:35::i;:::-;522:45;;472:383;;;599:27;586:40;;;;;;;;:9;:40;;;;;;;;;582:273;;;650:36;670:2;674:4;680:5;650:19;:36::i;:::-;640:46;;582:273;;;737:19;751:4;737:13;:19::i;:::-;715:41;;795:1;780:11;:16;;;;770:26;;815:29;832:11;815:29;;;;;;;;;;;;;;;;;;;;;;582:273;472:383;313:548;;;;;;;;:::o;867:309::-;976:12;1158:1;1155;1148:4;1142:11;1135:4;1129;1125:15;1118:5;1114:2;1107:5;1102:58;1091:69;;1077:93;;;;;;:::o;1182:303::-;1284:12;1467:1;1464;1457:4;1451:11;1444:4;1438;1434:15;1430:2;1423:5;1410:59;1399:70;;1385:94;;;;;:::o;1491:261::-;1560:19;1730:4;1724:11;1717:4;1711;1707:15;1704:1;1697:39;1682:54;;1668:78;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"../common/Enum.sol\";\nimport \"../common/SelfAuthorized.sol\";\nimport \"./Executor.sol\";\nimport \"./Module.sol\";\n\n\n/// @title Module Manager - A contract that manages modules that can execute transactions via this contract\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract ModuleManager is SelfAuthorized, Executor {\n\n event EnabledModule(Module module);\n event DisabledModule(Module module);\n\n address public constant SENTINEL_MODULES = address(0x1);\n\n mapping (address => address) internal modules;\n \n function setupModules(address to, bytes data)\n internal\n {\n require(modules[SENTINEL_MODULES] == 0, \"Modules have already been initialized\");\n modules[SENTINEL_MODULES] = SENTINEL_MODULES;\n if (to != 0)\n // Setup has to complete successfully or transaction fails.\n require(executeDelegateCall(to, data, gasleft()), \"Could not finish initialization\");\n }\n\n /// @dev Allows to add a module to the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param module Module to be whitelisted.\n function enableModule(Module module)\n public\n authorized\n {\n // Module address cannot be null or sentinel.\n require(address(module) != 0 && address(module) != SENTINEL_MODULES, \"Invalid module address provided\");\n // Module cannot be added twice.\n require(modules[module] == 0, \"Module has already been added\");\n modules[module] = modules[SENTINEL_MODULES];\n modules[SENTINEL_MODULES] = module;\n emit EnabledModule(module);\n }\n\n /// @dev Allows to remove a module from the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param prevModule Module that pointed to the module to be removed in the linked list\n /// @param module Module to be removed.\n function disableModule(Module prevModule, Module module)\n public\n authorized\n {\n // Validate module address and check that it corresponds to module index.\n require(address(module) != 0 && address(module) != SENTINEL_MODULES, \"Invalid module address provided\");\n require(modules[prevModule] == address(module), \"Invalid prevModule, module pair provided\");\n modules[prevModule] = modules[module];\n modules[module] = 0;\n emit DisabledModule(module);\n }\n\n /// @dev Allows a Module to execute a Safe transaction without any further confirmations.\n /// @param to Destination address of module transaction.\n /// @param value Ether value of module transaction.\n /// @param data Data payload of module transaction.\n /// @param operation Operation type of module transaction.\n function execTransactionFromModule(address to, uint256 value, bytes data, Enum.Operation operation)\n public\n returns (bool success)\n {\n // Only whitelisted modules are allowed.\n require(modules[msg.sender] != 0, \"Method can only be called from an enabled module\");\n // Execute transaction without further confirmations.\n success = execute(to, value, data, operation, gasleft());\n }\n\n /// @dev Returns array of modules.\n /// @return Array of modules.\n function getModules()\n public\n view\n returns (address[])\n {\n // Calculate module count\n uint256 moduleCount = 0;\n address currentModule = modules[SENTINEL_MODULES];\n while(currentModule != SENTINEL_MODULES) {\n currentModule = modules[currentModule];\n moduleCount ++;\n }\n address[] memory array = new address[](moduleCount);\n\n // populate return array\n moduleCount = 0;\n currentModule = modules[SENTINEL_MODULES];\n while(currentModule != SENTINEL_MODULES) {\n array[moduleCount] = currentModule;\n currentModule = modules[currentModule];\n moduleCount ++;\n }\n return array;\n }\n}\n", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", "exportedSymbols": { "ModuleManager": [ - 1180 + 1212 ] }, - "id": 1181, + "id": 1213, "nodeType": "SourceUnit", "nodes": [ { - "id": 915, + "id": 937, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:10" + "src": "0:23:5" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", - "file": "./Enum.sol", - "id": 916, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "file": "../common/Enum.sol", + "id": 938, "nodeType": "ImportDirective", - "scope": 1181, - "sourceUnit": 31, - "src": "24:20:10", + "scope": 1213, + "sourceUnit": 1660, + "src": "24:28:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Executor.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", + "file": "../common/SelfAuthorized.sol", + "id": 939, + "nodeType": "ImportDirective", + "scope": 1213, + "sourceUnit": 1736, + "src": "53:38:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Executor.sol", "file": "./Executor.sol", - "id": 917, + "id": 940, "nodeType": "ImportDirective", - "scope": 1181, - "sourceUnit": 154, - "src": "45:24:10", + "scope": 1213, + "sourceUnit": 893, + "src": "92:24:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", "file": "./Module.sol", - "id": 918, + "id": 941, "nodeType": "ImportDirective", - "scope": 1181, - "sourceUnit": 914, - "src": "70:22:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", - "file": "./SelfAuthorized.sol", - "id": 919, - "nodeType": "ImportDirective", - "scope": 1181, - "sourceUnit": 1766, - "src": "93:30:10", + "scope": 1213, + "sourceUnit": 936, + "src": "117:22:5", "symbolAliases": [], "unitAlias": "" }, @@ -214,150 +210,152 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 920, + "id": 942, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1765, - "src": "358:14:10", + "referencedDeclaration": 1735, + "src": "374:14:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1765", + "typeIdentifier": "t_contract$_SelfAuthorized_$1735", "typeString": "contract SelfAuthorized" } }, - "id": 921, + "id": 943, "nodeType": "InheritanceSpecifier", - "src": "358:14:10" + "src": "374:14:5" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 922, + "id": 944, "name": "Executor", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 153, - "src": "374:8:10", + "referencedDeclaration": 892, + "src": "390:8:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Executor_$153", + "typeIdentifier": "t_contract$_Executor_$892", "typeString": "contract Executor" } }, - "id": 923, + "id": 945, "nodeType": "InheritanceSpecifier", - "src": "374:8:10" + "src": "390:8:5" } ], "contractDependencies": [ - 153, - 37, - 1765 + 892, + 1666, + 1735 ], "contractKind": "contract", "documentation": "@title Module Manager - A contract that manages modules that can execute transactions via this contract\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1180, + "id": 1212, "linearizedBaseContracts": [ - 1180, - 153, - 37, - 1765 + 1212, + 892, + 1666, + 1735 ], "name": "ModuleManager", "nodeType": "ContractDefinition", "nodes": [ { - "constant": true, - "id": 926, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 1180, - "src": "390:46:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" + "anonymous": false, + "documentation": null, + "id": 949, + "name": "EnabledModule", + "nodeType": "EventDefinition", + "parameters": { + "id": 948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 947, + "indexed": false, + "name": "module", + "nodeType": "VariableDeclaration", + "scope": 949, + "src": "426:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$935", + "typeString": "contract Module" + }, + "typeName": { + "contractScope": null, + "id": 946, + "name": "Module", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 935, + "src": "426:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$935", + "typeString": "contract Module" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "425:15:5" }, - "typeName": { - "id": 924, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "390:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } + "src": "406:35:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 953, + "name": "DisabledModule", + "nodeType": "EventDefinition", + "parameters": { + "id": 952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 951, + "indexed": false, + "name": "module", + "nodeType": "VariableDeclaration", + "scope": 953, + "src": "467:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$935", + "typeString": "contract Module" + }, + "typeName": { + "contractScope": null, + "id": 950, + "name": "Module", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 935, + "src": "467:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$935", + "typeString": "contract Module" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "466:15:5" }, - "value": { - "argumentTypes": null, - "hexValue": "4d6f64756c65204d616e61676572", - "id": 925, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "420:16:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_12aaa44a1bae367a1e1d9881f5d80283afded6373c2a1ca586db420944084efb", - "typeString": "literal_string \"Module Manager\"" - }, - "value": "Module Manager" - }, - "visibility": "public" + "src": "446:36:5" }, { "constant": true, - "id": 929, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 1180, - "src": "442:40:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 927, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "442:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e31", - "id": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "475:7:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" - }, - "value": "0.0.1" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 934, + "id": 958, "name": "SENTINEL_MODULES", "nodeType": "VariableDeclaration", - "scope": 1180, - "src": "488:55:10", + "scope": 1212, + "src": "488:55:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -365,10 +363,10 @@ "typeString": "address" }, "typeName": { - "id": 930, + "id": 954, "name": "address", "nodeType": "ElementaryTypeName", - "src": "488:7:10", + "src": "488:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -380,14 +378,14 @@ { "argumentTypes": null, "hexValue": "307831", - "id": 932, + "id": 956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "539:3:10", + "src": "539:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -403,20 +401,20 @@ "typeString": "int_const 1" } ], - "id": 931, + "id": 955, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "531:7:10", + "src": "531:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 933, + "id": 957, "isConstant": false, "isLValue": false, "isPure": true, @@ -424,7 +422,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "531:12:10", + "src": "531:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -434,11 +432,11 @@ }, { "constant": false, - "id": 938, + "id": 962, "name": "modules", "nodeType": "VariableDeclaration", - "scope": 1180, - "src": "550:45:10", + "scope": 1212, + "src": "550:45:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -446,28 +444,28 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 937, + "id": 961, "keyType": { - "id": 935, + "id": 959, "name": "address", "nodeType": "ElementaryTypeName", - "src": "559:7:10", + "src": "559:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "550:28:10", + "src": "550:28:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" }, "valueType": { - "id": 936, + "id": 960, "name": "address", "nodeType": "ElementaryTypeName", - "src": "570:7:10", + "src": "570:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -479,9 +477,9 @@ }, { "body": { - "id": 974, + "id": 998, "nodeType": "Block", - "src": "673:342:10", + "src": "673:342:5", "statements": [ { "expression": { @@ -493,7 +491,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 950, + "id": 974, "isConstant": false, "isLValue": false, "isPure": false, @@ -502,26 +500,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 946, + "id": 970, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "691:7:10", + "referencedDeclaration": 962, + "src": "691:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 948, + "id": 972, "indexExpression": { "argumentTypes": null, - "id": 947, + "id": 971, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "699:16:10", + "referencedDeclaration": 958, + "src": "699:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -532,7 +530,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "691:25:10", + "src": "691:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -543,14 +541,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 949, + "id": 973, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "720:1:10", + "src": "720:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -558,7 +556,7 @@ }, "value": "0" }, - "src": "691:30:10", + "src": "691:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -567,14 +565,14 @@ { "argumentTypes": null, "hexValue": "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564", - "id": 951, + "id": 975, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "723:39:10", + "src": "723:39:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77", @@ -594,21 +592,21 @@ "typeString": "literal_string \"Modules have already been initialized\"" } ], - "id": 945, + "id": 969, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "683:7:10", + "referencedDeclaration": 4495, + "src": "683:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 952, + "id": 976, "isConstant": false, "isLValue": false, "isPure": false, @@ -616,20 +614,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "683:80:10", + "src": "683:80:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 953, + "id": 977, "nodeType": "ExpressionStatement", - "src": "683:80:10" + "src": "683:80:5" }, { "expression": { "argumentTypes": null, - "id": 958, + "id": 982, "isConstant": false, "isLValue": false, "isPure": false, @@ -638,26 +636,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 954, + "id": 978, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "773:7:10", + "referencedDeclaration": 962, + "src": "773:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 956, + "id": 980, "indexExpression": { "argumentTypes": null, - "id": 955, + "id": 979, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "781:16:10", + "referencedDeclaration": 958, + "src": "781:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -668,7 +666,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "773:25:10", + "src": "773:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -678,26 +676,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 957, + "id": 981, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "801:16:10", + "referencedDeclaration": 958, + "src": "801:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "773:44:10", + "src": "773:44:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 959, + "id": 983, "nodeType": "ExpressionStatement", - "src": "773:44:10" + "src": "773:44:5" }, { "condition": { @@ -706,19 +704,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 962, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 960, + "id": 984, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 940, - "src": "831:2:10", + "referencedDeclaration": 964, + "src": "831:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -729,14 +727,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 961, + "id": 985, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "837:1:10", + "src": "837:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -744,16 +742,16 @@ }, "value": "0" }, - "src": "831:7:10", + "src": "831:7:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 973, + "id": 997, "nodeType": "IfStatement", - "src": "827:181:10", + "src": "827:181:5", "trueBody": { "expression": { "argumentTypes": null, @@ -763,12 +761,12 @@ "arguments": [ { "argumentTypes": null, - "id": 965, + "id": 989, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 940, - "src": "952:2:10", + "referencedDeclaration": 964, + "src": "952:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -776,12 +774,12 @@ }, { "argumentTypes": null, - "id": 966, + "id": 990, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 942, - "src": "956:4:10", + "referencedDeclaration": 966, + "src": "956:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -792,18 +790,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 967, + "id": 991, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "962:7:10", + "referencedDeclaration": 4484, + "src": "962:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 968, + "id": 992, "isConstant": false, "isLValue": false, "isPure": false, @@ -811,7 +809,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "962:9:10", + "src": "962:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -833,18 +831,18 @@ "typeString": "uint256" } ], - "id": 964, + "id": 988, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "932:19:10", + "referencedDeclaration": 882, + "src": "932:19:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,bytes memory,uint256) returns (bool)" } }, - "id": 969, + "id": 993, "isConstant": false, "isLValue": false, "isPure": false, @@ -852,7 +850,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "932:40:10", + "src": "932:40:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -861,14 +859,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e", - "id": 970, + "id": 994, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "974:33:10", + "src": "974:33:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa", @@ -888,21 +886,21 @@ "typeString": "literal_string \"Could not finish initialization\"" } ], - "id": 963, + "id": 987, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "924:7:10", + "referencedDeclaration": 4495, + "src": "924:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 971, + "id": 995, "isConstant": false, "isLValue": false, "isPure": false, @@ -910,21 +908,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "924:84:10", + "src": "924:84:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 972, + "id": 996, "nodeType": "ExpressionStatement", - "src": "924:84:10" + "src": "924:84:5" } } ] }, "documentation": null, - "id": 975, + "id": 999, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -932,16 +930,16 @@ "name": "setupModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 943, + "id": 967, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 940, + "id": 964, "name": "to", "nodeType": "VariableDeclaration", - "scope": 975, - "src": "628:10:10", + "scope": 999, + "src": "628:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -949,10 +947,10 @@ "typeString": "address" }, "typeName": { - "id": 939, + "id": 963, "name": "address", "nodeType": "ElementaryTypeName", - "src": "628:7:10", + "src": "628:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -963,11 +961,11 @@ }, { "constant": false, - "id": 942, + "id": 966, "name": "data", "nodeType": "VariableDeclaration", - "scope": 975, - "src": "640:10:10", + "scope": 999, + "src": "640:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -975,10 +973,10 @@ "typeString": "bytes" }, "typeName": { - "id": 941, + "id": 965, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "640:5:10", + "src": "640:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -988,26 +986,26 @@ "visibility": "internal" } ], - "src": "627:24:10" + "src": "627:24:5" }, "payable": false, "returnParameters": { - "id": 944, + "id": 968, "nodeType": "ParameterList", "parameters": [], - "src": "673:0:10" + "src": "673:0:5" }, - "scope": 1180, - "src": "606:409:10", + "scope": 1212, + "src": "606:409:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1020, + "id": 1048, "nodeType": "Block", - "src": "1257:384:10", + "src": "1257:420:5", "statements": [ { "expression": { @@ -1019,7 +1017,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 993, + "id": 1017, "isConstant": false, "isLValue": false, "isPure": false, @@ -1030,7 +1028,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 987, + "id": 1011, "isConstant": false, "isLValue": false, "isPure": false, @@ -1040,14 +1038,14 @@ "arguments": [ { "argumentTypes": null, - "id": 984, + "id": 1008, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 977, - "src": "1337:6:10", + "referencedDeclaration": 1001, + "src": "1337:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } } @@ -1055,24 +1053,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } ], - "id": 983, + "id": 1007, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1329:7:10", + "src": "1329:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 985, + "id": 1009, "isConstant": false, "isLValue": false, "isPure": false, @@ -1080,7 +1078,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1329:15:10", + "src": "1329:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1091,14 +1089,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 986, + "id": 1010, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1348:1:10", + "src": "1348:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1106,7 +1104,7 @@ }, "value": "0" }, - "src": "1329:20:10", + "src": "1329:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1120,7 +1118,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 992, + "id": 1016, "isConstant": false, "isLValue": false, "isPure": false, @@ -1130,14 +1128,14 @@ "arguments": [ { "argumentTypes": null, - "id": 989, + "id": 1013, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 977, - "src": "1361:6:10", + "referencedDeclaration": 1001, + "src": "1361:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } } @@ -1145,24 +1143,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } ], - "id": 988, + "id": 1012, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1353:7:10", + "src": "1353:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 990, + "id": 1014, "isConstant": false, "isLValue": false, "isPure": false, @@ -1170,7 +1168,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1353:15:10", + "src": "1353:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1180,24 +1178,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 991, + "id": 1015, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "1372:16:10", + "referencedDeclaration": 958, + "src": "1372:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1353:35:10", + "src": "1353:35:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1329:59:10", + "src": "1329:59:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1206,14 +1204,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 994, + "id": 1018, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1390:33:10", + "src": "1390:33:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", @@ -1233,21 +1231,21 @@ "typeString": "literal_string \"Invalid module address provided\"" } ], - "id": 982, + "id": 1006, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1321:7:10", + "referencedDeclaration": 4495, + "src": "1321:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 995, + "id": 1019, "isConstant": false, "isLValue": false, "isPure": false, @@ -1255,15 +1253,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1321:103:10", + "src": "1321:103:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 996, + "id": 1020, "nodeType": "ExpressionStatement", - "src": "1321:103:10" + "src": "1321:103:5" }, { "expression": { @@ -1275,7 +1273,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1002, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": false, @@ -1284,28 +1282,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 998, + "id": 1022, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "1483:7:10", + "referencedDeclaration": 962, + "src": "1483:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1000, + "id": 1024, "indexExpression": { "argumentTypes": null, - "id": 999, + "id": 1023, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 977, - "src": "1491:6:10", + "referencedDeclaration": 1001, + "src": "1491:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -1314,7 +1312,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1483:15:10", + "src": "1483:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1325,14 +1323,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1001, + "id": 1025, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1502:1:10", + "src": "1502:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1340,7 +1338,7 @@ }, "value": "0" }, - "src": "1483:20:10", + "src": "1483:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1349,14 +1347,14 @@ { "argumentTypes": null, "hexValue": "4d6f64756c652068617320616c7265616479206265656e206164646564", - "id": 1003, + "id": 1027, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1505:31:10", + "src": "1505:31:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", @@ -1376,21 +1374,21 @@ "typeString": "literal_string \"Module has already been added\"" } ], - "id": 997, + "id": 1021, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1475:7:10", + "referencedDeclaration": 4495, + "src": "1475:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1004, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -1398,20 +1396,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1475:62:10", + "src": "1475:62:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1005, + "id": 1029, "nodeType": "ExpressionStatement", - "src": "1475:62:10" + "src": "1475:62:5" }, { "expression": { "argumentTypes": null, - "id": 1012, + "id": 1036, "isConstant": false, "isLValue": false, "isPure": false, @@ -1420,28 +1418,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1006, + "id": 1030, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "1547:7:10", + "referencedDeclaration": 962, + "src": "1547:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1008, + "id": 1032, "indexExpression": { "argumentTypes": null, - "id": 1007, + "id": 1031, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 977, - "src": "1555:6:10", + "referencedDeclaration": 1001, + "src": "1555:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -1450,7 +1448,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1547:15:10", + "src": "1547:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1462,26 +1460,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1009, + "id": 1033, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "1565:7:10", + "referencedDeclaration": 962, + "src": "1565:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1011, + "id": 1035, "indexExpression": { "argumentTypes": null, - "id": 1010, + "id": 1034, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "1573:16:10", + "referencedDeclaration": 958, + "src": "1573:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1492,26 +1490,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1565:25:10", + "src": "1565:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1547:43:10", + "src": "1547:43:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1013, + "id": 1037, "nodeType": "ExpressionStatement", - "src": "1547:43:10" + "src": "1547:43:5" }, { "expression": { "argumentTypes": null, - "id": 1018, + "id": 1042, "isConstant": false, "isLValue": false, "isPure": false, @@ -1520,26 +1518,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1014, + "id": 1038, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "1600:7:10", + "referencedDeclaration": 962, + "src": "1600:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1016, + "id": 1040, "indexExpression": { "argumentTypes": null, - "id": 1015, + "id": 1039, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "1608:16:10", + "referencedDeclaration": 958, + "src": "1608:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1550,7 +1548,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1600:25:10", + "src": "1600:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1560,83 +1558,137 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1017, + "id": 1041, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 977, - "src": "1628:6:10", + "referencedDeclaration": 1001, + "src": "1628:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, - "src": "1600:34:10", + "src": "1600:34:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1019, + "id": 1043, "nodeType": "ExpressionStatement", - "src": "1600:34:10" + "src": "1600:34:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1045, + "name": "module", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "1663:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$935", + "typeString": "contract Module" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Module_$935", + "typeString": "contract Module" + } + ], + "id": 1044, + "name": "EnabledModule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 949, + "src": "1649:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$935_$returns$__$", + "typeString": "function (contract Module)" + } + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1649:21:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1047, + "nodeType": "EmitStatement", + "src": "1644:26:5" } ] }, "documentation": "@dev Allows to add a module to the whitelist.\n This can only be done via a Safe transaction.\n @param module Module to be whitelisted.", - "id": 1021, + "id": 1049, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 980, + "id": 1004, "modifierName": { "argumentTypes": null, - "id": 979, + "id": 1003, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "1242:10:10", + "referencedDeclaration": 1734, + "src": "1242:10:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1242:10:10" + "src": "1242:10:5" } ], "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 978, + "id": 1002, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 977, + "id": 1001, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1021, - "src": "1204:13:10", + "scope": 1049, + "src": "1204:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 976, + "id": 1000, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "1204:6:10", + "referencedDeclaration": 935, + "src": "1204:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -1644,26 +1696,26 @@ "visibility": "internal" } ], - "src": "1203:15:10" + "src": "1203:15:5" }, "payable": false, "returnParameters": { - "id": 981, + "id": 1005, "nodeType": "ParameterList", "parameters": [], - "src": "1257:0:10" + "src": "1257:0:5" }, - "scope": 1180, - "src": "1182:459:10", + "scope": 1212, + "src": "1182:495:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1070, + "id": 1102, "nodeType": "Block", - "src": "1997:379:10", + "src": "2033:416:5", "statements": [ { "expression": { @@ -1675,7 +1727,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1041, + "id": 1069, "isConstant": false, "isLValue": false, "isPure": false, @@ -1686,7 +1738,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1035, + "id": 1063, "isConstant": false, "isLValue": false, "isPure": false, @@ -1696,14 +1748,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1032, + "id": 1060, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "2105:6:10", + "referencedDeclaration": 1053, + "src": "2141:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } } @@ -1711,24 +1763,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } ], - "id": 1031, + "id": 1059, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2097:7:10", + "src": "2133:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1033, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, @@ -1736,7 +1788,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2097:15:10", + "src": "2133:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1747,14 +1799,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1034, + "id": 1062, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2116:1:10", + "src": "2152:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1762,7 +1814,7 @@ }, "value": "0" }, - "src": "2097:20:10", + "src": "2133:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1776,7 +1828,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1040, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, @@ -1786,14 +1838,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1037, + "id": 1065, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "2129:6:10", + "referencedDeclaration": 1053, + "src": "2165:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } } @@ -1801,24 +1853,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } ], - "id": 1036, + "id": 1064, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2121:7:10", + "src": "2157:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1038, + "id": 1066, "isConstant": false, "isLValue": false, "isPure": false, @@ -1826,7 +1878,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2121:15:10", + "src": "2157:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1836,24 +1888,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1039, + "id": 1067, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "2140:16:10", + "referencedDeclaration": 958, + "src": "2176:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2121:35:10", + "src": "2157:35:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2097:59:10", + "src": "2133:59:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1862,14 +1914,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1042, + "id": 1070, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2158:33:10", + "src": "2194:33:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", @@ -1889,21 +1941,21 @@ "typeString": "literal_string \"Invalid module address provided\"" } ], - "id": 1030, + "id": 1058, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2089:7:10", + "referencedDeclaration": 4495, + "src": "2125:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1043, + "id": 1071, "isConstant": false, "isLValue": false, "isPure": false, @@ -1911,15 +1963,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2089:103:10", + "src": "2125:103:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1044, + "id": 1072, "nodeType": "ExpressionStatement", - "src": "2089:103:10" + "src": "2125:103:5" }, { "expression": { @@ -1931,7 +1983,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1052, + "id": 1080, "isConstant": false, "isLValue": false, "isPure": false, @@ -1940,28 +1992,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1046, + "id": 1074, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "2210:7:10", + "referencedDeclaration": 962, + "src": "2246:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1048, + "id": 1076, "indexExpression": { "argumentTypes": null, - "id": 1047, + "id": 1075, "name": "prevModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "2218:10:10", + "referencedDeclaration": 1051, + "src": "2254:10:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -1970,7 +2022,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2210:19:10", + "src": "2246:19:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1983,14 +2035,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1050, + "id": 1078, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "2241:6:10", + "referencedDeclaration": 1053, + "src": "2277:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } } @@ -1998,24 +2050,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } ], - "id": 1049, + "id": 1077, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2233:7:10", + "src": "2269:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1051, + "id": 1079, "isConstant": false, "isLValue": false, "isPure": false, @@ -2023,13 +2075,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2233:15:10", + "src": "2269:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2210:38:10", + "src": "2246:38:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2038,14 +2090,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564", - "id": 1053, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2250:42:10", + "src": "2286:42:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e", @@ -2065,21 +2117,21 @@ "typeString": "literal_string \"Invalid prevModule, module pair provided\"" } ], - "id": 1045, + "id": 1073, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2202:7:10", + "referencedDeclaration": 4495, + "src": "2238:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1054, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, @@ -2087,20 +2139,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2202:91:10", + "src": "2238:91:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1055, + "id": 1083, "nodeType": "ExpressionStatement", - "src": "2202:91:10" + "src": "2238:91:5" }, { "expression": { "argumentTypes": null, - "id": 1062, + "id": 1090, "isConstant": false, "isLValue": false, "isPure": false, @@ -2109,28 +2161,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1056, + "id": 1084, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "2303:7:10", + "referencedDeclaration": 962, + "src": "2339:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1058, + "id": 1086, "indexExpression": { "argumentTypes": null, - "id": 1057, + "id": 1085, "name": "prevModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "2311:10:10", + "referencedDeclaration": 1051, + "src": "2347:10:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -2139,7 +2191,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2303:19:10", + "src": "2339:19:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2151,28 +2203,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1059, + "id": 1087, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "2325:7:10", + "referencedDeclaration": 962, + "src": "2361:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1061, + "id": 1089, "indexExpression": { "argumentTypes": null, - "id": 1060, + "id": 1088, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "2333:6:10", + "referencedDeclaration": 1053, + "src": "2369:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -2181,26 +2233,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2325:15:10", + "src": "2361:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2303:37:10", + "src": "2339:37:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1063, + "id": 1091, "nodeType": "ExpressionStatement", - "src": "2303:37:10" + "src": "2339:37:5" }, { "expression": { "argumentTypes": null, - "id": 1068, + "id": 1096, "isConstant": false, "isLValue": false, "isPure": false, @@ -2209,28 +2261,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1064, + "id": 1092, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "2350:7:10", + "referencedDeclaration": 962, + "src": "2386:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1066, + "id": 1094, "indexExpression": { "argumentTypes": null, - "id": 1065, + "id": 1093, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "2358:6:10", + "referencedDeclaration": 1053, + "src": "2394:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -2239,7 +2291,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2350:15:10", + "src": "2386:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2250,14 +2302,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1067, + "id": 1095, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2368:1:10", + "src": "2404:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2265,72 +2317,126 @@ }, "value": "0" }, - "src": "2350:19:10", + "src": "2386:19:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1069, + "id": 1097, "nodeType": "ExpressionStatement", - "src": "2350:19:10" + "src": "2386:19:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1099, + "name": "module", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1053, + "src": "2435:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$935", + "typeString": "contract Module" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Module_$935", + "typeString": "contract Module" + } + ], + "id": 1098, + "name": "DisabledModule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 953, + "src": "2420:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$935_$returns$__$", + "typeString": "function (contract Module)" + } + }, + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2420:22:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1101, + "nodeType": "EmitStatement", + "src": "2415:27:5" } ] }, "documentation": "@dev Allows to remove a module from the whitelist.\n This can only be done via a Safe transaction.\n @param prevModule Module that pointed to the module to be removed in the linked list\n @param module Module to be removed.", - "id": 1071, + "id": 1103, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1028, + "id": 1056, "modifierName": { "argumentTypes": null, - "id": 1027, + "id": 1055, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "1982:10:10", + "referencedDeclaration": 1734, + "src": "2018:10:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1982:10:10" + "src": "2018:10:5" } ], "name": "disableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1026, + "id": 1054, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1023, + "id": 1051, "name": "prevModule", "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1925:17:10", + "scope": 1103, + "src": "1961:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1022, + "id": 1050, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "1925:6:10", + "referencedDeclaration": 935, + "src": "1961:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -2339,26 +2445,26 @@ }, { "constant": false, - "id": 1025, + "id": 1053, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1944:13:10", + "scope": 1103, + "src": "1980:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1024, + "id": 1052, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "1944:6:10", + "referencedDeclaration": 935, + "src": "1980:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -2366,26 +2472,26 @@ "visibility": "internal" } ], - "src": "1924:34:10" + "src": "1960:34:5" }, "payable": false, "returnParameters": { - "id": 1029, + "id": 1057, "nodeType": "ParameterList", "parameters": [], - "src": "1997:0:10" + "src": "2033:0:5" }, - "scope": 1180, - "src": "1902:474:10", + "scope": 1212, + "src": "1938:511:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1105, + "id": 1137, "nodeType": "Block", - "src": "2862:279:10", + "src": "2935:279:5", "statements": [ { "expression": { @@ -2397,7 +2503,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1090, + "id": 1122, "isConstant": false, "isLValue": false, "isPure": false, @@ -2406,34 +2512,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1085, + "id": 1117, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "2929:7:10", + "referencedDeclaration": 962, + "src": "3002:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1088, + "id": 1120, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1086, + "id": 1118, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2937:3:10", + "referencedDeclaration": 4491, + "src": "3010:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1087, + "id": 1119, "isConstant": false, "isLValue": false, "isPure": false, @@ -2441,7 +2547,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2937:10:10", + "src": "3010:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2452,7 +2558,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2929:19:10", + "src": "3002:19:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2463,14 +2569,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1089, + "id": 1121, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2952:1:10", + "src": "3025:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2478,7 +2584,7 @@ }, "value": "0" }, - "src": "2929:24:10", + "src": "3002:24:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2487,14 +2593,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65", - "id": 1091, + "id": 1123, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2955:50:10", + "src": "3028:50:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", @@ -2514,21 +2620,21 @@ "typeString": "literal_string \"Method can only be called from an enabled module\"" } ], - "id": 1084, + "id": 1116, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2921:7:10", + "referencedDeclaration": 4495, + "src": "2994:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1092, + "id": 1124, "isConstant": false, "isLValue": false, "isPure": false, @@ -2536,32 +2642,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2921:85:10", + "src": "2994:85:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1093, + "id": 1125, "nodeType": "ExpressionStatement", - "src": "2921:85:10" + "src": "2994:85:5" }, { "expression": { "argumentTypes": null, - "id": 1103, + "id": 1135, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1094, + "id": 1126, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1082, - "src": "3078:7:10", + "referencedDeclaration": 1114, + "src": "3151:7:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2574,12 +2680,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1096, + "id": 1128, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1073, - "src": "3096:2:10", + "referencedDeclaration": 1105, + "src": "3169:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2587,12 +2693,12 @@ }, { "argumentTypes": null, - "id": 1097, + "id": 1129, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "3100:5:10", + "referencedDeclaration": 1107, + "src": "3173:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2600,12 +2706,12 @@ }, { "argumentTypes": null, - "id": 1098, + "id": 1130, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1077, - "src": "3107:4:10", + "referencedDeclaration": 1109, + "src": "3180:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2613,14 +2719,14 @@ }, { "argumentTypes": null, - "id": 1099, + "id": 1131, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1079, - "src": "3113:9:10", + "referencedDeclaration": 1111, + "src": "3186:9:5", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, @@ -2629,18 +2735,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1100, + "id": 1132, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "3124:7:10", + "referencedDeclaration": 4484, + "src": "3197:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 1101, + "id": 1133, "isConstant": false, "isLValue": false, "isPure": false, @@ -2648,7 +2754,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3124:9:10", + "src": "3197:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2670,7 +2776,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, { @@ -2678,18 +2784,18 @@ "typeString": "uint256" } ], - "id": 1095, + "id": 1127, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "3088:7:10", + "referencedDeclaration": 854, + "src": "3161:7:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" } }, - "id": 1102, + "id": 1134, "isConstant": false, "isLValue": false, "isPure": false, @@ -2697,26 +2803,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3088:46:10", + "src": "3161:46:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3078:56:10", + "src": "3151:56:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1104, + "id": 1136, "nodeType": "ExpressionStatement", - "src": "3078:56:10" + "src": "3151:56:5" } ] }, "documentation": "@dev Allows a Module to execute a Safe transaction without any further confirmations.\n @param to Destination address of module transaction.\n @param value Ether value of module transaction.\n @param data Data payload of module transaction.\n @param operation Operation type of module transaction.", - "id": 1106, + "id": 1138, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2724,16 +2830,16 @@ "name": "execTransactionFromModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1080, + "id": 1112, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1073, + "id": 1105, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1106, - "src": "2747:10:10", + "scope": 1138, + "src": "2820:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2741,10 +2847,10 @@ "typeString": "address" }, "typeName": { - "id": 1072, + "id": 1104, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2747:7:10", + "src": "2820:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2755,11 +2861,11 @@ }, { "constant": false, - "id": 1075, + "id": 1107, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1106, - "src": "2759:13:10", + "scope": 1138, + "src": "2832:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2767,10 +2873,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1074, + "id": 1106, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2759:7:10", + "src": "2832:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2781,11 +2887,11 @@ }, { "constant": false, - "id": 1077, + "id": 1109, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1106, - "src": "2774:10:10", + "scope": 1138, + "src": "2847:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2793,10 +2899,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1076, + "id": 1108, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2774:5:10", + "src": "2847:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2807,26 +2913,26 @@ }, { "constant": false, - "id": 1079, + "id": 1111, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 1106, - "src": "2786:24:10", + "scope": 1138, + "src": "2859:24:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 1078, + "id": 1110, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "2786:14:10", + "referencedDeclaration": 1658, + "src": "2859:14:5", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, @@ -2834,20 +2940,20 @@ "visibility": "internal" } ], - "src": "2746:65:10" + "src": "2819:65:5" }, "payable": false, "returnParameters": { - "id": 1083, + "id": 1115, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1082, + "id": 1114, "name": "success", "nodeType": "VariableDeclaration", - "scope": 1106, - "src": "2844:12:10", + "scope": 1138, + "src": "2917:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2855,10 +2961,10 @@ "typeString": "bool" }, "typeName": { - "id": 1081, + "id": 1113, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2844:4:10", + "src": "2917:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2868,32 +2974,32 @@ "visibility": "internal" } ], - "src": "2843:14:10" + "src": "2916:14:5" }, - "scope": 1180, - "src": "2712:429:10", + "scope": 1212, + "src": "2785:429:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1178, + "id": 1210, "nodeType": "Block", - "src": "3302:656:10", + "src": "3375:656:5", "statements": [ { "assignments": [ - 1113 + 1145 ], "declarations": [ { "constant": false, - "id": 1113, + "id": 1145, "name": "moduleCount", "nodeType": "VariableDeclaration", - "scope": 1179, - "src": "3346:19:10", + "scope": 1211, + "src": "3419:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2901,10 +3007,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1112, + "id": 1144, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3346:7:10", + "src": "3419:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2914,18 +3020,18 @@ "visibility": "internal" } ], - "id": 1115, + "id": 1147, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1114, + "id": 1146, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3368:1:10", + "src": "3441:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2934,20 +3040,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3346:23:10" + "src": "3419:23:5" }, { "assignments": [ - 1117 + 1149 ], "declarations": [ { "constant": false, - "id": 1117, + "id": 1149, "name": "currentModule", "nodeType": "VariableDeclaration", - "scope": 1179, - "src": "3379:21:10", + "scope": 1211, + "src": "3452:21:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2955,10 +3061,10 @@ "typeString": "address" }, "typeName": { - "id": 1116, + "id": 1148, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3379:7:10", + "src": "3452:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2968,31 +3074,31 @@ "visibility": "internal" } ], - "id": 1121, + "id": 1153, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1118, + "id": 1150, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "3403:7:10", + "referencedDeclaration": 962, + "src": "3476:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1120, + "id": 1152, "indexExpression": { "argumentTypes": null, - "id": 1119, + "id": 1151, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "3411:16:10", + "referencedDeclaration": 958, + "src": "3484:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3003,37 +3109,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3403:25:10", + "src": "3476:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "3379:49:10" + "src": "3452:49:5" }, { "body": { - "id": 1134, + "id": 1166, "nodeType": "Block", - "src": "3479:91:10", + "src": "3552:91:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 1129, + "id": 1161, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1125, + "id": 1157, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "3493:13:10", + "referencedDeclaration": 1149, + "src": "3566:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3045,26 +3151,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1126, + "id": 1158, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "3509:7:10", + "referencedDeclaration": 962, + "src": "3582:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1128, + "id": 1160, "indexExpression": { "argumentTypes": null, - "id": 1127, + "id": 1159, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "3517:13:10", + "referencedDeclaration": 1149, + "src": "3590:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3075,26 +3181,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3509:22:10", + "src": "3582:22:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3493:38:10", + "src": "3566:38:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1130, + "id": 1162, "nodeType": "ExpressionStatement", - "src": "3493:38:10" + "src": "3566:38:5" }, { "expression": { "argumentTypes": null, - "id": 1132, + "id": 1164, "isConstant": false, "isLValue": false, "isPure": false, @@ -3102,15 +3208,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3545:14:10", + "src": "3618:14:5", "subExpression": { "argumentTypes": null, - "id": 1131, + "id": 1163, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "3545:11:10", + "referencedDeclaration": 1145, + "src": "3618:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3121,9 +3227,9 @@ "typeString": "uint256" } }, - "id": 1133, + "id": 1165, "nodeType": "ExpressionStatement", - "src": "3545:14:10" + "src": "3618:14:5" } ] }, @@ -3133,19 +3239,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1124, + "id": 1156, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1122, + "id": 1154, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "3444:13:10", + "referencedDeclaration": 1149, + "src": "3517:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3155,39 +3261,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1123, + "id": 1155, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "3461:16:10", + "referencedDeclaration": 958, + "src": "3534:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3444:33:10", + "src": "3517:33:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1135, + "id": 1167, "nodeType": "WhileStatement", - "src": "3438:132:10" + "src": "3511:132:5" }, { "assignments": [ - 1139 + 1171 ], "declarations": [ { "constant": false, - "id": 1139, + "id": 1171, "name": "array", "nodeType": "VariableDeclaration", - "scope": 1179, - "src": "3579:22:10", + "scope": 1211, + "src": "3652:22:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3196,19 +3302,19 @@ }, "typeName": { "baseType": { - "id": 1137, + "id": 1169, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3579:7:10", + "src": "3652:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1138, + "id": 1170, "length": null, "nodeType": "ArrayTypeName", - "src": "3579:9:10", + "src": "3652:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -3218,18 +3324,18 @@ "visibility": "internal" } ], - "id": 1145, + "id": 1177, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1143, + "id": 1175, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "3618:11:10", + "referencedDeclaration": 1145, + "src": "3691:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3243,39 +3349,39 @@ "typeString": "uint256" } ], - "id": 1142, + "id": 1174, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3604:13:10", + "src": "3677:13:5", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { - "id": 1140, + "id": 1172, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3608:7:10", + "src": "3681:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1141, + "id": 1173, "length": null, "nodeType": "ArrayTypeName", - "src": "3608:9:10", + "src": "3681:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 1144, + "id": 1176, "isConstant": false, "isLValue": false, "isPure": false, @@ -3283,31 +3389,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3604:26:10", + "src": "3677:26:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "3579:51:10" + "src": "3652:51:5" }, { "expression": { "argumentTypes": null, - "id": 1148, + "id": 1180, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1146, + "id": 1178, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "3674:11:10", + "referencedDeclaration": 1145, + "src": "3747:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3318,14 +3424,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1147, + "id": 1179, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3688:1:10", + "src": "3761:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3333,32 +3439,32 @@ }, "value": "0" }, - "src": "3674:15:10", + "src": "3747:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1149, + "id": 1181, "nodeType": "ExpressionStatement", - "src": "3674:15:10" + "src": "3747:15:5" }, { "expression": { "argumentTypes": null, - "id": 1154, + "id": 1186, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1150, + "id": 1182, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "3699:13:10", + "referencedDeclaration": 1149, + "src": "3772:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3370,26 +3476,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1151, + "id": 1183, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "3715:7:10", + "referencedDeclaration": 962, + "src": "3788:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1153, + "id": 1185, "indexExpression": { "argumentTypes": null, - "id": 1152, + "id": 1184, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "3723:16:10", + "referencedDeclaration": 958, + "src": "3796:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3400,32 +3506,32 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3715:25:10", + "src": "3788:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3699:41:10", + "src": "3772:41:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1155, + "id": 1187, "nodeType": "ExpressionStatement", - "src": "3699:41:10" + "src": "3772:41:5" }, { "body": { - "id": 1174, + "id": 1206, "nodeType": "Block", - "src": "3791:139:10", + "src": "3864:139:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 1163, + "id": 1195, "isConstant": false, "isLValue": false, "isPure": false, @@ -3434,26 +3540,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1159, + "id": 1191, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1139, - "src": "3805:5:10", + "referencedDeclaration": 1171, + "src": "3878:5:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1161, + "id": 1193, "indexExpression": { "argumentTypes": null, - "id": 1160, + "id": 1192, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "3811:11:10", + "referencedDeclaration": 1145, + "src": "3884:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3464,7 +3570,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3805:18:10", + "src": "3878:18:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3474,43 +3580,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1162, + "id": 1194, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "3826:13:10", + "referencedDeclaration": 1149, + "src": "3899:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3805:34:10", + "src": "3878:34:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1164, + "id": 1196, "nodeType": "ExpressionStatement", - "src": "3805:34:10" + "src": "3878:34:5" }, { "expression": { "argumentTypes": null, - "id": 1169, + "id": 1201, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1165, + "id": 1197, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "3853:13:10", + "referencedDeclaration": 1149, + "src": "3926:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3522,26 +3628,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1166, + "id": 1198, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "3869:7:10", + "referencedDeclaration": 962, + "src": "3942:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1168, + "id": 1200, "indexExpression": { "argumentTypes": null, - "id": 1167, + "id": 1199, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "3877:13:10", + "referencedDeclaration": 1149, + "src": "3950:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3552,26 +3658,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3869:22:10", + "src": "3942:22:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3853:38:10", + "src": "3926:38:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1170, + "id": 1202, "nodeType": "ExpressionStatement", - "src": "3853:38:10" + "src": "3926:38:5" }, { "expression": { "argumentTypes": null, - "id": 1172, + "id": 1204, "isConstant": false, "isLValue": false, "isPure": false, @@ -3579,15 +3685,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3905:14:10", + "src": "3978:14:5", "subExpression": { "argumentTypes": null, - "id": 1171, + "id": 1203, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "3905:11:10", + "referencedDeclaration": 1145, + "src": "3978:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3598,9 +3704,9 @@ "typeString": "uint256" } }, - "id": 1173, + "id": 1205, "nodeType": "ExpressionStatement", - "src": "3905:14:10" + "src": "3978:14:5" } ] }, @@ -3610,19 +3716,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1158, + "id": 1190, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1156, + "id": 1188, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "3756:13:10", + "referencedDeclaration": 1149, + "src": "3829:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3632,50 +3738,50 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1157, + "id": 1189, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "3773:16:10", + "referencedDeclaration": 958, + "src": "3846:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3756:33:10", + "src": "3829:33:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1175, + "id": 1207, "nodeType": "WhileStatement", - "src": "3750:180:10" + "src": "3823:180:5" }, { "expression": { "argumentTypes": null, - "id": 1176, + "id": 1208, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1139, - "src": "3946:5:10", + "referencedDeclaration": 1171, + "src": "4019:5:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 1111, - "id": 1177, + "functionReturnParameters": 1143, + "id": 1209, "nodeType": "Return", - "src": "3939:12:10" + "src": "4012:12:5" } ] }, "documentation": "@dev Returns array of modules.\n @return Array of modules.", - "id": 1179, + "id": 1211, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3683,23 +3789,23 @@ "name": "getModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 1107, + "id": 1139, "nodeType": "ParameterList", "parameters": [], - "src": "3239:2:10" + "src": "3312:2:5" }, "payable": false, "returnParameters": { - "id": 1111, + "id": 1143, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1110, + "id": 1142, "name": "", "nodeType": "VariableDeclaration", - "scope": 1179, - "src": "3287:9:10", + "scope": 1211, + "src": "3360:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3708,19 +3814,19 @@ }, "typeName": { "baseType": { - "id": 1108, + "id": 1140, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3287:7:10", + "src": "3360:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1109, + "id": 1141, "length": null, "nodeType": "ArrayTypeName", - "src": "3287:9:10", + "src": "3360:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -3730,82 +3836,82 @@ "visibility": "internal" } ], - "src": "3286:11:10" + "src": "3359:11:5" }, - "scope": 1180, - "src": "3220:738:10", + "scope": 1212, + "src": "3293:738:5", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1181, - "src": "332:3628:10" + "scope": 1213, + "src": "348:3685:5" } ], - "src": "0:3961:10" + "src": "0:4034:5" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", "exportedSymbols": { "ModuleManager": [ - 1180 + 1212 ] }, - "id": 1181, + "id": 1213, "nodeType": "SourceUnit", "nodes": [ { - "id": 915, + "id": 937, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:10" + "src": "0:23:5" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", - "file": "./Enum.sol", - "id": 916, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "file": "../common/Enum.sol", + "id": 938, "nodeType": "ImportDirective", - "scope": 1181, - "sourceUnit": 31, - "src": "24:20:10", + "scope": 1213, + "sourceUnit": 1660, + "src": "24:28:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Executor.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", + "file": "../common/SelfAuthorized.sol", + "id": 939, + "nodeType": "ImportDirective", + "scope": 1213, + "sourceUnit": 1736, + "src": "53:38:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Executor.sol", "file": "./Executor.sol", - "id": 917, + "id": 940, "nodeType": "ImportDirective", - "scope": 1181, - "sourceUnit": 154, - "src": "45:24:10", + "scope": 1213, + "sourceUnit": 893, + "src": "92:24:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", "file": "./Module.sol", - "id": 918, + "id": 941, "nodeType": "ImportDirective", - "scope": 1181, - "sourceUnit": 914, - "src": "70:22:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", - "file": "./SelfAuthorized.sol", - "id": 919, - "nodeType": "ImportDirective", - "scope": 1181, - "sourceUnit": 1766, - "src": "93:30:10", + "scope": 1213, + "sourceUnit": 936, + "src": "117:22:5", "symbolAliases": [], "unitAlias": "" }, @@ -3815,150 +3921,152 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 920, + "id": 942, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1765, - "src": "358:14:10", + "referencedDeclaration": 1735, + "src": "374:14:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1765", + "typeIdentifier": "t_contract$_SelfAuthorized_$1735", "typeString": "contract SelfAuthorized" } }, - "id": 921, + "id": 943, "nodeType": "InheritanceSpecifier", - "src": "358:14:10" + "src": "374:14:5" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 922, + "id": 944, "name": "Executor", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 153, - "src": "374:8:10", + "referencedDeclaration": 892, + "src": "390:8:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Executor_$153", + "typeIdentifier": "t_contract$_Executor_$892", "typeString": "contract Executor" } }, - "id": 923, + "id": 945, "nodeType": "InheritanceSpecifier", - "src": "374:8:10" + "src": "390:8:5" } ], "contractDependencies": [ - 153, - 37, - 1765 + 892, + 1666, + 1735 ], "contractKind": "contract", "documentation": "@title Module Manager - A contract that manages modules that can execute transactions via this contract\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1180, + "id": 1212, "linearizedBaseContracts": [ - 1180, - 153, - 37, - 1765 + 1212, + 892, + 1666, + 1735 ], "name": "ModuleManager", "nodeType": "ContractDefinition", "nodes": [ { - "constant": true, - "id": 926, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 1180, - "src": "390:46:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" + "anonymous": false, + "documentation": null, + "id": 949, + "name": "EnabledModule", + "nodeType": "EventDefinition", + "parameters": { + "id": 948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 947, + "indexed": false, + "name": "module", + "nodeType": "VariableDeclaration", + "scope": 949, + "src": "426:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$935", + "typeString": "contract Module" + }, + "typeName": { + "contractScope": null, + "id": 946, + "name": "Module", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 935, + "src": "426:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$935", + "typeString": "contract Module" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "425:15:5" }, - "typeName": { - "id": 924, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "390:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } + "src": "406:35:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 953, + "name": "DisabledModule", + "nodeType": "EventDefinition", + "parameters": { + "id": 952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 951, + "indexed": false, + "name": "module", + "nodeType": "VariableDeclaration", + "scope": 953, + "src": "467:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$935", + "typeString": "contract Module" + }, + "typeName": { + "contractScope": null, + "id": 950, + "name": "Module", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 935, + "src": "467:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$935", + "typeString": "contract Module" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "466:15:5" }, - "value": { - "argumentTypes": null, - "hexValue": "4d6f64756c65204d616e61676572", - "id": 925, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "420:16:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_12aaa44a1bae367a1e1d9881f5d80283afded6373c2a1ca586db420944084efb", - "typeString": "literal_string \"Module Manager\"" - }, - "value": "Module Manager" - }, - "visibility": "public" + "src": "446:36:5" }, { "constant": true, - "id": 929, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 1180, - "src": "442:40:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 927, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "442:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e31", - "id": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "475:7:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" - }, - "value": "0.0.1" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 934, + "id": 958, "name": "SENTINEL_MODULES", "nodeType": "VariableDeclaration", - "scope": 1180, - "src": "488:55:10", + "scope": 1212, + "src": "488:55:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3966,10 +4074,10 @@ "typeString": "address" }, "typeName": { - "id": 930, + "id": 954, "name": "address", "nodeType": "ElementaryTypeName", - "src": "488:7:10", + "src": "488:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3981,14 +4089,14 @@ { "argumentTypes": null, "hexValue": "307831", - "id": 932, + "id": 956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "539:3:10", + "src": "539:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -4004,20 +4112,20 @@ "typeString": "int_const 1" } ], - "id": 931, + "id": 955, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "531:7:10", + "src": "531:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 933, + "id": 957, "isConstant": false, "isLValue": false, "isPure": true, @@ -4025,7 +4133,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "531:12:10", + "src": "531:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4035,11 +4143,11 @@ }, { "constant": false, - "id": 938, + "id": 962, "name": "modules", "nodeType": "VariableDeclaration", - "scope": 1180, - "src": "550:45:10", + "scope": 1212, + "src": "550:45:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4047,28 +4155,28 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 937, + "id": 961, "keyType": { - "id": 935, + "id": 959, "name": "address", "nodeType": "ElementaryTypeName", - "src": "559:7:10", + "src": "559:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "550:28:10", + "src": "550:28:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" }, "valueType": { - "id": 936, + "id": 960, "name": "address", "nodeType": "ElementaryTypeName", - "src": "570:7:10", + "src": "570:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4080,9 +4188,9 @@ }, { "body": { - "id": 974, + "id": 998, "nodeType": "Block", - "src": "673:342:10", + "src": "673:342:5", "statements": [ { "expression": { @@ -4094,7 +4202,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 950, + "id": 974, "isConstant": false, "isLValue": false, "isPure": false, @@ -4103,26 +4211,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 946, + "id": 970, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "691:7:10", + "referencedDeclaration": 962, + "src": "691:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 948, + "id": 972, "indexExpression": { "argumentTypes": null, - "id": 947, + "id": 971, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "699:16:10", + "referencedDeclaration": 958, + "src": "699:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4133,7 +4241,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "691:25:10", + "src": "691:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4144,14 +4252,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 949, + "id": 973, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "720:1:10", + "src": "720:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4159,7 +4267,7 @@ }, "value": "0" }, - "src": "691:30:10", + "src": "691:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4168,14 +4276,14 @@ { "argumentTypes": null, "hexValue": "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564", - "id": 951, + "id": 975, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "723:39:10", + "src": "723:39:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77", @@ -4195,21 +4303,21 @@ "typeString": "literal_string \"Modules have already been initialized\"" } ], - "id": 945, + "id": 969, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "683:7:10", + "referencedDeclaration": 4495, + "src": "683:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 952, + "id": 976, "isConstant": false, "isLValue": false, "isPure": false, @@ -4217,20 +4325,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "683:80:10", + "src": "683:80:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 953, + "id": 977, "nodeType": "ExpressionStatement", - "src": "683:80:10" + "src": "683:80:5" }, { "expression": { "argumentTypes": null, - "id": 958, + "id": 982, "isConstant": false, "isLValue": false, "isPure": false, @@ -4239,26 +4347,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 954, + "id": 978, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "773:7:10", + "referencedDeclaration": 962, + "src": "773:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 956, + "id": 980, "indexExpression": { "argumentTypes": null, - "id": 955, + "id": 979, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "781:16:10", + "referencedDeclaration": 958, + "src": "781:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4269,7 +4377,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "773:25:10", + "src": "773:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4279,26 +4387,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 957, + "id": 981, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "801:16:10", + "referencedDeclaration": 958, + "src": "801:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "773:44:10", + "src": "773:44:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 959, + "id": 983, "nodeType": "ExpressionStatement", - "src": "773:44:10" + "src": "773:44:5" }, { "condition": { @@ -4307,19 +4415,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 962, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 960, + "id": 984, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 940, - "src": "831:2:10", + "referencedDeclaration": 964, + "src": "831:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4330,14 +4438,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 961, + "id": 985, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "837:1:10", + "src": "837:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4345,16 +4453,16 @@ }, "value": "0" }, - "src": "831:7:10", + "src": "831:7:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 973, + "id": 997, "nodeType": "IfStatement", - "src": "827:181:10", + "src": "827:181:5", "trueBody": { "expression": { "argumentTypes": null, @@ -4364,12 +4472,12 @@ "arguments": [ { "argumentTypes": null, - "id": 965, + "id": 989, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 940, - "src": "952:2:10", + "referencedDeclaration": 964, + "src": "952:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4377,12 +4485,12 @@ }, { "argumentTypes": null, - "id": 966, + "id": 990, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 942, - "src": "956:4:10", + "referencedDeclaration": 966, + "src": "956:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -4393,18 +4501,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 967, + "id": 991, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "962:7:10", + "referencedDeclaration": 4484, + "src": "962:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 968, + "id": 992, "isConstant": false, "isLValue": false, "isPure": false, @@ -4412,7 +4520,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "962:9:10", + "src": "962:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4434,18 +4542,18 @@ "typeString": "uint256" } ], - "id": 964, + "id": 988, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "932:19:10", + "referencedDeclaration": 882, + "src": "932:19:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,bytes memory,uint256) returns (bool)" } }, - "id": 969, + "id": 993, "isConstant": false, "isLValue": false, "isPure": false, @@ -4453,7 +4561,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "932:40:10", + "src": "932:40:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4462,14 +4570,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e", - "id": 970, + "id": 994, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "974:33:10", + "src": "974:33:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa", @@ -4489,21 +4597,21 @@ "typeString": "literal_string \"Could not finish initialization\"" } ], - "id": 963, + "id": 987, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "924:7:10", + "referencedDeclaration": 4495, + "src": "924:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 971, + "id": 995, "isConstant": false, "isLValue": false, "isPure": false, @@ -4511,21 +4619,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "924:84:10", + "src": "924:84:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 972, + "id": 996, "nodeType": "ExpressionStatement", - "src": "924:84:10" + "src": "924:84:5" } } ] }, "documentation": null, - "id": 975, + "id": 999, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4533,16 +4641,16 @@ "name": "setupModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 943, + "id": 967, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 940, + "id": 964, "name": "to", "nodeType": "VariableDeclaration", - "scope": 975, - "src": "628:10:10", + "scope": 999, + "src": "628:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4550,10 +4658,10 @@ "typeString": "address" }, "typeName": { - "id": 939, + "id": 963, "name": "address", "nodeType": "ElementaryTypeName", - "src": "628:7:10", + "src": "628:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4564,11 +4672,11 @@ }, { "constant": false, - "id": 942, + "id": 966, "name": "data", "nodeType": "VariableDeclaration", - "scope": 975, - "src": "640:10:10", + "scope": 999, + "src": "640:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4576,10 +4684,10 @@ "typeString": "bytes" }, "typeName": { - "id": 941, + "id": 965, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "640:5:10", + "src": "640:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4589,26 +4697,26 @@ "visibility": "internal" } ], - "src": "627:24:10" + "src": "627:24:5" }, "payable": false, "returnParameters": { - "id": 944, + "id": 968, "nodeType": "ParameterList", "parameters": [], - "src": "673:0:10" + "src": "673:0:5" }, - "scope": 1180, - "src": "606:409:10", + "scope": 1212, + "src": "606:409:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1020, + "id": 1048, "nodeType": "Block", - "src": "1257:384:10", + "src": "1257:420:5", "statements": [ { "expression": { @@ -4620,7 +4728,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 993, + "id": 1017, "isConstant": false, "isLValue": false, "isPure": false, @@ -4631,7 +4739,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 987, + "id": 1011, "isConstant": false, "isLValue": false, "isPure": false, @@ -4641,14 +4749,14 @@ "arguments": [ { "argumentTypes": null, - "id": 984, + "id": 1008, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 977, - "src": "1337:6:10", + "referencedDeclaration": 1001, + "src": "1337:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } } @@ -4656,24 +4764,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } ], - "id": 983, + "id": 1007, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1329:7:10", + "src": "1329:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 985, + "id": 1009, "isConstant": false, "isLValue": false, "isPure": false, @@ -4681,7 +4789,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1329:15:10", + "src": "1329:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4692,14 +4800,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 986, + "id": 1010, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1348:1:10", + "src": "1348:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4707,7 +4815,7 @@ }, "value": "0" }, - "src": "1329:20:10", + "src": "1329:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4721,7 +4829,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 992, + "id": 1016, "isConstant": false, "isLValue": false, "isPure": false, @@ -4731,14 +4839,14 @@ "arguments": [ { "argumentTypes": null, - "id": 989, + "id": 1013, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 977, - "src": "1361:6:10", + "referencedDeclaration": 1001, + "src": "1361:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } } @@ -4746,24 +4854,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } ], - "id": 988, + "id": 1012, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1353:7:10", + "src": "1353:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 990, + "id": 1014, "isConstant": false, "isLValue": false, "isPure": false, @@ -4771,7 +4879,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1353:15:10", + "src": "1353:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4781,24 +4889,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 991, + "id": 1015, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "1372:16:10", + "referencedDeclaration": 958, + "src": "1372:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1353:35:10", + "src": "1353:35:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1329:59:10", + "src": "1329:59:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4807,14 +4915,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 994, + "id": 1018, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1390:33:10", + "src": "1390:33:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", @@ -4834,21 +4942,21 @@ "typeString": "literal_string \"Invalid module address provided\"" } ], - "id": 982, + "id": 1006, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1321:7:10", + "referencedDeclaration": 4495, + "src": "1321:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 995, + "id": 1019, "isConstant": false, "isLValue": false, "isPure": false, @@ -4856,15 +4964,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1321:103:10", + "src": "1321:103:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 996, + "id": 1020, "nodeType": "ExpressionStatement", - "src": "1321:103:10" + "src": "1321:103:5" }, { "expression": { @@ -4876,7 +4984,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1002, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": false, @@ -4885,28 +4993,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 998, + "id": 1022, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "1483:7:10", + "referencedDeclaration": 962, + "src": "1483:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1000, + "id": 1024, "indexExpression": { "argumentTypes": null, - "id": 999, + "id": 1023, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 977, - "src": "1491:6:10", + "referencedDeclaration": 1001, + "src": "1491:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -4915,7 +5023,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1483:15:10", + "src": "1483:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4926,14 +5034,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1001, + "id": 1025, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1502:1:10", + "src": "1502:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4941,7 +5049,7 @@ }, "value": "0" }, - "src": "1483:20:10", + "src": "1483:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4950,14 +5058,14 @@ { "argumentTypes": null, "hexValue": "4d6f64756c652068617320616c7265616479206265656e206164646564", - "id": 1003, + "id": 1027, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1505:31:10", + "src": "1505:31:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", @@ -4977,21 +5085,21 @@ "typeString": "literal_string \"Module has already been added\"" } ], - "id": 997, + "id": 1021, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1475:7:10", + "referencedDeclaration": 4495, + "src": "1475:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1004, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -4999,20 +5107,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1475:62:10", + "src": "1475:62:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1005, + "id": 1029, "nodeType": "ExpressionStatement", - "src": "1475:62:10" + "src": "1475:62:5" }, { "expression": { "argumentTypes": null, - "id": 1012, + "id": 1036, "isConstant": false, "isLValue": false, "isPure": false, @@ -5021,28 +5129,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1006, + "id": 1030, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "1547:7:10", + "referencedDeclaration": 962, + "src": "1547:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1008, + "id": 1032, "indexExpression": { "argumentTypes": null, - "id": 1007, + "id": 1031, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 977, - "src": "1555:6:10", + "referencedDeclaration": 1001, + "src": "1555:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -5051,7 +5159,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1547:15:10", + "src": "1547:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5063,26 +5171,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1009, + "id": 1033, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "1565:7:10", + "referencedDeclaration": 962, + "src": "1565:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1011, + "id": 1035, "indexExpression": { "argumentTypes": null, - "id": 1010, + "id": 1034, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "1573:16:10", + "referencedDeclaration": 958, + "src": "1573:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5093,26 +5201,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1565:25:10", + "src": "1565:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1547:43:10", + "src": "1547:43:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1013, + "id": 1037, "nodeType": "ExpressionStatement", - "src": "1547:43:10" + "src": "1547:43:5" }, { "expression": { "argumentTypes": null, - "id": 1018, + "id": 1042, "isConstant": false, "isLValue": false, "isPure": false, @@ -5121,26 +5229,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1014, + "id": 1038, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "1600:7:10", + "referencedDeclaration": 962, + "src": "1600:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1016, + "id": 1040, "indexExpression": { "argumentTypes": null, - "id": 1015, + "id": 1039, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "1608:16:10", + "referencedDeclaration": 958, + "src": "1608:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5151,7 +5259,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1600:25:10", + "src": "1600:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5161,83 +5269,137 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1017, + "id": 1041, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 977, - "src": "1628:6:10", + "referencedDeclaration": 1001, + "src": "1628:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, - "src": "1600:34:10", + "src": "1600:34:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1019, + "id": 1043, "nodeType": "ExpressionStatement", - "src": "1600:34:10" + "src": "1600:34:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1045, + "name": "module", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "1663:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$935", + "typeString": "contract Module" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Module_$935", + "typeString": "contract Module" + } + ], + "id": 1044, + "name": "EnabledModule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 949, + "src": "1649:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$935_$returns$__$", + "typeString": "function (contract Module)" + } + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1649:21:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1047, + "nodeType": "EmitStatement", + "src": "1644:26:5" } ] }, "documentation": "@dev Allows to add a module to the whitelist.\n This can only be done via a Safe transaction.\n @param module Module to be whitelisted.", - "id": 1021, + "id": 1049, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 980, + "id": 1004, "modifierName": { "argumentTypes": null, - "id": 979, + "id": 1003, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "1242:10:10", + "referencedDeclaration": 1734, + "src": "1242:10:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1242:10:10" + "src": "1242:10:5" } ], "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 978, + "id": 1002, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 977, + "id": 1001, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1021, - "src": "1204:13:10", + "scope": 1049, + "src": "1204:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 976, + "id": 1000, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "1204:6:10", + "referencedDeclaration": 935, + "src": "1204:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -5245,26 +5407,26 @@ "visibility": "internal" } ], - "src": "1203:15:10" + "src": "1203:15:5" }, "payable": false, "returnParameters": { - "id": 981, + "id": 1005, "nodeType": "ParameterList", "parameters": [], - "src": "1257:0:10" + "src": "1257:0:5" }, - "scope": 1180, - "src": "1182:459:10", + "scope": 1212, + "src": "1182:495:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1070, + "id": 1102, "nodeType": "Block", - "src": "1997:379:10", + "src": "2033:416:5", "statements": [ { "expression": { @@ -5276,7 +5438,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1041, + "id": 1069, "isConstant": false, "isLValue": false, "isPure": false, @@ -5287,7 +5449,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1035, + "id": 1063, "isConstant": false, "isLValue": false, "isPure": false, @@ -5297,14 +5459,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1032, + "id": 1060, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "2105:6:10", + "referencedDeclaration": 1053, + "src": "2141:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } } @@ -5312,24 +5474,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } ], - "id": 1031, + "id": 1059, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2097:7:10", + "src": "2133:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1033, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, @@ -5337,7 +5499,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2097:15:10", + "src": "2133:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5348,14 +5510,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1034, + "id": 1062, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2116:1:10", + "src": "2152:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5363,7 +5525,7 @@ }, "value": "0" }, - "src": "2097:20:10", + "src": "2133:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5377,7 +5539,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1040, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, @@ -5387,14 +5549,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1037, + "id": 1065, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "2129:6:10", + "referencedDeclaration": 1053, + "src": "2165:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } } @@ -5402,24 +5564,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } ], - "id": 1036, + "id": 1064, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2121:7:10", + "src": "2157:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1038, + "id": 1066, "isConstant": false, "isLValue": false, "isPure": false, @@ -5427,7 +5589,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2121:15:10", + "src": "2157:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5437,24 +5599,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1039, + "id": 1067, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "2140:16:10", + "referencedDeclaration": 958, + "src": "2176:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2121:35:10", + "src": "2157:35:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2097:59:10", + "src": "2133:59:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5463,14 +5625,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1042, + "id": 1070, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2158:33:10", + "src": "2194:33:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", @@ -5490,21 +5652,21 @@ "typeString": "literal_string \"Invalid module address provided\"" } ], - "id": 1030, + "id": 1058, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2089:7:10", + "referencedDeclaration": 4495, + "src": "2125:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1043, + "id": 1071, "isConstant": false, "isLValue": false, "isPure": false, @@ -5512,15 +5674,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2089:103:10", + "src": "2125:103:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1044, + "id": 1072, "nodeType": "ExpressionStatement", - "src": "2089:103:10" + "src": "2125:103:5" }, { "expression": { @@ -5532,7 +5694,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1052, + "id": 1080, "isConstant": false, "isLValue": false, "isPure": false, @@ -5541,28 +5703,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1046, + "id": 1074, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "2210:7:10", + "referencedDeclaration": 962, + "src": "2246:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1048, + "id": 1076, "indexExpression": { "argumentTypes": null, - "id": 1047, + "id": 1075, "name": "prevModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "2218:10:10", + "referencedDeclaration": 1051, + "src": "2254:10:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -5571,7 +5733,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2210:19:10", + "src": "2246:19:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5584,14 +5746,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1050, + "id": 1078, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "2241:6:10", + "referencedDeclaration": 1053, + "src": "2277:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } } @@ -5599,24 +5761,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } ], - "id": 1049, + "id": 1077, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2233:7:10", + "src": "2269:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1051, + "id": 1079, "isConstant": false, "isLValue": false, "isPure": false, @@ -5624,13 +5786,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2233:15:10", + "src": "2269:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2210:38:10", + "src": "2246:38:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5639,14 +5801,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564", - "id": 1053, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2250:42:10", + "src": "2286:42:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e", @@ -5666,21 +5828,21 @@ "typeString": "literal_string \"Invalid prevModule, module pair provided\"" } ], - "id": 1045, + "id": 1073, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2202:7:10", + "referencedDeclaration": 4495, + "src": "2238:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1054, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, @@ -5688,20 +5850,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2202:91:10", + "src": "2238:91:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1055, + "id": 1083, "nodeType": "ExpressionStatement", - "src": "2202:91:10" + "src": "2238:91:5" }, { "expression": { "argumentTypes": null, - "id": 1062, + "id": 1090, "isConstant": false, "isLValue": false, "isPure": false, @@ -5710,28 +5872,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1056, + "id": 1084, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "2303:7:10", + "referencedDeclaration": 962, + "src": "2339:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1058, + "id": 1086, "indexExpression": { "argumentTypes": null, - "id": 1057, + "id": 1085, "name": "prevModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "2311:10:10", + "referencedDeclaration": 1051, + "src": "2347:10:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -5740,7 +5902,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2303:19:10", + "src": "2339:19:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5752,28 +5914,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1059, + "id": 1087, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "2325:7:10", + "referencedDeclaration": 962, + "src": "2361:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1061, + "id": 1089, "indexExpression": { "argumentTypes": null, - "id": 1060, + "id": 1088, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "2333:6:10", + "referencedDeclaration": 1053, + "src": "2369:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -5782,26 +5944,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2325:15:10", + "src": "2361:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2303:37:10", + "src": "2339:37:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1063, + "id": 1091, "nodeType": "ExpressionStatement", - "src": "2303:37:10" + "src": "2339:37:5" }, { "expression": { "argumentTypes": null, - "id": 1068, + "id": 1096, "isConstant": false, "isLValue": false, "isPure": false, @@ -5810,28 +5972,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1064, + "id": 1092, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "2350:7:10", + "referencedDeclaration": 962, + "src": "2386:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1066, + "id": 1094, "indexExpression": { "argumentTypes": null, - "id": 1065, + "id": 1093, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "2358:6:10", + "referencedDeclaration": 1053, + "src": "2394:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -5840,7 +6002,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2350:15:10", + "src": "2386:15:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5851,14 +6013,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1067, + "id": 1095, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2368:1:10", + "src": "2404:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5866,72 +6028,126 @@ }, "value": "0" }, - "src": "2350:19:10", + "src": "2386:19:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1069, + "id": 1097, "nodeType": "ExpressionStatement", - "src": "2350:19:10" + "src": "2386:19:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1099, + "name": "module", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1053, + "src": "2435:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$935", + "typeString": "contract Module" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Module_$935", + "typeString": "contract Module" + } + ], + "id": 1098, + "name": "DisabledModule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 953, + "src": "2420:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$935_$returns$__$", + "typeString": "function (contract Module)" + } + }, + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2420:22:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1101, + "nodeType": "EmitStatement", + "src": "2415:27:5" } ] }, "documentation": "@dev Allows to remove a module from the whitelist.\n This can only be done via a Safe transaction.\n @param prevModule Module that pointed to the module to be removed in the linked list\n @param module Module to be removed.", - "id": 1071, + "id": 1103, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1028, + "id": 1056, "modifierName": { "argumentTypes": null, - "id": 1027, + "id": 1055, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "1982:10:10", + "referencedDeclaration": 1734, + "src": "2018:10:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1982:10:10" + "src": "2018:10:5" } ], "name": "disableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1026, + "id": 1054, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1023, + "id": 1051, "name": "prevModule", "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1925:17:10", + "scope": 1103, + "src": "1961:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1022, + "id": 1050, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "1925:6:10", + "referencedDeclaration": 935, + "src": "1961:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -5940,26 +6156,26 @@ }, { "constant": false, - "id": 1025, + "id": 1053, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1944:13:10", + "scope": 1103, + "src": "1980:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1024, + "id": 1052, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "1944:6:10", + "referencedDeclaration": 935, + "src": "1980:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, @@ -5967,26 +6183,26 @@ "visibility": "internal" } ], - "src": "1924:34:10" + "src": "1960:34:5" }, "payable": false, "returnParameters": { - "id": 1029, + "id": 1057, "nodeType": "ParameterList", "parameters": [], - "src": "1997:0:10" + "src": "2033:0:5" }, - "scope": 1180, - "src": "1902:474:10", + "scope": 1212, + "src": "1938:511:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1105, + "id": 1137, "nodeType": "Block", - "src": "2862:279:10", + "src": "2935:279:5", "statements": [ { "expression": { @@ -5998,7 +6214,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1090, + "id": 1122, "isConstant": false, "isLValue": false, "isPure": false, @@ -6007,34 +6223,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1085, + "id": 1117, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "2929:7:10", + "referencedDeclaration": 962, + "src": "3002:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1088, + "id": 1120, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1086, + "id": 1118, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2937:3:10", + "referencedDeclaration": 4491, + "src": "3010:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1087, + "id": 1119, "isConstant": false, "isLValue": false, "isPure": false, @@ -6042,7 +6258,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2937:10:10", + "src": "3010:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6053,7 +6269,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2929:19:10", + "src": "3002:19:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6064,14 +6280,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1089, + "id": 1121, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2952:1:10", + "src": "3025:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6079,7 +6295,7 @@ }, "value": "0" }, - "src": "2929:24:10", + "src": "3002:24:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6088,14 +6304,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65", - "id": 1091, + "id": 1123, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2955:50:10", + "src": "3028:50:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", @@ -6115,21 +6331,21 @@ "typeString": "literal_string \"Method can only be called from an enabled module\"" } ], - "id": 1084, + "id": 1116, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2921:7:10", + "referencedDeclaration": 4495, + "src": "2994:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1092, + "id": 1124, "isConstant": false, "isLValue": false, "isPure": false, @@ -6137,32 +6353,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2921:85:10", + "src": "2994:85:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1093, + "id": 1125, "nodeType": "ExpressionStatement", - "src": "2921:85:10" + "src": "2994:85:5" }, { "expression": { "argumentTypes": null, - "id": 1103, + "id": 1135, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1094, + "id": 1126, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1082, - "src": "3078:7:10", + "referencedDeclaration": 1114, + "src": "3151:7:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6175,12 +6391,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1096, + "id": 1128, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1073, - "src": "3096:2:10", + "referencedDeclaration": 1105, + "src": "3169:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6188,12 +6404,12 @@ }, { "argumentTypes": null, - "id": 1097, + "id": 1129, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "3100:5:10", + "referencedDeclaration": 1107, + "src": "3173:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6201,12 +6417,12 @@ }, { "argumentTypes": null, - "id": 1098, + "id": 1130, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1077, - "src": "3107:4:10", + "referencedDeclaration": 1109, + "src": "3180:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6214,14 +6430,14 @@ }, { "argumentTypes": null, - "id": 1099, + "id": 1131, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1079, - "src": "3113:9:10", + "referencedDeclaration": 1111, + "src": "3186:9:5", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, @@ -6230,18 +6446,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1100, + "id": 1132, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "3124:7:10", + "referencedDeclaration": 4484, + "src": "3197:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 1101, + "id": 1133, "isConstant": false, "isLValue": false, "isPure": false, @@ -6249,7 +6465,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3124:9:10", + "src": "3197:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6271,7 +6487,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, { @@ -6279,18 +6495,18 @@ "typeString": "uint256" } ], - "id": 1095, + "id": 1127, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "3088:7:10", + "referencedDeclaration": 854, + "src": "3161:7:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" } }, - "id": 1102, + "id": 1134, "isConstant": false, "isLValue": false, "isPure": false, @@ -6298,26 +6514,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3088:46:10", + "src": "3161:46:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3078:56:10", + "src": "3151:56:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1104, + "id": 1136, "nodeType": "ExpressionStatement", - "src": "3078:56:10" + "src": "3151:56:5" } ] }, "documentation": "@dev Allows a Module to execute a Safe transaction without any further confirmations.\n @param to Destination address of module transaction.\n @param value Ether value of module transaction.\n @param data Data payload of module transaction.\n @param operation Operation type of module transaction.", - "id": 1106, + "id": 1138, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6325,16 +6541,16 @@ "name": "execTransactionFromModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1080, + "id": 1112, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1073, + "id": 1105, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1106, - "src": "2747:10:10", + "scope": 1138, + "src": "2820:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6342,10 +6558,10 @@ "typeString": "address" }, "typeName": { - "id": 1072, + "id": 1104, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2747:7:10", + "src": "2820:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6356,11 +6572,11 @@ }, { "constant": false, - "id": 1075, + "id": 1107, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1106, - "src": "2759:13:10", + "scope": 1138, + "src": "2832:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6368,10 +6584,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1074, + "id": 1106, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2759:7:10", + "src": "2832:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6382,11 +6598,11 @@ }, { "constant": false, - "id": 1077, + "id": 1109, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1106, - "src": "2774:10:10", + "scope": 1138, + "src": "2847:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6394,10 +6610,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1076, + "id": 1108, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2774:5:10", + "src": "2847:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6408,26 +6624,26 @@ }, { "constant": false, - "id": 1079, + "id": 1111, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 1106, - "src": "2786:24:10", + "scope": 1138, + "src": "2859:24:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 1078, + "id": 1110, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "2786:14:10", + "referencedDeclaration": 1658, + "src": "2859:14:5", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, @@ -6435,20 +6651,20 @@ "visibility": "internal" } ], - "src": "2746:65:10" + "src": "2819:65:5" }, "payable": false, "returnParameters": { - "id": 1083, + "id": 1115, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1082, + "id": 1114, "name": "success", "nodeType": "VariableDeclaration", - "scope": 1106, - "src": "2844:12:10", + "scope": 1138, + "src": "2917:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6456,10 +6672,10 @@ "typeString": "bool" }, "typeName": { - "id": 1081, + "id": 1113, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2844:4:10", + "src": "2917:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6469,32 +6685,32 @@ "visibility": "internal" } ], - "src": "2843:14:10" + "src": "2916:14:5" }, - "scope": 1180, - "src": "2712:429:10", + "scope": 1212, + "src": "2785:429:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1178, + "id": 1210, "nodeType": "Block", - "src": "3302:656:10", + "src": "3375:656:5", "statements": [ { "assignments": [ - 1113 + 1145 ], "declarations": [ { "constant": false, - "id": 1113, + "id": 1145, "name": "moduleCount", "nodeType": "VariableDeclaration", - "scope": 1179, - "src": "3346:19:10", + "scope": 1211, + "src": "3419:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6502,10 +6718,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1112, + "id": 1144, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3346:7:10", + "src": "3419:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6515,18 +6731,18 @@ "visibility": "internal" } ], - "id": 1115, + "id": 1147, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1114, + "id": 1146, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3368:1:10", + "src": "3441:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6535,20 +6751,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3346:23:10" + "src": "3419:23:5" }, { "assignments": [ - 1117 + 1149 ], "declarations": [ { "constant": false, - "id": 1117, + "id": 1149, "name": "currentModule", "nodeType": "VariableDeclaration", - "scope": 1179, - "src": "3379:21:10", + "scope": 1211, + "src": "3452:21:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6556,10 +6772,10 @@ "typeString": "address" }, "typeName": { - "id": 1116, + "id": 1148, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3379:7:10", + "src": "3452:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6569,31 +6785,31 @@ "visibility": "internal" } ], - "id": 1121, + "id": 1153, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1118, + "id": 1150, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "3403:7:10", + "referencedDeclaration": 962, + "src": "3476:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1120, + "id": 1152, "indexExpression": { "argumentTypes": null, - "id": 1119, + "id": 1151, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "3411:16:10", + "referencedDeclaration": 958, + "src": "3484:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6604,37 +6820,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3403:25:10", + "src": "3476:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "3379:49:10" + "src": "3452:49:5" }, { "body": { - "id": 1134, + "id": 1166, "nodeType": "Block", - "src": "3479:91:10", + "src": "3552:91:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 1129, + "id": 1161, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1125, + "id": 1157, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "3493:13:10", + "referencedDeclaration": 1149, + "src": "3566:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6646,26 +6862,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1126, + "id": 1158, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "3509:7:10", + "referencedDeclaration": 962, + "src": "3582:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1128, + "id": 1160, "indexExpression": { "argumentTypes": null, - "id": 1127, + "id": 1159, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "3517:13:10", + "referencedDeclaration": 1149, + "src": "3590:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6676,26 +6892,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3509:22:10", + "src": "3582:22:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3493:38:10", + "src": "3566:38:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1130, + "id": 1162, "nodeType": "ExpressionStatement", - "src": "3493:38:10" + "src": "3566:38:5" }, { "expression": { "argumentTypes": null, - "id": 1132, + "id": 1164, "isConstant": false, "isLValue": false, "isPure": false, @@ -6703,15 +6919,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3545:14:10", + "src": "3618:14:5", "subExpression": { "argumentTypes": null, - "id": 1131, + "id": 1163, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "3545:11:10", + "referencedDeclaration": 1145, + "src": "3618:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6722,9 +6938,9 @@ "typeString": "uint256" } }, - "id": 1133, + "id": 1165, "nodeType": "ExpressionStatement", - "src": "3545:14:10" + "src": "3618:14:5" } ] }, @@ -6734,19 +6950,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1124, + "id": 1156, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1122, + "id": 1154, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "3444:13:10", + "referencedDeclaration": 1149, + "src": "3517:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6756,39 +6972,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1123, + "id": 1155, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "3461:16:10", + "referencedDeclaration": 958, + "src": "3534:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3444:33:10", + "src": "3517:33:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1135, + "id": 1167, "nodeType": "WhileStatement", - "src": "3438:132:10" + "src": "3511:132:5" }, { "assignments": [ - 1139 + 1171 ], "declarations": [ { "constant": false, - "id": 1139, + "id": 1171, "name": "array", "nodeType": "VariableDeclaration", - "scope": 1179, - "src": "3579:22:10", + "scope": 1211, + "src": "3652:22:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -6797,19 +7013,19 @@ }, "typeName": { "baseType": { - "id": 1137, + "id": 1169, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3579:7:10", + "src": "3652:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1138, + "id": 1170, "length": null, "nodeType": "ArrayTypeName", - "src": "3579:9:10", + "src": "3652:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -6819,18 +7035,18 @@ "visibility": "internal" } ], - "id": 1145, + "id": 1177, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1143, + "id": 1175, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "3618:11:10", + "referencedDeclaration": 1145, + "src": "3691:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6844,39 +7060,39 @@ "typeString": "uint256" } ], - "id": 1142, + "id": 1174, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3604:13:10", + "src": "3677:13:5", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { - "id": 1140, + "id": 1172, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3608:7:10", + "src": "3681:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1141, + "id": 1173, "length": null, "nodeType": "ArrayTypeName", - "src": "3608:9:10", + "src": "3681:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 1144, + "id": 1176, "isConstant": false, "isLValue": false, "isPure": false, @@ -6884,31 +7100,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3604:26:10", + "src": "3677:26:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "3579:51:10" + "src": "3652:51:5" }, { "expression": { "argumentTypes": null, - "id": 1148, + "id": 1180, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1146, + "id": 1178, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "3674:11:10", + "referencedDeclaration": 1145, + "src": "3747:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6919,14 +7135,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1147, + "id": 1179, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3688:1:10", + "src": "3761:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6934,32 +7150,32 @@ }, "value": "0" }, - "src": "3674:15:10", + "src": "3747:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1149, + "id": 1181, "nodeType": "ExpressionStatement", - "src": "3674:15:10" + "src": "3747:15:5" }, { "expression": { "argumentTypes": null, - "id": 1154, + "id": 1186, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1150, + "id": 1182, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "3699:13:10", + "referencedDeclaration": 1149, + "src": "3772:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6971,26 +7187,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1151, + "id": 1183, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "3715:7:10", + "referencedDeclaration": 962, + "src": "3788:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1153, + "id": 1185, "indexExpression": { "argumentTypes": null, - "id": 1152, + "id": 1184, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "3723:16:10", + "referencedDeclaration": 958, + "src": "3796:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7001,32 +7217,32 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3715:25:10", + "src": "3788:25:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3699:41:10", + "src": "3772:41:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1155, + "id": 1187, "nodeType": "ExpressionStatement", - "src": "3699:41:10" + "src": "3772:41:5" }, { "body": { - "id": 1174, + "id": 1206, "nodeType": "Block", - "src": "3791:139:10", + "src": "3864:139:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 1163, + "id": 1195, "isConstant": false, "isLValue": false, "isPure": false, @@ -7035,26 +7251,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1159, + "id": 1191, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1139, - "src": "3805:5:10", + "referencedDeclaration": 1171, + "src": "3878:5:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1161, + "id": 1193, "indexExpression": { "argumentTypes": null, - "id": 1160, + "id": 1192, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "3811:11:10", + "referencedDeclaration": 1145, + "src": "3884:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7065,7 +7281,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3805:18:10", + "src": "3878:18:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7075,43 +7291,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1162, + "id": 1194, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "3826:13:10", + "referencedDeclaration": 1149, + "src": "3899:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3805:34:10", + "src": "3878:34:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1164, + "id": 1196, "nodeType": "ExpressionStatement", - "src": "3805:34:10" + "src": "3878:34:5" }, { "expression": { "argumentTypes": null, - "id": 1169, + "id": 1201, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1165, + "id": 1197, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "3853:13:10", + "referencedDeclaration": 1149, + "src": "3926:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7123,26 +7339,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1166, + "id": 1198, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "3869:7:10", + "referencedDeclaration": 962, + "src": "3942:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1168, + "id": 1200, "indexExpression": { "argumentTypes": null, - "id": 1167, + "id": 1199, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "3877:13:10", + "referencedDeclaration": 1149, + "src": "3950:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7153,26 +7369,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3869:22:10", + "src": "3942:22:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3853:38:10", + "src": "3926:38:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1170, + "id": 1202, "nodeType": "ExpressionStatement", - "src": "3853:38:10" + "src": "3926:38:5" }, { "expression": { "argumentTypes": null, - "id": 1172, + "id": 1204, "isConstant": false, "isLValue": false, "isPure": false, @@ -7180,15 +7396,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3905:14:10", + "src": "3978:14:5", "subExpression": { "argumentTypes": null, - "id": 1171, + "id": 1203, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "3905:11:10", + "referencedDeclaration": 1145, + "src": "3978:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7199,9 +7415,9 @@ "typeString": "uint256" } }, - "id": 1173, + "id": 1205, "nodeType": "ExpressionStatement", - "src": "3905:14:10" + "src": "3978:14:5" } ] }, @@ -7211,19 +7427,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1158, + "id": 1190, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1156, + "id": 1188, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1117, - "src": "3756:13:10", + "referencedDeclaration": 1149, + "src": "3829:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7233,50 +7449,50 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1157, + "id": 1189, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "3773:16:10", + "referencedDeclaration": 958, + "src": "3846:16:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3756:33:10", + "src": "3829:33:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1175, + "id": 1207, "nodeType": "WhileStatement", - "src": "3750:180:10" + "src": "3823:180:5" }, { "expression": { "argumentTypes": null, - "id": 1176, + "id": 1208, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1139, - "src": "3946:5:10", + "referencedDeclaration": 1171, + "src": "4019:5:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 1111, - "id": 1177, + "functionReturnParameters": 1143, + "id": 1209, "nodeType": "Return", - "src": "3939:12:10" + "src": "4012:12:5" } ] }, "documentation": "@dev Returns array of modules.\n @return Array of modules.", - "id": 1179, + "id": 1211, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7284,23 +7500,23 @@ "name": "getModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 1107, + "id": 1139, "nodeType": "ParameterList", "parameters": [], - "src": "3239:2:10" + "src": "3312:2:5" }, "payable": false, "returnParameters": { - "id": 1111, + "id": 1143, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1110, + "id": 1142, "name": "", "nodeType": "VariableDeclaration", - "scope": 1179, - "src": "3287:9:10", + "scope": 1211, + "src": "3360:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7309,19 +7525,19 @@ }, "typeName": { "baseType": { - "id": 1108, + "id": 1140, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3287:7:10", + "src": "3360:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1109, + "id": 1141, "length": null, "nodeType": "ArrayTypeName", - "src": "3287:9:10", + "src": "3360:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -7331,20 +7547,20 @@ "visibility": "internal" } ], - "src": "3286:11:10" + "src": "3359:11:5" }, - "scope": 1180, - "src": "3220:738:10", + "scope": 1212, + "src": "3293:738:5", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1181, - "src": "332:3628:10" + "scope": 1213, + "src": "348:3685:5" } ], - "src": "0:3961:10" + "src": "0:4034:5" }, "compiler": { "name": "solc", @@ -7352,5 +7568,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.088Z" + "updatedAt": "2018-09-26T08:32:07.636Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/MultiSend.json b/safe-contracts/build/contracts/MultiSend.json index fea297e2..a7181d4e 100644 --- a/safe-contracts/build/contracts/MultiSend.json +++ b/safe-contracts/build/contracts/MultiSend.json @@ -18,29 +18,29 @@ ], "bytecode": "0x608060405234801561001057600080fd5b50610169806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680638d80ff0a14610046575b600080fd5b34801561005257600080fd5b506100ad600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506100af565b005b805160205b81811015610138578083015160208201840151604083018501516080840186015160a085018701600085600081146100f357600181146101035761010e565b6000808585888a5af1915061010e565b6000808585895af491505b50600081141561011d57600080fd5b602080601f8501040260a001870196505050505050506100b4565b5050505600a165627a7a72305820c1abf4988401674d6d6a5ceca56de123817c61305360ceffe26ebab59a828b7d0029", "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680638d80ff0a14610046575b600080fd5b34801561005257600080fd5b506100ad600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506100af565b005b805160205b81811015610138578083015160208201840151604083018501516080840186015160a085018701600085600081146100f357600181146101035761010e565b6000808585888a5af1915061010e565b6000808585895af491505b50600081141561011d57600080fd5b602080601f8501040260a001870196505050505050506100b4565b5050505600a165627a7a72305820c1abf4988401674d6d6a5ceca56de123817c61305360ceffe26ebab59a828b7d0029", - "sourceMap": "253:1424:19:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;253:1424:19;;;;;;;", - "deployedSourceMap": "253:1424:19:-;;;;;;;;;;;;;;;;;;;;;;;;695:980;;8:9:-1;5:2;;;30:1;27;20:12;5:2;695:980:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;870:12;864:19;905:4;922:737;936:6;933:1;930:13;922:737;;;1007:1;993:12;989:20;983:27;1068:4;1065:1;1061:12;1047;1043:31;1037:38;1136:4;1133:1;1129:12;1115;1111:31;1105:38;1209:4;1206:1;1202:12;1188;1184:31;1178:38;1270:4;1267:1;1263:12;1249;1245:31;1308:1;1333:9;1365:1;1360:66;;;;1448:1;1443:67;;;;1326:184;;1360:66;1422:1;1419;1407:10;1401:4;1394:5;1390:2;1385:3;1380:44;1369:55;;1360:66;;1443:67;1506:1;1503;1491:10;1485:4;1481:2;1476:3;1463:45;1452:56;;1326:184;;1542:1;1533:7;1530:14;1527:2;;;1557:1;1554;1547:12;1527:2;1638:4;1631;1624;1612:10;1608:21;1604:32;1600:43;1594:4;1590:54;1587:1;1583:62;1578:67;;948:711;;;;;;922:737;;;836:833;;;:::o", + "sourceMap": "253:1424:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;253:1424:15;;;;;;;", + "deployedSourceMap": "253:1424:15:-;;;;;;;;;;;;;;;;;;;;;;;;695:980;;8:9:-1;5:2;;;30:1;27;20:12;5:2;695:980:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;870:12;864:19;905:4;922:737;936:6;933:1;930:13;922:737;;;1007:1;993:12;989:20;983:27;1068:4;1065:1;1061:12;1047;1043:31;1037:38;1136:4;1133:1;1129:12;1115;1111:31;1105:38;1209:4;1206:1;1202:12;1188;1184:31;1178:38;1270:4;1267:1;1263:12;1249;1245:31;1308:1;1333:9;1365:1;1360:66;;;;1448:1;1443:67;;;;1326:184;;1360:66;1422:1;1419;1407:10;1401:4;1394:5;1390:2;1385:3;1380:44;1369:55;;1360:66;;1443:67;1506:1;1503;1491:10;1485:4;1481:2;1476:3;1463:45;1452:56;;1326:184;;1542:1;1533:7;1530:14;1527:2;;;1557:1;1554;1547:12;1527:2;1638:4;1631;1624;1612:10;1608:21;1604:32;1600:43;1594:4;1590:54;1587:1;1583:62;1578:67;;948:711;;;;;;922:737;;;836:833;;;:::o", "source": "pragma solidity 0.4.24;\n\n\n/// @title Multi Send - Allows to batch multiple transactions into one.\n/// @author Nick Dodson - \n/// @author Gonçalo Sá - \n/// @author Stefan George - \ncontract MultiSend {\n\n /// @dev Sends multiple transactions and reverts all if one fails.\n /// @param transactions Encoded transactions. Each transaction is encoded as a \n /// tuple(operation,address,uint256,bytes), where operation \n /// can be 0 for a call or 1 for a delegatecall. The bytes \n /// of all encoded transactions are concatenated to form the input.\n function multiSend(bytes transactions)\n public\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let length := mload(transactions)\n let i := 0x20\n for { } lt(i, length) { } {\n let operation := mload(add(transactions, i))\n let to := mload(add(transactions, add(i, 0x20)))\n let value := mload(add(transactions, add(i, 0x40)))\n let dataLength := mload(add(transactions, add(i, 0x80)))\n let data := add(transactions, add(i, 0xa0))\n let success := 0\n switch operation \n case 0 { success := call(gas, to, value, data, dataLength, 0, 0) }\n case 1 { success := delegatecall(gas, to, data, dataLength, 0, 0) }\n if eq(success, 0) { revert(0, 0) }\n i := add(i, add(0xa0, mul(div(add(dataLength, 0x1f), 0x20), 0x20)))\n }\n }\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", "exportedSymbols": { "MultiSend": [ - 1876 + 1858 ] }, - "id": 1877, + "id": 1859, "nodeType": "SourceUnit", "nodes": [ { - "id": 1868, + "id": 1850, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:19" + "src": "0:23:15" }, { "baseContracts": [], @@ -48,85 +48,85 @@ "contractKind": "contract", "documentation": "@title Multi Send - Allows to batch multiple transactions into one.\n @author Nick Dodson - \n @author Gonçalo Sá - \n @author Stefan George - ", "fullyImplemented": true, - "id": 1876, + "id": 1858, "linearizedBaseContracts": [ - 1876 + 1858 ], "name": "MultiSend", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1874, + "id": 1856, "nodeType": "Block", - "src": "753:922:19", + "src": "753:922:15", "statements": [ { "externalReferences": [ { "transactions": { - "declaration": 1870, + "declaration": 1852, "isOffset": false, "isSlot": false, - "src": "870:12:19", + "src": "870:12:15", "valueSize": 1 } }, { "transactions": { - "declaration": 1870, + "declaration": 1852, "isOffset": false, "isSlot": false, - "src": "993:12:19", + "src": "993:12:15", "valueSize": 1 } }, { "transactions": { - "declaration": 1870, + "declaration": 1852, "isOffset": false, "isSlot": false, - "src": "1047:12:19", + "src": "1047:12:15", "valueSize": 1 } }, { "transactions": { - "declaration": 1870, + "declaration": 1852, "isOffset": false, "isSlot": false, - "src": "1188:12:19", + "src": "1188:12:15", "valueSize": 1 } }, { "transactions": { - "declaration": 1870, + "declaration": 1852, "isOffset": false, "isSlot": false, - "src": "1115:12:19", + "src": "1115:12:15", "valueSize": 1 } }, { "transactions": { - "declaration": 1870, + "declaration": 1852, "isOffset": false, "isSlot": false, - "src": "1249:12:19", + "src": "1249:12:15", "valueSize": 1 } } ], - "id": 1873, + "id": 1855, "nodeType": "InlineAssembly", "operations": "{\n let length := mload(transactions)\n let i := 0x20\n for {\n }\n lt(i, length)\n {\n }\n {\n let operation := mload(add(transactions, i))\n let to := mload(add(transactions, add(i, 0x20)))\n let value := mload(add(transactions, add(i, 0x40)))\n let dataLength := mload(add(transactions, add(i, 0x80)))\n let data := add(transactions, add(i, 0xa0))\n let success := 0\n switch operation\n case 0 {\n success := call(gas(), to, value, data, dataLength, 0, 0)\n }\n case 1 {\n success := delegatecall(gas(), to, data, dataLength, 0, 0)\n }\n if eq(success, 0)\n {\n revert(0, 0)\n }\n i := add(i, add(0xa0, mul(div(add(dataLength, 0x1f), 0x20), 0x20)))\n }\n}", - "src": "827:848:19" + "src": "827:848:15" } ] }, "documentation": "@dev Sends multiple transactions and reverts all if one fails.\n @param transactions Encoded transactions. Each transaction is encoded as a \n tuple(operation,address,uint256,bytes), where operation \n can be 0 for a call or 1 for a delegatecall. The bytes \n of all encoded transactions are concatenated to form the input.", - "id": 1875, + "id": 1857, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -134,16 +134,16 @@ "name": "multiSend", "nodeType": "FunctionDefinition", "parameters": { - "id": 1871, + "id": 1853, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1870, + "id": 1852, "name": "transactions", "nodeType": "VariableDeclaration", - "scope": 1875, - "src": "714:18:19", + "scope": 1857, + "src": "714:18:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -151,10 +151,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1869, + "id": 1851, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "714:5:19", + "src": "714:5:15", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -164,47 +164,47 @@ "visibility": "internal" } ], - "src": "713:20:19" + "src": "713:20:15" }, "payable": false, "returnParameters": { - "id": 1872, + "id": 1854, "nodeType": "ParameterList", "parameters": [], - "src": "753:0:19" + "src": "753:0:15" }, - "scope": 1876, - "src": "695:980:19", + "scope": 1858, + "src": "695:980:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1877, - "src": "253:1424:19" + "scope": 1859, + "src": "253:1424:15" } ], - "src": "0:1678:19" + "src": "0:1678:15" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", "exportedSymbols": { "MultiSend": [ - 1876 + 1858 ] }, - "id": 1877, + "id": 1859, "nodeType": "SourceUnit", "nodes": [ { - "id": 1868, + "id": 1850, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:19" + "src": "0:23:15" }, { "baseContracts": [], @@ -212,85 +212,85 @@ "contractKind": "contract", "documentation": "@title Multi Send - Allows to batch multiple transactions into one.\n @author Nick Dodson - \n @author Gonçalo Sá - \n @author Stefan George - ", "fullyImplemented": true, - "id": 1876, + "id": 1858, "linearizedBaseContracts": [ - 1876 + 1858 ], "name": "MultiSend", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1874, + "id": 1856, "nodeType": "Block", - "src": "753:922:19", + "src": "753:922:15", "statements": [ { "externalReferences": [ { "transactions": { - "declaration": 1870, + "declaration": 1852, "isOffset": false, "isSlot": false, - "src": "870:12:19", + "src": "870:12:15", "valueSize": 1 } }, { "transactions": { - "declaration": 1870, + "declaration": 1852, "isOffset": false, "isSlot": false, - "src": "993:12:19", + "src": "993:12:15", "valueSize": 1 } }, { "transactions": { - "declaration": 1870, + "declaration": 1852, "isOffset": false, "isSlot": false, - "src": "1047:12:19", + "src": "1047:12:15", "valueSize": 1 } }, { "transactions": { - "declaration": 1870, + "declaration": 1852, "isOffset": false, "isSlot": false, - "src": "1188:12:19", + "src": "1188:12:15", "valueSize": 1 } }, { "transactions": { - "declaration": 1870, + "declaration": 1852, "isOffset": false, "isSlot": false, - "src": "1115:12:19", + "src": "1115:12:15", "valueSize": 1 } }, { "transactions": { - "declaration": 1870, + "declaration": 1852, "isOffset": false, "isSlot": false, - "src": "1249:12:19", + "src": "1249:12:15", "valueSize": 1 } } ], - "id": 1873, + "id": 1855, "nodeType": "InlineAssembly", "operations": "{\n let length := mload(transactions)\n let i := 0x20\n for {\n }\n lt(i, length)\n {\n }\n {\n let operation := mload(add(transactions, i))\n let to := mload(add(transactions, add(i, 0x20)))\n let value := mload(add(transactions, add(i, 0x40)))\n let dataLength := mload(add(transactions, add(i, 0x80)))\n let data := add(transactions, add(i, 0xa0))\n let success := 0\n switch operation\n case 0 {\n success := call(gas(), to, value, data, dataLength, 0, 0)\n }\n case 1 {\n success := delegatecall(gas(), to, data, dataLength, 0, 0)\n }\n if eq(success, 0)\n {\n revert(0, 0)\n }\n i := add(i, add(0xa0, mul(div(add(dataLength, 0x1f), 0x20), 0x20)))\n }\n}", - "src": "827:848:19" + "src": "827:848:15" } ] }, "documentation": "@dev Sends multiple transactions and reverts all if one fails.\n @param transactions Encoded transactions. Each transaction is encoded as a \n tuple(operation,address,uint256,bytes), where operation \n can be 0 for a call or 1 for a delegatecall. The bytes \n of all encoded transactions are concatenated to form the input.", - "id": 1875, + "id": 1857, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -298,16 +298,16 @@ "name": "multiSend", "nodeType": "FunctionDefinition", "parameters": { - "id": 1871, + "id": 1853, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1870, + "id": 1852, "name": "transactions", "nodeType": "VariableDeclaration", - "scope": 1875, - "src": "714:18:19", + "scope": 1857, + "src": "714:18:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -315,10 +315,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1869, + "id": 1851, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "714:5:19", + "src": "714:5:15", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -328,27 +328,27 @@ "visibility": "internal" } ], - "src": "713:20:19" + "src": "713:20:15" }, "payable": false, "returnParameters": { - "id": 1872, + "id": 1854, "nodeType": "ParameterList", "parameters": [], - "src": "753:0:19" + "src": "753:0:15" }, - "scope": 1876, - "src": "695:980:19", + "scope": 1858, + "src": "695:980:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1877, - "src": "253:1424:19" + "scope": 1859, + "src": "253:1424:15" } ], - "src": "0:1678:19" + "src": "0:1678:15" }, "compiler": { "name": "solc", @@ -358,16 +358,10 @@ "4": { "events": {}, "links": {}, - "address": "0x3a29cf32d22f38b7338874b689a88f185663a1c3", - "transactionHash": "0x86b6895207dff0b3e19c202e140dc9cf823cbfc02672e02636af23a1b580e7e7" - }, - "1534750848541": { - "events": {}, - "links": {}, - "address": "0x5b9b42d6e4b2e4bf8d42eba32d46918e10899b66", - "transactionHash": "0xaf733882096b301ccf5bf4a12ebf84616b88927c71cc656cc037fbd892a24104" + "address": "0xa62b2ceec787cf07145a900e7dc4ef8c60169179", + "transactionHash": "0x49a17437703e92c27676c385a156c357f44dbc63e6641d8a3cc9b51868681323" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:50:29.677Z" + "updatedAt": "2018-09-26T08:56:03.699Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/OwnerManager.json b/safe-contracts/build/contracts/OwnerManager.json index 71f32af4..aca80902 100644 --- a/safe-contracts/build/contracts/OwnerManager.json +++ b/safe-contracts/build/contracts/OwnerManager.json @@ -15,6 +15,42 @@ "stateMutability": "view", "type": "function" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "owner", + "type": "address" + } + ], + "name": "AddedOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "owner", + "type": "address" + } + ], + "name": "RemovedOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "threshold", + "type": "uint256" + } + ], + "name": "ChangedThreshold", + "type": "event" + }, { "constant": false, "inputs": [ @@ -139,40 +175,40 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506116d6806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100935780632f54bf6e146100e0578063694e80c31461013b5780638cff635514610168578063a0e67e2b146101bf578063e318b52b1461022b578063e75235b8146102ae578063f8dc5dd9146102d9575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610346565b005b3480156100ec57600080fd5b50610121600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610748565b604051808215151515815260200191505060405180910390f35b34801561014757600080fd5b50610166600480360381019080803590602001909291905050506107c9565b005b34801561017457600080fd5b5061017d6109db565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cb57600080fd5b506101d46109e0565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102175780820151818401526020810190506101fc565b505050509050019250505060405180910390f35b34801561023757600080fd5b506102ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b79565b005b3480156102ba57600080fd5b506102c36111c0565b6040518082815260200191505060405180910390f35b3480156102e557600080fd5b50610344600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111ca565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561040f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156104635750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156104d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156105c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055508060025414151561074457610743816107c9565b5b5050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001548111151515610932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600181101515156109d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060028190555050565b600181565b606080600080600154604051908082528060200260200182016040528015610a175781602001602082028038833980820191505090505b50925060009150600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610b7057808383815181101515610ac657fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610a81565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610c965750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610df6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610e4a5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610ebe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610fe5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600254905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600180540310151515611335576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156113895750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156113fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611524576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016000815480929190600190039190505550806002541415156116a5576116a4816107c9565b5b5050505600a165627a7a72305820756a32e78a71f45d31aef6b1af48c513f6aec9f08b5cb5f04cb08c230c3a41ec0029", - "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100935780632f54bf6e146100e0578063694e80c31461013b5780638cff635514610168578063a0e67e2b146101bf578063e318b52b1461022b578063e75235b8146102ae578063f8dc5dd9146102d9575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610346565b005b3480156100ec57600080fd5b50610121600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610748565b604051808215151515815260200191505060405180910390f35b34801561014757600080fd5b50610166600480360381019080803590602001909291905050506107c9565b005b34801561017457600080fd5b5061017d6109db565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cb57600080fd5b506101d46109e0565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102175780820151818401526020810190506101fc565b505050509050019250505060405180910390f35b34801561023757600080fd5b506102ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b79565b005b3480156102ba57600080fd5b506102c36111c0565b6040518082815260200191505060405180910390f35b3480156102e557600080fd5b50610344600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111ca565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561040f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156104635750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156104d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156105c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055508060025414151561074457610743816107c9565b5b5050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001548111151515610932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600181101515156109d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060028190555050565b600181565b606080600080600154604051908082528060200260200182016040528015610a175781602001602082028038833980820191505090505b50925060009150600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610b7057808383815181101515610ac657fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610a81565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610c965750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610df6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610e4a5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610ebe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610fe5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600254905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600180540310151515611335576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156113895750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156113fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611524576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016000815480929190600190039190505550806002541415156116a5576116a4816107c9565b5b5050505600a165627a7a72305820756a32e78a71f45d31aef6b1af48c513f6aec9f08b5cb5f04cb08c230c3a41ec0029", - "sourceMap": "240:6044:11:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;240:6044:11;;;;;;;", - "deployedSourceMap": "240:6044:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2093:595:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5613:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5613:129:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5087:399;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5087:399:11;;;;;;;;;;;;;;;;;;;;;;;;;;287:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5824:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5824:458:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5824:458:11;;;;;;;;;;;;;;;;;4147:751;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4147:751:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:115:11;;;;;;;;;;;;;;;;;;;;;;;3030:783;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3030:783:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:1:11;2256:5;:10;;;;:38;;;;;337:3;2270:24;;:5;:24;;;;2256:38;2248:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:1;2387:6;:13;2394:5;2387:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2379:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2463:6;:23;337:3;2463:23;;;;;;;;;;;;;;;;;;;;;;;;;2447:6;:13;2454:5;2447:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2522:5;2496:6;:23;337:3;2496:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2537:10;;:12;;;;;;;;;;;;;2630:10;2617:9;;:23;;2613:68;;;2654:27;2670:10;2654:15;:27::i;:::-;2613:68;2093:595;;:::o;5613:129::-;5690:4;5734:1;5717:6;:13;5724:5;5717:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5710:25;;5613:129;;;:::o;5087:399::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5271:10:11;;5257;:24;;5249:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5405:1;5391:10;:15;;5383:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:10;5457:9;:22;;;;5087:399;:::o;287:54::-;337:3;287:54;:::o;5824:458::-;5890:9;5915:22;6009:13;6036:20;5954:10;;5940:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5940:25:11;;;;5915:50;;6025:1;6009:17;;6059:6;:23;337:3;6059:23;;;;;;;;;;;;;;;;;;;;;;;;;6036:46;;6092:162;337:3;6098:31;;:12;:31;;;;6092:162;;;6160:12;6145:5;6151;6145:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6201:6;:20;6208:12;6201:20;;;;;;;;;;;;;;;;;;;;;;;;;6186:35;;6235:8;;;;;;;6092:162;;;6270:5;6263:12;;5824:458;;;;:::o;4147:751::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:1:11;4318:8;:13;;;;:44;;;;;337:3;4335:27;;:8;:27;;;;4318:44;4310:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4475:1;4455:6;:16;4462:8;4455:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4447:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4621:1;4609:8;:13;;;;:44;;;;;337:3;4626:27;;:8;:27;;;;4609:44;4601:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:8;4706:29;;:6;:17;4713:9;4706:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4698:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4807:6;:16;4814:8;4807:16;;;;;;;;;;;;;;;;;;;;;;;;;4788:6;:16;4795:8;4788:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4853:8;4833:6;:17;4840:9;4833:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4890:1;4871:6;:16;4878:8;4871:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4147:751;;;:::o;5492:115::-;5561:7;5591:9;;5584:16;;5492:115;:::o;3030:783::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3256:10:11;3251:1;3238:10;;:14;:28;;3230:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3431:1;3422:5;:10;;;;:38;;;;;337:3;3436:24;;:5;:24;;;;3422:38;3414:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3534:5;3513:26;;:6;:17;3520:9;3513:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3505:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:6;:13;3619:5;3612:13;;;;;;;;;;;;;;;;;;;;;;;;;3592:6;:17;3599:9;3592:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3651:1;3635:6;:13;3642:5;3635:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3662:10;;:12;;;;;;;;;;;;;;3755:10;3742:9;;:23;;3738:68;;;3779:27;3795:10;3779:15;:27::i;:::-;3738:68;3030:783;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./SelfAuthorized.sol\";\n\n/// @title OwnerManager - Manages a set of owners and a threshold to perform actions.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract OwnerManager is SelfAuthorized {\n\n address public constant SENTINEL_OWNERS = address(0x1);\n\n mapping(address => address) internal owners;\n uint256 ownerCount;\n uint256 internal threshold;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n function setupOwners(address[] _owners, uint256 _threshold)\n internal\n {\n // Threshold can only be 0 at initialization.\n // Check ensures that setup function can only be called once.\n require(threshold == 0, \"Owners have already been setup\");\n // Validate that threshold is smaller than number of added owners.\n require(_threshold <= _owners.length, \"Threshold cannot exceed owner count\");\n // There has to be at least one Safe owner.\n require(_threshold >= 1, \"Threshold needs to be greater than 0\");\n // Initializing Safe owners.\n address currentOwner = SENTINEL_OWNERS;\n for (uint256 i = 0; i < _owners.length; i++) {\n // Owner address cannot be null.\n address owner = _owners[i];\n require(owner != 0 && owner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[owner] == 0, \"Duplicate owner address provided\");\n owners[currentOwner] = owner;\n currentOwner = owner;\n }\n owners[currentOwner] = SENTINEL_OWNERS;\n ownerCount = _owners.length;\n threshold = _threshold;\n }\n\n /// @dev Allows to add a new owner to the Safe and update the threshold at the same time.\n /// This can only be done via a Safe transaction.\n /// @param owner New owner address.\n /// @param _threshold New threshold.\n function addOwnerWithThreshold(address owner, uint256 _threshold)\n public\n authorized\n {\n // Owner address cannot be null.\n require(owner != 0 && owner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[owner] == 0, \"Address is already an owner\");\n owners[owner] = owners[SENTINEL_OWNERS];\n owners[SENTINEL_OWNERS] = owner;\n ownerCount++;\n // Change threshold if threshold was changed.\n if (threshold != _threshold)\n changeThreshold(_threshold);\n }\n\n /// @dev Allows to remove an owner from the Safe and update the threshold at the same time.\n /// This can only be done via a Safe transaction.\n /// @param prevOwner Owner that pointed to the owner to be removed in the linked list\n /// @param owner Owner address to be removed.\n /// @param _threshold New threshold.\n function removeOwner(address prevOwner, address owner, uint256 _threshold)\n public\n authorized\n {\n // Only allow to remove an owner, if threshold can still be reached.\n require(ownerCount - 1 >= _threshold, \"New owner count needs to be larger than new threshold\");\n // Validate owner address and check that it corresponds to owner index.\n require(owner != 0 && owner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n require(owners[prevOwner] == owner, \"Invalid prevOwner, owner pair provided\");\n owners[prevOwner] = owners[owner];\n owners[owner] = 0;\n ownerCount--;\n // Change threshold if threshold was changed.\n if (threshold != _threshold)\n changeThreshold(_threshold);\n }\n\n /// @dev Allows to swap/replace an owner from the Safe with another address.\n /// This can only be done via a Safe transaction.\n /// @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n /// @param oldOwner Owner address to be replaced.\n /// @param newOwner New owner address.\n function swapOwner(address prevOwner, address oldOwner, address newOwner)\n public\n authorized\n {\n // Owner address cannot be null.\n require(newOwner != 0 && newOwner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[newOwner] == 0, \"Address is already an owner\");\n // Validate oldOwner address and check that it corresponds to owner index.\n require(oldOwner != 0 && oldOwner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n require(owners[prevOwner] == oldOwner, \"Invalid prevOwner, owner pair provided\");\n owners[newOwner] = owners[oldOwner];\n owners[prevOwner] = newOwner;\n owners[oldOwner] = 0;\n }\n\n /// @dev Allows to update the number of required confirmations by Safe owners.\n /// This can only be done via a Safe transaction.\n /// @param _threshold New threshold.\n function changeThreshold(uint256 _threshold)\n public\n authorized\n {\n // Validate that threshold is smaller than number of owners.\n require(_threshold <= ownerCount, \"Threshold cannot exceed owner count\");\n // There has to be at least one Safe owner.\n require(_threshold >= 1, \"Threshold needs to be greater than 0\");\n threshold = _threshold;\n }\n\n function getThreshold()\n public\n view\n returns (uint256)\n {\n return threshold;\n }\n\n function isOwner(address owner)\n public\n view\n returns (bool)\n {\n return owners[owner] != 0;\n }\n\n /// @dev Returns array of owners.\n /// @return Array of Safe owners.\n function getOwners()\n public\n view\n returns (address[])\n {\n address[] memory array = new address[](ownerCount);\n\n // populate return array\n uint256 index = 0;\n address currentOwner = owners[SENTINEL_OWNERS];\n while(currentOwner != SENTINEL_OWNERS) {\n array[index] = currentOwner;\n currentOwner = owners[currentOwner];\n index ++;\n }\n return array;\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", + "bytecode": "0x608060405234801561001057600080fd5b5061189b806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100935780632f54bf6e146100e0578063694e80c31461013b5780638cff635514610168578063a0e67e2b146101bf578063e318b52b1461022b578063e75235b8146102ae578063f8dc5dd9146102d9575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610346565b005b3480156100ec57600080fd5b50610121600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107ab565b604051808215151515815260200191505060405180910390f35b34801561014757600080fd5b506101666004803603810190808035906020019092919050505061082c565b005b34801561017457600080fd5b5061017d610a77565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cb57600080fd5b506101d4610a7c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102175780820151818401526020810190506101fc565b505050509050019250505060405180910390f35b34801561023757600080fd5b506102ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c15565b005b3480156102ba57600080fd5b506102c3611322565b6040518082815260200191505060405180910390f35b3480156102e557600080fd5b50610344600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061132c565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561040f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156104635750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156104d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156105c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806002541415156107a7576107a68161082c565b5b5050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001548111151515610995576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515610a34576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806002819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936002546040518082815260200191505060405180910390a150565b600181565b606080600080600154604051908082528060200260200182016040528015610ab35781602001602082028038833980820191505090505b50925060009150600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610c0c57808383815181101515610b6257fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610b1d565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610d325750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610da6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610ee65750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610f5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611081576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600254905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600180540310151515611497576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156114eb5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561155f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611686576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060025414151561186a576118698161082c565b5b5050505600a165627a7a7230582056666623352a47e52d4cc29303aac8f94641a1fd47d42f3cb2f598ede93ce0b00029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100935780632f54bf6e146100e0578063694e80c31461013b5780638cff635514610168578063a0e67e2b146101bf578063e318b52b1461022b578063e75235b8146102ae578063f8dc5dd9146102d9575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610346565b005b3480156100ec57600080fd5b50610121600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107ab565b604051808215151515815260200191505060405180910390f35b34801561014757600080fd5b506101666004803603810190808035906020019092919050505061082c565b005b34801561017457600080fd5b5061017d610a77565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cb57600080fd5b506101d4610a7c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102175780820151818401526020810190506101fc565b505050509050019250505060405180910390f35b34801561023757600080fd5b506102ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c15565b005b3480156102ba57600080fd5b506102c3611322565b6040518082815260200191505060405180910390f35b3480156102e557600080fd5b50610344600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061132c565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561040f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156104635750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156104d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156105c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806002541415156107a7576107a68161082c565b5b5050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001548111151515610995576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515610a34576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806002819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936002546040518082815260200191505060405180910390a150565b600181565b606080600080600154604051908082528060200260200182016040528015610ab35781602001602082028038833980820191505090505b50925060009150600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610c0c57808383815181101515610b6257fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610b1d565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610d325750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610da6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610ee65750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610f5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611081576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600254905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600180540310151515611497576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156114eb5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561155f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611686576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060025414151561186a576118698161082c565b5b5050505600a165627a7a7230582056666623352a47e52d4cc29303aac8f94641a1fd47d42f3cb2f598ede93ce0b00029", + "sourceMap": "248:6348:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;248:6348:6;;;;;;;", + "deployedSourceMap": "248:6348:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2225:627:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5925:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5925:129:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:441;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5357:441:6;;;;;;;;;;;;;;;;;;;;;;;;;;419:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;419:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;6136:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6136:458:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6136:458:6;;;;;;;;;;;;;;;;;4345:823;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4345:823:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5804:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5804:115:6;;;;;;;;;;;;;;;;;;;;;;;3194:817;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3194:817:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2397:1:6;2388:5;:10;;;;:38;;;;;469:3;2402:24;;:5;:24;;;;2388:38;2380:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:1;2519:6;:13;2526:5;2519:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2511:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2595:6;:23;469:3;2595:23;;;;;;;;;;;;;;;;;;;;;;;;;2579:6;:13;2586:5;2579:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2654:5;2628:6;:23;469:3;2628:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2669:10;;:12;;;;;;;;;;;;;2696:17;2707:5;2696:17;;;;;;;;;;;;;;;;;;;;;;2794:10;2781:9;;:23;;2777:68;;;2818:27;2834:10;2818:15;:27::i;:::-;2777:68;2225:627;;:::o;5925:129::-;6002:4;6046:1;6029:6;:13;6036:5;6029:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;6022:25;;5925:129;;;:::o;5357:441::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:10:6;;5527;:24;;5519:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5675:1;5661:10;:15;;5653:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5739:10;5727:9;:22;;;;5764:27;5781:9;;5764:27;;;;;;;;;;;;;;;;;;5357:441;:::o;419:54::-;469:3;419:54;:::o;6136:458::-;6202:9;6227:22;6321:13;6348:20;6266:10;;6252:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6252:25:6;;;;6227:50;;6337:1;6321:17;;6371:6;:23;469:3;6371:23;;;;;;;;;;;;;;;;;;;;;;;;;6348:46;;6404:162;469:3;6410:31;;:12;:31;;;;6404:162;;;6472:12;6457:5;6463;6457:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6513:6;:20;6520:12;6513:20;;;;;;;;;;;;;;;;;;;;;;;;;6498:35;;6547:8;;;;;;;6404:162;;;6582:5;6575:12;;6136:458;;;;:::o;4345:823::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4528:1:6;4516:8;:13;;;;:44;;;;;469:3;4533:27;;:8;:27;;;;4516:44;4508:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4673:1;4653:6;:16;4660:8;4653:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4645:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4819:1;4807:8;:13;;;;:44;;;;;469:3;4824:27;;:8;:27;;;;4807:44;4799:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4925:8;4904:29;;:6;:17;4911:9;4904:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4896:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5005:6;:16;5012:8;5005:16;;;;;;;;;;;;;;;;;;;;;;;;;4986:6;:16;4993:8;4986:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;5051:8;5031:6;:17;5038:9;5031:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;5088:1;5069:6;:16;5076:8;5069:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;5104:22;5117:8;5104:22;;;;;;;;;;;;;;;;;;;;;;5141:20;5152:8;5141:20;;;;;;;;;;;;;;;;;;;;;;4345:823;;;:::o;5804:115::-;5873:7;5903:9;;5896:16;;5804:115;:::o;3194:817::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:10:6;3415:1;3402:10;;:14;:28;;3394:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3595:1;3586:5;:10;;;;:38;;;;;469:3;3600:24;;:5;:24;;;;3586:38;3578:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3698:5;3677:26;;:6;:17;3684:9;3677:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3669:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3776:6;:13;3783:5;3776:13;;;;;;;;;;;;;;;;;;;;;;;;;3756:6;:17;3763:9;3756:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3815:1;3799:6;:13;3806:5;3799:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3826:10;;:12;;;;;;;;;;;;;;3853:19;3866:5;3853:19;;;;;;;;;;;;;;;;;;;;;;3953:10;3940:9;;:23;;3936:68;;;3977:27;3993:10;3977:15;:27::i;:::-;3936:68;3194:817;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"../common/SelfAuthorized.sol\";\n\n/// @title OwnerManager - Manages a set of owners and a threshold to perform actions.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract OwnerManager is SelfAuthorized {\n\n event AddedOwner(address owner);\n event RemovedOwner(address owner);\n event ChangedThreshold(uint256 threshold);\n\n address public constant SENTINEL_OWNERS = address(0x1);\n\n mapping(address => address) internal owners;\n uint256 ownerCount;\n uint256 internal threshold;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n function setupOwners(address[] _owners, uint256 _threshold)\n internal\n {\n // Threshold can only be 0 at initialization.\n // Check ensures that setup function can only be called once.\n require(threshold == 0, \"Owners have already been setup\");\n // Validate that threshold is smaller than number of added owners.\n require(_threshold <= _owners.length, \"Threshold cannot exceed owner count\");\n // There has to be at least one Safe owner.\n require(_threshold >= 1, \"Threshold needs to be greater than 0\");\n // Initializing Safe owners.\n address currentOwner = SENTINEL_OWNERS;\n for (uint256 i = 0; i < _owners.length; i++) {\n // Owner address cannot be null.\n address owner = _owners[i];\n require(owner != 0 && owner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[owner] == 0, \"Duplicate owner address provided\");\n owners[currentOwner] = owner;\n currentOwner = owner;\n }\n owners[currentOwner] = SENTINEL_OWNERS;\n ownerCount = _owners.length;\n threshold = _threshold;\n }\n\n /// @dev Allows to add a new owner to the Safe and update the threshold at the same time.\n /// This can only be done via a Safe transaction.\n /// @param owner New owner address.\n /// @param _threshold New threshold.\n function addOwnerWithThreshold(address owner, uint256 _threshold)\n public\n authorized\n {\n // Owner address cannot be null.\n require(owner != 0 && owner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[owner] == 0, \"Address is already an owner\");\n owners[owner] = owners[SENTINEL_OWNERS];\n owners[SENTINEL_OWNERS] = owner;\n ownerCount++;\n emit AddedOwner(owner);\n // Change threshold if threshold was changed.\n if (threshold != _threshold)\n changeThreshold(_threshold);\n }\n\n /// @dev Allows to remove an owner from the Safe and update the threshold at the same time.\n /// This can only be done via a Safe transaction.\n /// @param prevOwner Owner that pointed to the owner to be removed in the linked list\n /// @param owner Owner address to be removed.\n /// @param _threshold New threshold.\n function removeOwner(address prevOwner, address owner, uint256 _threshold)\n public\n authorized\n {\n // Only allow to remove an owner, if threshold can still be reached.\n require(ownerCount - 1 >= _threshold, \"New owner count needs to be larger than new threshold\");\n // Validate owner address and check that it corresponds to owner index.\n require(owner != 0 && owner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n require(owners[prevOwner] == owner, \"Invalid prevOwner, owner pair provided\");\n owners[prevOwner] = owners[owner];\n owners[owner] = 0;\n ownerCount--;\n emit RemovedOwner(owner);\n // Change threshold if threshold was changed.\n if (threshold != _threshold)\n changeThreshold(_threshold);\n }\n\n /// @dev Allows to swap/replace an owner from the Safe with another address.\n /// This can only be done via a Safe transaction.\n /// @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n /// @param oldOwner Owner address to be replaced.\n /// @param newOwner New owner address.\n function swapOwner(address prevOwner, address oldOwner, address newOwner)\n public\n authorized\n {\n // Owner address cannot be null.\n require(newOwner != 0 && newOwner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[newOwner] == 0, \"Address is already an owner\");\n // Validate oldOwner address and check that it corresponds to owner index.\n require(oldOwner != 0 && oldOwner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n require(owners[prevOwner] == oldOwner, \"Invalid prevOwner, owner pair provided\");\n owners[newOwner] = owners[oldOwner];\n owners[prevOwner] = newOwner;\n owners[oldOwner] = 0;\n emit RemovedOwner(oldOwner);\n emit AddedOwner(newOwner);\n }\n\n /// @dev Allows to update the number of required confirmations by Safe owners.\n /// This can only be done via a Safe transaction.\n /// @param _threshold New threshold.\n function changeThreshold(uint256 _threshold)\n public\n authorized\n {\n // Validate that threshold is smaller than number of owners.\n require(_threshold <= ownerCount, \"Threshold cannot exceed owner count\");\n // There has to be at least one Safe owner.\n require(_threshold >= 1, \"Threshold needs to be greater than 0\");\n threshold = _threshold;\n emit ChangedThreshold(threshold);\n }\n\n function getThreshold()\n public\n view\n returns (uint256)\n {\n return threshold;\n }\n\n function isOwner(address owner)\n public\n view\n returns (bool)\n {\n return owners[owner] != 0;\n }\n\n /// @dev Returns array of owners.\n /// @return Array of Safe owners.\n function getOwners()\n public\n view\n returns (address[])\n {\n address[] memory array = new address[](ownerCount);\n\n // populate return array\n uint256 index = 0;\n address currentOwner = owners[SENTINEL_OWNERS];\n while(currentOwner != SENTINEL_OWNERS) {\n array[index] = currentOwner;\n currentOwner = owners[currentOwner];\n index ++;\n }\n return array;\n }\n}\n", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", "exportedSymbols": { "OwnerManager": [ - 1588 + 1652 ] }, - "id": 1589, + "id": 1653, "nodeType": "SourceUnit", "nodes": [ { - "id": 1182, + "id": 1214, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:11" + "src": "0:23:6" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", - "file": "./SelfAuthorized.sol", - "id": 1183, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", + "file": "../common/SelfAuthorized.sol", + "id": 1215, "nodeType": "ImportDirective", - "scope": 1589, - "sourceUnit": 1766, - "src": "24:30:11", + "scope": 1653, + "sourceUnit": 1736, + "src": "24:38:6", "symbolAliases": [], "unitAlias": "" }, @@ -182,42 +218,168 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1184, + "id": 1216, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1765, - "src": "265:14:11", + "referencedDeclaration": 1735, + "src": "273:14:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1765", + "typeIdentifier": "t_contract$_SelfAuthorized_$1735", "typeString": "contract SelfAuthorized" } }, - "id": 1185, + "id": 1217, "nodeType": "InheritanceSpecifier", - "src": "265:14:11" + "src": "273:14:6" } ], "contractDependencies": [ - 1765 + 1735 ], "contractKind": "contract", "documentation": "@title OwnerManager - Manages a set of owners and a threshold to perform actions.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1588, + "id": 1652, "linearizedBaseContracts": [ - 1588, - 1765 + 1652, + 1735 ], "name": "OwnerManager", "nodeType": "ContractDefinition", "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 1221, + "name": "AddedOwner", + "nodeType": "EventDefinition", + "parameters": { + "id": 1220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1219, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1221, + "src": "312:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1218, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "312:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "311:15:6" + }, + "src": "295:32:6" + }, + { + "anonymous": false, + "documentation": null, + "id": 1225, + "name": "RemovedOwner", + "nodeType": "EventDefinition", + "parameters": { + "id": 1224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1223, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "351:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1222, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "351:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "350:15:6" + }, + "src": "332:34:6" + }, + { + "anonymous": false, + "documentation": null, + "id": 1229, + "name": "ChangedThreshold", + "nodeType": "EventDefinition", + "parameters": { + "id": 1228, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1227, + "indexed": false, + "name": "threshold", + "nodeType": "VariableDeclaration", + "scope": 1229, + "src": "394:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1226, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "394:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "393:19:6" + }, + "src": "371:42:6" + }, { "constant": true, - "id": 1190, + "id": 1234, "name": "SENTINEL_OWNERS", "nodeType": "VariableDeclaration", - "scope": 1588, - "src": "287:54:11", + "scope": 1652, + "src": "419:54:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -225,10 +387,10 @@ "typeString": "address" }, "typeName": { - "id": 1186, + "id": 1230, "name": "address", "nodeType": "ElementaryTypeName", - "src": "287:7:11", + "src": "419:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -240,14 +402,14 @@ { "argumentTypes": null, "hexValue": "307831", - "id": 1188, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "337:3:11", + "src": "469:3:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -263,20 +425,20 @@ "typeString": "int_const 1" } ], - "id": 1187, + "id": 1231, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "329:7:11", + "src": "461:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1189, + "id": 1233, "isConstant": false, "isLValue": false, "isPure": true, @@ -284,7 +446,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "329:12:11", + "src": "461:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -294,11 +456,11 @@ }, { "constant": false, - "id": 1194, + "id": 1238, "name": "owners", "nodeType": "VariableDeclaration", - "scope": 1588, - "src": "348:43:11", + "scope": 1652, + "src": "480:43:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -306,28 +468,28 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 1193, + "id": 1237, "keyType": { - "id": 1191, + "id": 1235, "name": "address", "nodeType": "ElementaryTypeName", - "src": "356:7:11", + "src": "488:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "348:27:11", + "src": "480:27:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" }, "valueType": { - "id": 1192, + "id": 1236, "name": "address", "nodeType": "ElementaryTypeName", - "src": "367:7:11", + "src": "499:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -339,11 +501,11 @@ }, { "constant": false, - "id": 1196, + "id": 1240, "name": "ownerCount", "nodeType": "VariableDeclaration", - "scope": 1588, - "src": "397:18:11", + "scope": 1652, + "src": "529:18:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -351,10 +513,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1195, + "id": 1239, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "397:7:11", + "src": "529:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -365,11 +527,11 @@ }, { "constant": false, - "id": 1198, + "id": 1242, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 1588, - "src": "421:26:11", + "scope": 1652, + "src": "553:26:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -377,10 +539,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1197, + "id": 1241, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "421:7:11", + "src": "553:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -391,9 +553,9 @@ }, { "body": { - "id": 1296, + "id": 1340, "nodeType": "Block", - "src": "724:1129:11", + "src": "856:1129:6", "statements": [ { "expression": { @@ -405,19 +567,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1209, + "id": 1253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1207, + "id": 1251, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "866:9:11", + "referencedDeclaration": 1242, + "src": "998:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -428,14 +590,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1208, + "id": 1252, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "879:1:11", + "src": "1011:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -443,7 +605,7 @@ }, "value": "0" }, - "src": "866:14:11", + "src": "998:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -452,14 +614,14 @@ { "argumentTypes": null, "hexValue": "4f776e657273206861766520616c7265616479206265656e207365747570", - "id": 1210, + "id": 1254, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "882:32:11", + "src": "1014:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9a45ae898fbe2bd07a0b33b5a6c421f76198e9deb66843b8d827b0b9e4a16f86", @@ -479,21 +641,21 @@ "typeString": "literal_string \"Owners have already been setup\"" } ], - "id": 1206, + "id": 1250, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "858:7:11", + "referencedDeclaration": 4495, + "src": "990:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1211, + "id": 1255, "isConstant": false, "isLValue": false, "isPure": false, @@ -501,15 +663,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "858:57:11", + "src": "990:57:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1212, + "id": 1256, "nodeType": "ExpressionStatement", - "src": "858:57:11" + "src": "990:57:6" }, { "expression": { @@ -521,19 +683,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1217, + "id": 1261, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1214, + "id": 1258, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "1008:10:11", + "referencedDeclaration": 1247, + "src": "1140:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -545,18 +707,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1215, + "id": 1259, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1201, - "src": "1022:7:11", + "referencedDeclaration": 1245, + "src": "1154:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1216, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, @@ -564,13 +726,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1022:14:11", + "src": "1154:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1008:28:11", + "src": "1140:28:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -579,14 +741,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1218, + "id": 1262, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1038:37:11", + "src": "1170:37:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", @@ -606,21 +768,21 @@ "typeString": "literal_string \"Threshold cannot exceed owner count\"" } ], - "id": 1213, + "id": 1257, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1000:7:11", + "referencedDeclaration": 4495, + "src": "1132:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1219, + "id": 1263, "isConstant": false, "isLValue": false, "isPure": false, @@ -628,15 +790,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1000:76:11", + "src": "1132:76:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1220, + "id": 1264, "nodeType": "ExpressionStatement", - "src": "1000:76:11" + "src": "1132:76:6" }, { "expression": { @@ -648,19 +810,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1224, + "id": 1268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1222, + "id": 1266, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "1146:10:11", + "referencedDeclaration": 1247, + "src": "1278:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -671,14 +833,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1223, + "id": 1267, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1160:1:11", + "src": "1292:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -686,7 +848,7 @@ }, "value": "1" }, - "src": "1146:15:11", + "src": "1278:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -695,14 +857,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1225, + "id": 1269, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1163:38:11", + "src": "1295:38:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", @@ -722,21 +884,21 @@ "typeString": "literal_string \"Threshold needs to be greater than 0\"" } ], - "id": 1221, + "id": 1265, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1138:7:11", + "referencedDeclaration": 4495, + "src": "1270:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1226, + "id": 1270, "isConstant": false, "isLValue": false, "isPure": false, @@ -744,28 +906,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1138:64:11", + "src": "1270:64:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1227, + "id": 1271, "nodeType": "ExpressionStatement", - "src": "1138:64:11" + "src": "1270:64:6" }, { "assignments": [ - 1229 + 1273 ], "declarations": [ { "constant": false, - "id": 1229, + "id": 1273, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "1249:20:11", + "scope": 1341, + "src": "1381:20:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -773,10 +935,10 @@ "typeString": "address" }, "typeName": { - "id": 1228, + "id": 1272, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1249:7:11", + "src": "1381:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -786,41 +948,41 @@ "visibility": "internal" } ], - "id": 1231, + "id": 1275, "initialValue": { "argumentTypes": null, - "id": 1230, + "id": 1274, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "1272:15:11", + "referencedDeclaration": 1234, + "src": "1404:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1249:38:11" + "src": "1381:38:6" }, { "body": { - "id": 1279, + "id": 1323, "nodeType": "Block", - "src": "1342:388:11", + "src": "1474:388:6", "statements": [ { "assignments": [ - 1244 + 1288 ], "declarations": [ { "constant": false, - "id": 1244, + "id": 1288, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "1401:13:11", + "scope": 1341, + "src": "1533:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -828,10 +990,10 @@ "typeString": "address" }, "typeName": { - "id": 1243, + "id": 1287, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1401:7:11", + "src": "1533:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -841,31 +1003,31 @@ "visibility": "internal" } ], - "id": 1248, + "id": 1292, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1245, + "id": 1289, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1201, - "src": "1417:7:11", + "referencedDeclaration": 1245, + "src": "1549:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1247, + "id": 1291, "indexExpression": { "argumentTypes": null, - "id": 1246, + "id": 1290, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, - "src": "1425:1:11", + "referencedDeclaration": 1277, + "src": "1557:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -876,14 +1038,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1417:10:11", + "src": "1549:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1401:26:11" + "src": "1533:26:6" }, { "expression": { @@ -895,7 +1057,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1256, + "id": 1300, "isConstant": false, "isLValue": false, "isPure": false, @@ -906,19 +1068,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1252, + "id": 1296, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1250, + "id": 1294, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1244, - "src": "1449:5:11", + "referencedDeclaration": 1288, + "src": "1581:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -929,14 +1091,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1251, + "id": 1295, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1458:1:11", + "src": "1590:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -944,7 +1106,7 @@ }, "value": "0" }, - "src": "1449:10:11", + "src": "1581:10:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -958,19 +1120,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1255, + "id": 1299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1253, + "id": 1297, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1244, - "src": "1463:5:11", + "referencedDeclaration": 1288, + "src": "1595:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -980,24 +1142,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1254, + "id": 1298, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "1472:15:11", + "referencedDeclaration": 1234, + "src": "1604:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1463:24:11", + "src": "1595:24:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1449:38:11", + "src": "1581:38:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1006,14 +1168,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1257, + "id": 1301, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1489:32:11", + "src": "1621:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -1033,21 +1195,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1249, + "id": 1293, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1441:7:11", + "referencedDeclaration": 4495, + "src": "1573:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1258, + "id": 1302, "isConstant": false, "isLValue": false, "isPure": false, @@ -1055,15 +1217,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1441:81:11", + "src": "1573:81:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1259, + "id": 1303, "nodeType": "ExpressionStatement", - "src": "1441:81:11" + "src": "1573:81:6" }, { "expression": { @@ -1075,7 +1237,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1265, + "id": 1309, "isConstant": false, "isLValue": false, "isPure": false, @@ -1084,26 +1246,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1261, + "id": 1305, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "1588:6:11", + "referencedDeclaration": 1238, + "src": "1720:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1263, + "id": 1307, "indexExpression": { "argumentTypes": null, - "id": 1262, + "id": 1306, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1244, - "src": "1595:5:11", + "referencedDeclaration": 1288, + "src": "1727:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1114,7 +1276,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1588:13:11", + "src": "1720:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1125,14 +1287,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1264, + "id": 1308, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1605:1:11", + "src": "1737:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1140,7 +1302,7 @@ }, "value": "0" }, - "src": "1588:18:11", + "src": "1720:18:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1149,14 +1311,14 @@ { "argumentTypes": null, "hexValue": "4475706c6963617465206f776e657220616464726573732070726f7669646564", - "id": 1266, + "id": 1310, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1608:34:11", + "src": "1740:34:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a803fa289679098e38a7f1f6fe43056918c5ab5af07441cb8db77b949c165ca1", @@ -1176,21 +1338,21 @@ "typeString": "literal_string \"Duplicate owner address provided\"" } ], - "id": 1260, + "id": 1304, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1580:7:11", + "referencedDeclaration": 4495, + "src": "1712:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1267, + "id": 1311, "isConstant": false, "isLValue": false, "isPure": false, @@ -1198,20 +1360,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1580:63:11", + "src": "1712:63:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1268, + "id": 1312, "nodeType": "ExpressionStatement", - "src": "1580:63:11" + "src": "1712:63:6" }, { "expression": { "argumentTypes": null, - "id": 1273, + "id": 1317, "isConstant": false, "isLValue": false, "isPure": false, @@ -1220,26 +1382,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1269, + "id": 1313, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "1657:6:11", + "referencedDeclaration": 1238, + "src": "1789:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1271, + "id": 1315, "indexExpression": { "argumentTypes": null, - "id": 1270, + "id": 1314, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, - "src": "1664:12:11", + "referencedDeclaration": 1273, + "src": "1796:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1250,7 +1412,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1657:20:11", + "src": "1789:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1260,43 +1422,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1272, + "id": 1316, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1244, - "src": "1680:5:11", + "referencedDeclaration": 1288, + "src": "1812:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1657:28:11", + "src": "1789:28:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1274, + "id": 1318, "nodeType": "ExpressionStatement", - "src": "1657:28:11" + "src": "1789:28:6" }, { "expression": { "argumentTypes": null, - "id": 1277, + "id": 1321, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1275, + "id": 1319, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, - "src": "1699:12:11", + "referencedDeclaration": 1273, + "src": "1831:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1306,26 +1468,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1276, + "id": 1320, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1244, - "src": "1714:5:11", + "referencedDeclaration": 1288, + "src": "1846:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1699:20:11", + "src": "1831:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1278, + "id": 1322, "nodeType": "ExpressionStatement", - "src": "1699:20:11" + "src": "1831:20:6" } ] }, @@ -1335,19 +1497,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1239, + "id": 1283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1236, + "id": 1280, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, - "src": "1317:1:11", + "referencedDeclaration": 1277, + "src": "1449:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1359,18 +1521,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1237, + "id": 1281, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1201, - "src": "1321:7:11", + "referencedDeclaration": 1245, + "src": "1453:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1238, + "id": 1282, "isConstant": false, "isLValue": false, "isPure": false, @@ -1378,31 +1540,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1321:14:11", + "src": "1453:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1317:18:11", + "src": "1449:18:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1280, + "id": 1324, "initializationExpression": { "assignments": [ - 1233 + 1277 ], "declarations": [ { "constant": false, - "id": 1233, + "id": 1277, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "1302:9:11", + "scope": 1341, + "src": "1434:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1410,10 +1572,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1232, + "id": 1276, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1302:7:11", + "src": "1434:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1423,18 +1585,18 @@ "visibility": "internal" } ], - "id": 1235, + "id": 1279, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1234, + "id": 1278, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1314:1:11", + "src": "1446:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1443,12 +1605,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1302:13:11" + "src": "1434:13:6" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1241, + "id": 1285, "isConstant": false, "isLValue": false, "isPure": false, @@ -1456,15 +1618,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1337:3:11", + "src": "1469:3:6", "subExpression": { "argumentTypes": null, - "id": 1240, + "id": 1284, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, - "src": "1337:1:11", + "referencedDeclaration": 1277, + "src": "1469:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1475,17 +1637,17 @@ "typeString": "uint256" } }, - "id": 1242, + "id": 1286, "nodeType": "ExpressionStatement", - "src": "1337:3:11" + "src": "1469:3:6" }, "nodeType": "ForStatement", - "src": "1297:433:11" + "src": "1429:433:6" }, { "expression": { "argumentTypes": null, - "id": 1285, + "id": 1329, "isConstant": false, "isLValue": false, "isPure": false, @@ -1494,26 +1656,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1281, + "id": 1325, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "1739:6:11", + "referencedDeclaration": 1238, + "src": "1871:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1283, + "id": 1327, "indexExpression": { "argumentTypes": null, - "id": 1282, + "id": 1326, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, - "src": "1746:12:11", + "referencedDeclaration": 1273, + "src": "1878:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1524,7 +1686,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1739:20:11", + "src": "1871:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1534,43 +1696,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1284, + "id": 1328, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "1762:15:11", + "referencedDeclaration": 1234, + "src": "1894:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1739:38:11", + "src": "1871:38:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1286, + "id": 1330, "nodeType": "ExpressionStatement", - "src": "1739:38:11" + "src": "1871:38:6" }, { "expression": { "argumentTypes": null, - "id": 1290, + "id": 1334, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1287, + "id": 1331, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "1787:10:11", + "referencedDeclaration": 1240, + "src": "1919:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1582,18 +1744,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1288, + "id": 1332, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1201, - "src": "1800:7:11", + "referencedDeclaration": 1245, + "src": "1932:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1289, + "id": 1333, "isConstant": false, "isLValue": false, "isPure": false, @@ -1601,38 +1763,38 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1800:14:11", + "src": "1932:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1787:27:11", + "src": "1919:27:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1291, + "id": 1335, "nodeType": "ExpressionStatement", - "src": "1787:27:11" + "src": "1919:27:6" }, { "expression": { "argumentTypes": null, - "id": 1294, + "id": 1338, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1292, + "id": 1336, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "1824:9:11", + "referencedDeclaration": 1242, + "src": "1956:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1642,31 +1804,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1293, + "id": 1337, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "1836:10:11", + "referencedDeclaration": 1247, + "src": "1968:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1824:22:11", + "src": "1956:22:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1295, + "id": 1339, "nodeType": "ExpressionStatement", - "src": "1824:22:11" + "src": "1956:22:6" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.", - "id": 1297, + "id": 1341, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1674,16 +1836,16 @@ "name": "setupOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 1204, + "id": 1248, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1201, + "id": 1245, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "664:17:11", + "scope": 1341, + "src": "796:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1692,19 +1854,19 @@ }, "typeName": { "baseType": { - "id": 1199, + "id": 1243, "name": "address", "nodeType": "ElementaryTypeName", - "src": "664:7:11", + "src": "796:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1200, + "id": 1244, "length": null, "nodeType": "ArrayTypeName", - "src": "664:9:11", + "src": "796:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1715,11 +1877,11 @@ }, { "constant": false, - "id": 1203, + "id": 1247, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "683:18:11", + "scope": 1341, + "src": "815:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1727,10 +1889,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1202, + "id": 1246, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "683:7:11", + "src": "815:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1740,26 +1902,26 @@ "visibility": "internal" } ], - "src": "663:39:11" + "src": "795:39:6" }, "payable": false, "returnParameters": { - "id": 1205, + "id": 1249, "nodeType": "ParameterList", "parameters": [], - "src": "724:0:11" + "src": "856:0:6" }, - "scope": 1588, - "src": "643:1210:11", + "scope": 1652, + "src": "775:1210:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1351, + "id": 1399, "nodeType": "Block", - "src": "2197:491:11", + "src": "2329:523:6", "statements": [ { "expression": { @@ -1771,7 +1933,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1313, + "id": 1357, "isConstant": false, "isLValue": false, "isPure": false, @@ -1782,19 +1944,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1309, + "id": 1353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1307, + "id": 1351, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "2256:5:11", + "referencedDeclaration": 1343, + "src": "2388:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1805,14 +1967,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1308, + "id": 1352, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2265:1:11", + "src": "2397:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1820,7 +1982,7 @@ }, "value": "0" }, - "src": "2256:10:11", + "src": "2388:10:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1834,19 +1996,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1312, + "id": 1356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1310, + "id": 1354, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "2270:5:11", + "referencedDeclaration": 1343, + "src": "2402:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1856,24 +2018,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1311, + "id": 1355, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "2279:15:11", + "referencedDeclaration": 1234, + "src": "2411:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2270:24:11", + "src": "2402:24:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2256:38:11", + "src": "2388:38:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1882,14 +2044,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1314, + "id": 1358, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2296:32:11", + "src": "2428:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -1909,21 +2071,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1306, + "id": 1350, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2248:7:11", + "referencedDeclaration": 4495, + "src": "2380:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1315, + "id": 1359, "isConstant": false, "isLValue": false, "isPure": false, @@ -1931,15 +2093,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2248:81:11", + "src": "2380:81:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1316, + "id": 1360, "nodeType": "ExpressionStatement", - "src": "2248:81:11" + "src": "2380:81:6" }, { "expression": { @@ -1951,7 +2113,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1322, + "id": 1366, "isConstant": false, "isLValue": false, "isPure": false, @@ -1960,26 +2122,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1318, + "id": 1362, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "2387:6:11", + "referencedDeclaration": 1238, + "src": "2519:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1320, + "id": 1364, "indexExpression": { "argumentTypes": null, - "id": 1319, + "id": 1363, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "2394:5:11", + "referencedDeclaration": 1343, + "src": "2526:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1990,7 +2152,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2387:13:11", + "src": "2519:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2001,14 +2163,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1321, + "id": 1365, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2404:1:11", + "src": "2536:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2016,7 +2178,7 @@ }, "value": "0" }, - "src": "2387:18:11", + "src": "2519:18:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2025,14 +2187,14 @@ { "argumentTypes": null, "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1323, + "id": 1367, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2407:29:11", + "src": "2539:29:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", @@ -2052,21 +2214,21 @@ "typeString": "literal_string \"Address is already an owner\"" } ], - "id": 1317, + "id": 1361, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2379:7:11", + "referencedDeclaration": 4495, + "src": "2511:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1324, + "id": 1368, "isConstant": false, "isLValue": false, "isPure": false, @@ -2074,20 +2236,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2379:58:11", + "src": "2511:58:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1325, + "id": 1369, "nodeType": "ExpressionStatement", - "src": "2379:58:11" + "src": "2511:58:6" }, { "expression": { "argumentTypes": null, - "id": 1332, + "id": 1376, "isConstant": false, "isLValue": false, "isPure": false, @@ -2096,26 +2258,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1326, + "id": 1370, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "2447:6:11", + "referencedDeclaration": 1238, + "src": "2579:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1328, + "id": 1372, "indexExpression": { "argumentTypes": null, - "id": 1327, + "id": 1371, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "2454:5:11", + "referencedDeclaration": 1343, + "src": "2586:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2126,7 +2288,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2447:13:11", + "src": "2579:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2138,26 +2300,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1329, + "id": 1373, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "2463:6:11", + "referencedDeclaration": 1238, + "src": "2595:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1331, + "id": 1375, "indexExpression": { "argumentTypes": null, - "id": 1330, + "id": 1374, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "2470:15:11", + "referencedDeclaration": 1234, + "src": "2602:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2168,26 +2330,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2463:23:11", + "src": "2595:23:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2447:39:11", + "src": "2579:39:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1333, + "id": 1377, "nodeType": "ExpressionStatement", - "src": "2447:39:11" + "src": "2579:39:6" }, { "expression": { "argumentTypes": null, - "id": 1338, + "id": 1382, "isConstant": false, "isLValue": false, "isPure": false, @@ -2196,26 +2358,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1334, + "id": 1378, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "2496:6:11", + "referencedDeclaration": 1238, + "src": "2628:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1336, + "id": 1380, "indexExpression": { "argumentTypes": null, - "id": 1335, + "id": 1379, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "2503:15:11", + "referencedDeclaration": 1234, + "src": "2635:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2226,7 +2388,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2496:23:11", + "src": "2628:23:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2236,31 +2398,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1337, + "id": 1381, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "2522:5:11", + "referencedDeclaration": 1343, + "src": "2654:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2496:31:11", + "src": "2628:31:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1339, + "id": 1383, "nodeType": "ExpressionStatement", - "src": "2496:31:11" + "src": "2628:31:6" }, { "expression": { "argumentTypes": null, - "id": 1341, + "id": 1385, "isConstant": false, "isLValue": false, "isPure": false, @@ -2268,15 +2430,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2537:12:11", + "src": "2669:12:6", "subExpression": { "argumentTypes": null, - "id": 1340, + "id": 1384, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "2537:10:11", + "referencedDeclaration": 1240, + "src": "2669:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2287,9 +2449,63 @@ "typeString": "uint256" } }, - "id": 1342, + "id": 1386, "nodeType": "ExpressionStatement", - "src": "2537:12:11" + "src": "2669:12:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1388, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "2707:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1387, + "name": "AddedOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1221, + "src": "2696:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2696:17:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1390, + "nodeType": "EmitStatement", + "src": "2691:22:6" }, { "condition": { @@ -2298,19 +2514,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1345, + "id": 1393, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1343, + "id": 1391, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "2617:9:11", + "referencedDeclaration": 1242, + "src": "2781:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2320,39 +2536,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1344, + "id": 1392, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "2630:10:11", + "referencedDeclaration": 1345, + "src": "2794:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2617:23:11", + "src": "2781:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1350, + "id": 1398, "nodeType": "IfStatement", - "src": "2613:68:11", + "src": "2777:68:6", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1347, + "id": 1395, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "2670:10:11", + "referencedDeclaration": 1345, + "src": "2834:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2366,18 +2582,18 @@ "typeString": "uint256" } ], - "id": 1346, + "id": 1394, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "2654:15:11", + "referencedDeclaration": 1580, + "src": "2818:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 1348, + "id": 1396, "isConstant": false, "isLValue": false, "isPure": false, @@ -2385,58 +2601,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2654:27:11", + "src": "2818:27:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1349, + "id": 1397, "nodeType": "ExpressionStatement", - "src": "2654:27:11" + "src": "2818:27:6" } } ] }, "documentation": "@dev Allows to add a new owner to the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param owner New owner address.\n @param _threshold New threshold.", - "id": 1352, + "id": 1400, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1304, + "id": 1348, "modifierName": { "argumentTypes": null, - "id": 1303, + "id": 1347, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "2182:10:11", + "referencedDeclaration": 1734, + "src": "2314:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2182:10:11" + "src": "2314:10:6" } ], "name": "addOwnerWithThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1302, + "id": 1346, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1299, + "id": 1343, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1352, - "src": "2124:13:11", + "scope": 1400, + "src": "2256:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2444,10 +2660,10 @@ "typeString": "address" }, "typeName": { - "id": 1298, + "id": 1342, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2124:7:11", + "src": "2256:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2458,11 +2674,11 @@ }, { "constant": false, - "id": 1301, + "id": 1345, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1352, - "src": "2139:18:11", + "scope": 1400, + "src": "2271:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2470,10 +2686,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1300, + "id": 1344, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2139:7:11", + "src": "2271:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2483,26 +2699,26 @@ "visibility": "internal" } ], - "src": "2123:35:11" + "src": "2255:35:6" }, "payable": false, "returnParameters": { - "id": 1305, + "id": 1349, "nodeType": "ParameterList", "parameters": [], - "src": "2197:0:11" + "src": "2329:0:6" }, - "scope": 1588, - "src": "2093:595:11", + "scope": 1652, + "src": "2225:627:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1417, + "id": 1469, "nodeType": "Block", - "src": "3143:670:11", + "src": "3307:704:6", "statements": [ { "expression": { @@ -2514,7 +2730,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1368, + "id": 1416, "isConstant": false, "isLValue": false, "isPure": false, @@ -2525,19 +2741,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1366, + "id": 1414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1364, + "id": 1412, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "3238:10:11", + "referencedDeclaration": 1240, + "src": "3402:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2548,14 +2764,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1365, + "id": 1413, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3251:1:11", + "src": "3415:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -2563,7 +2779,7 @@ }, "value": "1" }, - "src": "3238:14:11", + "src": "3402:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2573,18 +2789,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 1367, + "id": 1415, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "3256:10:11", + "referencedDeclaration": 1406, + "src": "3420:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3238:28:11", + "src": "3402:28:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2593,14 +2809,14 @@ { "argumentTypes": null, "hexValue": "4e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64", - "id": 1369, + "id": 1417, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3268:55:11", + "src": "3432:55:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_839b4c4db845de24ec74ef067d85431087d6987a4c904418ee4f6ec699c02482", @@ -2620,21 +2836,21 @@ "typeString": "literal_string \"New owner count needs to be larger than new threshold\"" } ], - "id": 1363, + "id": 1411, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "3230:7:11", + "referencedDeclaration": 4495, + "src": "3394:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1370, + "id": 1418, "isConstant": false, "isLValue": false, "isPure": false, @@ -2642,15 +2858,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3230:94:11", + "src": "3394:94:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1371, + "id": 1419, "nodeType": "ExpressionStatement", - "src": "3230:94:11" + "src": "3394:94:6" }, { "expression": { @@ -2662,7 +2878,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1379, + "id": 1427, "isConstant": false, "isLValue": false, "isPure": false, @@ -2673,19 +2889,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1375, + "id": 1423, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1373, + "id": 1421, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3422:5:11", + "referencedDeclaration": 1404, + "src": "3586:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2696,14 +2912,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1374, + "id": 1422, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3431:1:11", + "src": "3595:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2711,7 +2927,7 @@ }, "value": "0" }, - "src": "3422:10:11", + "src": "3586:10:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2725,19 +2941,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1378, + "id": 1426, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1376, + "id": 1424, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3436:5:11", + "referencedDeclaration": 1404, + "src": "3600:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2747,24 +2963,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1377, + "id": 1425, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "3445:15:11", + "referencedDeclaration": 1234, + "src": "3609:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3436:24:11", + "src": "3600:24:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3422:38:11", + "src": "3586:38:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2773,14 +2989,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1380, + "id": 1428, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3462:32:11", + "src": "3626:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -2800,21 +3016,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1372, + "id": 1420, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "3414:7:11", + "referencedDeclaration": 4495, + "src": "3578:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1381, + "id": 1429, "isConstant": false, "isLValue": false, "isPure": false, @@ -2822,15 +3038,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3414:81:11", + "src": "3578:81:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1382, + "id": 1430, "nodeType": "ExpressionStatement", - "src": "3414:81:11" + "src": "3578:81:6" }, { "expression": { @@ -2842,7 +3058,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1388, + "id": 1436, "isConstant": false, "isLValue": false, "isPure": false, @@ -2851,26 +3067,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1384, + "id": 1432, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "3513:6:11", + "referencedDeclaration": 1238, + "src": "3677:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1386, + "id": 1434, "indexExpression": { "argumentTypes": null, - "id": 1385, + "id": 1433, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1354, - "src": "3520:9:11", + "referencedDeclaration": 1402, + "src": "3684:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2881,7 +3097,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3513:17:11", + "src": "3677:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2891,18 +3107,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1387, + "id": 1435, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3534:5:11", + "referencedDeclaration": 1404, + "src": "3698:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3513:26:11", + "src": "3677:26:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2911,14 +3127,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1389, + "id": 1437, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3541:40:11", + "src": "3705:40:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", @@ -2938,21 +3154,21 @@ "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" } ], - "id": 1383, + "id": 1431, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "3505:7:11", + "referencedDeclaration": 4495, + "src": "3669:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1390, + "id": 1438, "isConstant": false, "isLValue": false, "isPure": false, @@ -2960,20 +3176,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3505:77:11", + "src": "3669:77:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1391, + "id": 1439, "nodeType": "ExpressionStatement", - "src": "3505:77:11" + "src": "3669:77:6" }, { "expression": { "argumentTypes": null, - "id": 1398, + "id": 1446, "isConstant": false, "isLValue": false, "isPure": false, @@ -2982,26 +3198,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1392, + "id": 1440, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "3592:6:11", + "referencedDeclaration": 1238, + "src": "3756:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1394, + "id": 1442, "indexExpression": { "argumentTypes": null, - "id": 1393, + "id": 1441, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1354, - "src": "3599:9:11", + "referencedDeclaration": 1402, + "src": "3763:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3012,7 +3228,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3592:17:11", + "src": "3756:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3024,26 +3240,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1395, + "id": 1443, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "3612:6:11", + "referencedDeclaration": 1238, + "src": "3776:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1397, + "id": 1445, "indexExpression": { "argumentTypes": null, - "id": 1396, + "id": 1444, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3619:5:11", + "referencedDeclaration": 1404, + "src": "3783:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3054,26 +3270,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3612:13:11", + "src": "3776:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3592:33:11", + "src": "3756:33:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1399, + "id": 1447, "nodeType": "ExpressionStatement", - "src": "3592:33:11" + "src": "3756:33:6" }, { "expression": { "argumentTypes": null, - "id": 1404, + "id": 1452, "isConstant": false, "isLValue": false, "isPure": false, @@ -3082,26 +3298,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1400, + "id": 1448, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "3635:6:11", + "referencedDeclaration": 1238, + "src": "3799:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1402, + "id": 1450, "indexExpression": { "argumentTypes": null, - "id": 1401, + "id": 1449, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3642:5:11", + "referencedDeclaration": 1404, + "src": "3806:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3112,7 +3328,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3635:13:11", + "src": "3799:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3123,14 +3339,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1403, + "id": 1451, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3651:1:11", + "src": "3815:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3138,20 +3354,20 @@ }, "value": "0" }, - "src": "3635:17:11", + "src": "3799:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1405, + "id": 1453, "nodeType": "ExpressionStatement", - "src": "3635:17:11" + "src": "3799:17:6" }, { "expression": { "argumentTypes": null, - "id": 1407, + "id": 1455, "isConstant": false, "isLValue": false, "isPure": false, @@ -3159,15 +3375,15 @@ "nodeType": "UnaryOperation", "operator": "--", "prefix": false, - "src": "3662:12:11", + "src": "3826:12:6", "subExpression": { "argumentTypes": null, - "id": 1406, + "id": 1454, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "3662:10:11", + "referencedDeclaration": 1240, + "src": "3826:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3178,9 +3394,63 @@ "typeString": "uint256" } }, - "id": 1408, + "id": 1456, "nodeType": "ExpressionStatement", - "src": "3662:12:11" + "src": "3826:12:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1458, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1404, + "src": "3866:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1457, + "name": "RemovedOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1225, + "src": "3853:12:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3853:19:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1460, + "nodeType": "EmitStatement", + "src": "3848:24:6" }, { "condition": { @@ -3189,19 +3459,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1411, + "id": 1463, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1409, + "id": 1461, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "3742:9:11", + "referencedDeclaration": 1242, + "src": "3940:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3211,39 +3481,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1410, + "id": 1462, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "3755:10:11", + "referencedDeclaration": 1406, + "src": "3953:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3742:23:11", + "src": "3940:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1416, + "id": 1468, "nodeType": "IfStatement", - "src": "3738:68:11", + "src": "3936:68:6", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1413, + "id": 1465, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "3795:10:11", + "referencedDeclaration": 1406, + "src": "3993:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3257,18 +3527,18 @@ "typeString": "uint256" } ], - "id": 1412, + "id": 1464, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "3779:15:11", + "referencedDeclaration": 1580, + "src": "3977:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 1414, + "id": 1466, "isConstant": false, "isLValue": false, "isPure": false, @@ -3276,58 +3546,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3779:27:11", + "src": "3977:27:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1415, + "id": 1467, "nodeType": "ExpressionStatement", - "src": "3779:27:11" + "src": "3977:27:6" } } ] }, "documentation": "@dev Allows to remove an owner from the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param prevOwner Owner that pointed to the owner to be removed in the linked list\n @param owner Owner address to be removed.\n @param _threshold New threshold.", - "id": 1418, + "id": 1470, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1361, + "id": 1409, "modifierName": { "argumentTypes": null, - "id": 1360, + "id": 1408, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "3128:10:11", + "referencedDeclaration": 1734, + "src": "3292:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3128:10:11" + "src": "3292:10:6" } ], "name": "removeOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1359, + "id": 1407, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1354, + "id": 1402, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1418, - "src": "3051:17:11", + "scope": 1470, + "src": "3215:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3335,10 +3605,10 @@ "typeString": "address" }, "typeName": { - "id": 1353, + "id": 1401, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3051:7:11", + "src": "3215:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3349,11 +3619,11 @@ }, { "constant": false, - "id": 1356, + "id": 1404, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1418, - "src": "3070:13:11", + "scope": 1470, + "src": "3234:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3361,10 +3631,10 @@ "typeString": "address" }, "typeName": { - "id": 1355, + "id": 1403, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3070:7:11", + "src": "3234:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3375,11 +3645,11 @@ }, { "constant": false, - "id": 1358, + "id": 1406, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1418, - "src": "3085:18:11", + "scope": 1470, + "src": "3249:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3387,10 +3657,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1357, + "id": 1405, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3085:7:11", + "src": "3249:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3400,26 +3670,26 @@ "visibility": "internal" } ], - "src": "3050:54:11" + "src": "3214:54:6" }, "payable": false, "returnParameters": { - "id": 1362, + "id": 1410, "nodeType": "ParameterList", "parameters": [], - "src": "3143:0:11" + "src": "3307:0:6" }, - "scope": 1588, - "src": "3030:783:11", + "scope": 1652, + "src": "3194:817:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1489, + "id": 1549, "nodeType": "Block", - "src": "4259:639:11", + "src": "4457:711:6", "statements": [ { "expression": { @@ -3431,7 +3701,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1436, + "id": 1488, "isConstant": false, "isLValue": false, "isPure": false, @@ -3442,19 +3712,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1432, + "id": 1484, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1430, + "id": 1482, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1424, - "src": "4318:8:11", + "referencedDeclaration": 1476, + "src": "4516:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3465,14 +3735,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1431, + "id": 1483, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4330:1:11", + "src": "4528:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3480,7 +3750,7 @@ }, "value": "0" }, - "src": "4318:13:11", + "src": "4516:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3494,19 +3764,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1435, + "id": 1487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1433, + "id": 1485, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1424, - "src": "4335:8:11", + "referencedDeclaration": 1476, + "src": "4533:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3516,24 +3786,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1434, + "id": 1486, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "4347:15:11", + "referencedDeclaration": 1234, + "src": "4545:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4335:27:11", + "src": "4533:27:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4318:44:11", + "src": "4516:44:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3542,14 +3812,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1437, + "id": 1489, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4364:32:11", + "src": "4562:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -3569,21 +3839,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1429, + "id": 1481, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "4310:7:11", + "referencedDeclaration": 4495, + "src": "4508:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1438, + "id": 1490, "isConstant": false, "isLValue": false, "isPure": false, @@ -3591,15 +3861,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4310:87:11", + "src": "4508:87:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1439, + "id": 1491, "nodeType": "ExpressionStatement", - "src": "4310:87:11" + "src": "4508:87:6" }, { "expression": { @@ -3611,7 +3881,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1445, + "id": 1497, "isConstant": false, "isLValue": false, "isPure": false, @@ -3620,26 +3890,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1441, + "id": 1493, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4455:6:11", + "referencedDeclaration": 1238, + "src": "4653:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1443, + "id": 1495, "indexExpression": { "argumentTypes": null, - "id": 1442, + "id": 1494, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1424, - "src": "4462:8:11", + "referencedDeclaration": 1476, + "src": "4660:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3650,7 +3920,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4455:16:11", + "src": "4653:16:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3661,14 +3931,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1444, + "id": 1496, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4475:1:11", + "src": "4673:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3676,7 +3946,7 @@ }, "value": "0" }, - "src": "4455:21:11", + "src": "4653:21:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3685,14 +3955,14 @@ { "argumentTypes": null, "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1446, + "id": 1498, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4478:29:11", + "src": "4676:29:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", @@ -3712,21 +3982,21 @@ "typeString": "literal_string \"Address is already an owner\"" } ], - "id": 1440, + "id": 1492, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "4447:7:11", + "referencedDeclaration": 4495, + "src": "4645:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1447, + "id": 1499, "isConstant": false, "isLValue": false, "isPure": false, @@ -3734,15 +4004,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4447:61:11", + "src": "4645:61:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1448, + "id": 1500, "nodeType": "ExpressionStatement", - "src": "4447:61:11" + "src": "4645:61:6" }, { "expression": { @@ -3754,7 +4024,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1456, + "id": 1508, "isConstant": false, "isLValue": false, "isPure": false, @@ -3765,19 +4035,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1452, + "id": 1504, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1450, + "id": 1502, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1422, - "src": "4609:8:11", + "referencedDeclaration": 1474, + "src": "4807:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3788,14 +4058,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1451, + "id": 1503, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4621:1:11", + "src": "4819:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3803,7 +4073,7 @@ }, "value": "0" }, - "src": "4609:13:11", + "src": "4807:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3817,19 +4087,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1455, + "id": 1507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1453, + "id": 1505, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1422, - "src": "4626:8:11", + "referencedDeclaration": 1474, + "src": "4824:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3839,24 +4109,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1454, + "id": 1506, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "4638:15:11", + "referencedDeclaration": 1234, + "src": "4836:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4626:27:11", + "src": "4824:27:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4609:44:11", + "src": "4807:44:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3865,14 +4135,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1457, + "id": 1509, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4655:32:11", + "src": "4853:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -3892,21 +4162,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1449, + "id": 1501, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "4601:7:11", + "referencedDeclaration": 4495, + "src": "4799:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1458, + "id": 1510, "isConstant": false, "isLValue": false, "isPure": false, @@ -3914,15 +4184,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4601:87:11", + "src": "4799:87:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1459, + "id": 1511, "nodeType": "ExpressionStatement", - "src": "4601:87:11" + "src": "4799:87:6" }, { "expression": { @@ -3934,7 +4204,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1465, + "id": 1517, "isConstant": false, "isLValue": false, "isPure": false, @@ -3943,26 +4213,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1461, + "id": 1513, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4706:6:11", + "referencedDeclaration": 1238, + "src": "4904:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1463, + "id": 1515, "indexExpression": { "argumentTypes": null, - "id": 1462, + "id": 1514, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1420, - "src": "4713:9:11", + "referencedDeclaration": 1472, + "src": "4911:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3973,7 +4243,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4706:17:11", + "src": "4904:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3983,18 +4253,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1464, + "id": 1516, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1422, - "src": "4727:8:11", + "referencedDeclaration": 1474, + "src": "4925:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4706:29:11", + "src": "4904:29:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4003,14 +4273,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1466, + "id": 1518, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4737:40:11", + "src": "4935:40:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", @@ -4030,21 +4300,21 @@ "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" } ], - "id": 1460, + "id": 1512, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "4698:7:11", + "referencedDeclaration": 4495, + "src": "4896:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1467, + "id": 1519, "isConstant": false, "isLValue": false, "isPure": false, @@ -4052,20 +4322,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4698:80:11", + "src": "4896:80:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1468, + "id": 1520, "nodeType": "ExpressionStatement", - "src": "4698:80:11" + "src": "4896:80:6" }, { "expression": { "argumentTypes": null, - "id": 1475, + "id": 1527, "isConstant": false, "isLValue": false, "isPure": false, @@ -4074,26 +4344,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1469, + "id": 1521, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4788:6:11", + "referencedDeclaration": 1238, + "src": "4986:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1471, + "id": 1523, "indexExpression": { "argumentTypes": null, - "id": 1470, + "id": 1522, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1424, - "src": "4795:8:11", + "referencedDeclaration": 1476, + "src": "4993:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4104,7 +4374,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4788:16:11", + "src": "4986:16:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4116,26 +4386,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1472, + "id": 1524, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4807:6:11", + "referencedDeclaration": 1238, + "src": "5005:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1474, + "id": 1526, "indexExpression": { "argumentTypes": null, - "id": 1473, + "id": 1525, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1422, - "src": "4814:8:11", + "referencedDeclaration": 1474, + "src": "5012:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4146,26 +4416,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4807:16:11", + "src": "5005:16:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4788:35:11", + "src": "4986:35:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1476, + "id": 1528, "nodeType": "ExpressionStatement", - "src": "4788:35:11" + "src": "4986:35:6" }, { "expression": { "argumentTypes": null, - "id": 1481, + "id": 1533, "isConstant": false, "isLValue": false, "isPure": false, @@ -4174,26 +4444,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1477, + "id": 1529, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4833:6:11", + "referencedDeclaration": 1238, + "src": "5031:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1479, + "id": 1531, "indexExpression": { "argumentTypes": null, - "id": 1478, + "id": 1530, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1420, - "src": "4840:9:11", + "referencedDeclaration": 1472, + "src": "5038:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4204,7 +4474,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4833:17:11", + "src": "5031:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4214,31 +4484,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1480, + "id": 1532, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1424, - "src": "4853:8:11", + "referencedDeclaration": 1476, + "src": "5051:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4833:28:11", + "src": "5031:28:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1482, + "id": 1534, "nodeType": "ExpressionStatement", - "src": "4833:28:11" + "src": "5031:28:6" }, { "expression": { "argumentTypes": null, - "id": 1487, + "id": 1539, "isConstant": false, "isLValue": false, "isPure": false, @@ -4247,26 +4517,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1483, + "id": 1535, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4871:6:11", + "referencedDeclaration": 1238, + "src": "5069:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1485, + "id": 1537, "indexExpression": { "argumentTypes": null, - "id": 1484, + "id": 1536, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1422, - "src": "4878:8:11", + "referencedDeclaration": 1474, + "src": "5076:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4277,7 +4547,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4871:16:11", + "src": "5069:16:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4288,14 +4558,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1486, + "id": 1538, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4890:1:11", + "src": "5088:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4303,57 +4573,165 @@ }, "value": "0" }, - "src": "4871:20:11", + "src": "5069:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1488, + "id": 1540, "nodeType": "ExpressionStatement", - "src": "4871:20:11" + "src": "5069:20:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1542, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1474, + "src": "5117:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1541, + "name": "RemovedOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1225, + "src": "5104:12:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5104:22:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1544, + "nodeType": "EmitStatement", + "src": "5099:27:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1546, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1476, + "src": "5152:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1545, + "name": "AddedOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1221, + "src": "5141:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5141:20:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1548, + "nodeType": "EmitStatement", + "src": "5136:25:6" } ] }, "documentation": "@dev Allows to swap/replace an owner from the Safe with another address.\n This can only be done via a Safe transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.", - "id": 1490, + "id": 1550, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1427, + "id": 1479, "modifierName": { "argumentTypes": null, - "id": 1426, + "id": 1478, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "4244:10:11", + "referencedDeclaration": 1734, + "src": "4442:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4244:10:11" + "src": "4442:10:6" } ], "name": "swapOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1425, + "id": 1477, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1420, + "id": 1472, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1490, - "src": "4166:17:11", + "scope": 1550, + "src": "4364:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4361,10 +4739,10 @@ "typeString": "address" }, "typeName": { - "id": 1419, + "id": 1471, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4166:7:11", + "src": "4364:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4375,11 +4753,11 @@ }, { "constant": false, - "id": 1422, + "id": 1474, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 1490, - "src": "4185:16:11", + "scope": 1550, + "src": "4383:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4387,10 +4765,10 @@ "typeString": "address" }, "typeName": { - "id": 1421, + "id": 1473, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4185:7:11", + "src": "4383:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4401,11 +4779,11 @@ }, { "constant": false, - "id": 1424, + "id": 1476, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 1490, - "src": "4203:16:11", + "scope": 1550, + "src": "4401:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4413,10 +4791,10 @@ "typeString": "address" }, "typeName": { - "id": 1423, + "id": 1475, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4203:7:11", + "src": "4401:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4426,26 +4804,26 @@ "visibility": "internal" } ], - "src": "4165:55:11" + "src": "4363:55:6" }, "payable": false, "returnParameters": { - "id": 1428, + "id": 1480, "nodeType": "ParameterList", "parameters": [], - "src": "4259:0:11" + "src": "4457:0:6" }, - "scope": 1588, - "src": "4147:751:11", + "scope": 1652, + "src": "4345:823:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1515, + "id": 1579, "nodeType": "Block", - "src": "5170:316:11", + "src": "5440:358:6", "statements": [ { "expression": { @@ -4457,19 +4835,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1500, + "id": 1560, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1498, + "id": 1558, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1492, - "src": "5257:10:11", + "referencedDeclaration": 1552, + "src": "5527:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4479,18 +4857,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1499, + "id": 1559, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "5271:10:11", + "referencedDeclaration": 1240, + "src": "5541:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5257:24:11", + "src": "5527:24:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4499,14 +4877,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1501, + "id": 1561, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5283:37:11", + "src": "5553:37:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", @@ -4526,21 +4904,21 @@ "typeString": "literal_string \"Threshold cannot exceed owner count\"" } ], - "id": 1497, + "id": 1557, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "5249:7:11", + "referencedDeclaration": 4495, + "src": "5519:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1502, + "id": 1562, "isConstant": false, "isLValue": false, "isPure": false, @@ -4548,15 +4926,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5249:72:11", + "src": "5519:72:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1503, + "id": 1563, "nodeType": "ExpressionStatement", - "src": "5249:72:11" + "src": "5519:72:6" }, { "expression": { @@ -4568,19 +4946,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1507, + "id": 1567, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1505, + "id": 1565, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1492, - "src": "5391:10:11", + "referencedDeclaration": 1552, + "src": "5661:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4591,14 +4969,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1506, + "id": 1566, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5405:1:11", + "src": "5675:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -4606,7 +4984,7 @@ }, "value": "1" }, - "src": "5391:15:11", + "src": "5661:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4615,14 +4993,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1508, + "id": 1568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5408:38:11", + "src": "5678:38:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", @@ -4642,21 +5020,21 @@ "typeString": "literal_string \"Threshold needs to be greater than 0\"" } ], - "id": 1504, + "id": 1564, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "5383:7:11", + "referencedDeclaration": 4495, + "src": "5653:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1509, + "id": 1569, "isConstant": false, "isLValue": false, "isPure": false, @@ -4664,32 +5042,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5383:64:11", + "src": "5653:64:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1510, + "id": 1570, "nodeType": "ExpressionStatement", - "src": "5383:64:11" + "src": "5653:64:6" }, { "expression": { "argumentTypes": null, - "id": 1513, + "id": 1573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1511, + "id": 1571, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "5457:9:11", + "referencedDeclaration": 1242, + "src": "5727:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4699,416 +5077,39 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1512, + "id": 1572, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1492, - "src": "5469:10:11", + "referencedDeclaration": 1552, + "src": "5739:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5457:22:11", + "src": "5727:22:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1514, + "id": 1574, "nodeType": "ExpressionStatement", - "src": "5457:22:11" - } - ] - }, - "documentation": "@dev Allows to update the number of required confirmations by Safe owners.\n This can only be done via a Safe transaction.\n @param _threshold New threshold.", - "id": 1516, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1495, - "modifierName": { - "argumentTypes": null, - "id": 1494, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "5155:10:11", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } + "src": "5727:22:6" }, - "nodeType": "ModifierInvocation", - "src": "5155:10:11" - } - ], - "name": "changeThreshold", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1493, - "nodeType": "ParameterList", - "parameters": [ { - "constant": false, - "id": 1492, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1516, - "src": "5112:18:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1491, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5112:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5111:20:11" - }, - "payable": false, - "returnParameters": { - "id": 1496, - "nodeType": "ParameterList", - "parameters": [], - "src": "5170:0:11" - }, - "scope": 1588, - "src": "5087:399:11", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1523, - "nodeType": "Block", - "src": "5574:33:11", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1521, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "5591:9:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1520, - "id": 1522, - "nodeType": "Return", - "src": "5584:16:11" - } - ] - }, - "documentation": null, - "id": 1524, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getThreshold", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1517, - "nodeType": "ParameterList", - "parameters": [], - "src": "5513:2:11" - }, - "payable": false, - "returnParameters": { - "id": 1520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1519, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1524, - "src": "5561:7:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1518, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5561:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5560:9:11" - }, - "scope": 1588, - "src": "5492:115:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1537, - "nodeType": "Block", - "src": "5700:42:11", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1531, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "5717:6:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1533, - "indexExpression": { - "argumentTypes": null, - "id": 1532, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "5724:5:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5717:13:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5734:1:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5717:18:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1530, - "id": 1536, - "nodeType": "Return", - "src": "5710:25:11" - } - ] - }, - "documentation": null, - "id": 1538, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1527, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1526, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1538, - "src": "5630:13:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5630:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5629:15:11" - }, - "payable": false, - "returnParameters": { - "id": 1530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1529, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1538, - "src": "5690:4:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1528, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5690:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5689:6:11" - }, - "scope": 1588, - "src": "5613:129:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1586, - "nodeType": "Block", - "src": "5905:377:11", - "statements": [ - { - "assignments": [ - 1547 - ], - "declarations": [ - { - "constant": false, - "id": 1547, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 1587, - "src": "5915:22:11", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1545, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5915:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1546, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5915:9:11", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1553, - "initialValue": { + "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1551, - "name": "ownerCount", + "id": 1576, + "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "5954:10:11", + "referencedDeclaration": 1242, + "src": "5781:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5122,39 +5123,18 @@ "typeString": "uint256" } ], - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "5940:13:11", + "id": 1575, + "name": "ChangedThreshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1229, + "src": "5764:16:6", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 1548, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5944:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1549, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5944:9:11", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" } }, - "id": 1552, + "id": 1577, "isConstant": false, "isLValue": false, "isPure": false, @@ -5162,27 +5142,479 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5940:25:11", + "src": "5764:27:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1578, + "nodeType": "EmitStatement", + "src": "5759:32:6" + } + ] + }, + "documentation": "@dev Allows to update the number of required confirmations by Safe owners.\n This can only be done via a Safe transaction.\n @param _threshold New threshold.", + "id": 1580, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1555, + "modifierName": { + "argumentTypes": null, + "id": 1554, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "5425:10:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5425:10:6" + } + ], + "name": "changeThreshold", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1552, + "name": "_threshold", + "nodeType": "VariableDeclaration", + "scope": 1580, + "src": "5382:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5382:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5381:20:6" + }, + "payable": false, + "returnParameters": { + "id": 1556, + "nodeType": "ParameterList", + "parameters": [], + "src": "5440:0:6" + }, + "scope": 1652, + "src": "5357:441:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1587, + "nodeType": "Block", + "src": "5886:33:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1585, + "name": "threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1242, + "src": "5903:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1584, + "id": 1586, + "nodeType": "Return", + "src": "5896:16:6" + } + ] + }, + "documentation": null, + "id": 1588, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getThreshold", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1581, + "nodeType": "ParameterList", + "parameters": [], + "src": "5825:2:6" + }, + "payable": false, + "returnParameters": { + "id": 1584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1583, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1588, + "src": "5873:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5873:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5872:9:6" + }, + "scope": 1652, + "src": "5804:115:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1601, + "nodeType": "Block", + "src": "6012:42:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1595, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "6029:6:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1597, + "indexExpression": { + "argumentTypes": null, + "id": 1596, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1590, + "src": "6036:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6029:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6046:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6029:18:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1594, + "id": 1600, + "nodeType": "Return", + "src": "6022:25:6" + } + ] + }, + "documentation": null, + "id": 1602, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1590, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1602, + "src": "5942:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1589, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5942:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5941:15:6" + }, + "payable": false, + "returnParameters": { + "id": 1594, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1593, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1602, + "src": "6002:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1592, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6002:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6001:6:6" + }, + "scope": 1652, + "src": "5925:129:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1650, + "nodeType": "Block", + "src": "6217:377:6", + "statements": [ + { + "assignments": [ + 1611 + ], + "declarations": [ + { + "constant": false, + "id": 1611, + "name": "array", + "nodeType": "VariableDeclaration", + "scope": 1651, + "src": "6227:22:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1609, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6227:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1610, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6227:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1617, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1615, + "name": "ownerCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "6266:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6252:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 1612, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6256:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1613, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6256:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 1616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6252:25:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5915:50:11" + "src": "6227:50:6" }, { "assignments": [ - 1555 + 1619 ], "declarations": [ { "constant": false, - "id": 1555, + "id": 1619, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1587, - "src": "6009:13:11", + "scope": 1651, + "src": "6321:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5190,10 +5622,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1554, + "id": 1618, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6009:7:11", + "src": "6321:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5203,18 +5635,18 @@ "visibility": "internal" } ], - "id": 1557, + "id": 1621, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1556, + "id": 1620, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6025:1:11", + "src": "6337:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5223,20 +5655,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6009:17:11" + "src": "6321:17:6" }, { "assignments": [ - 1559 + 1623 ], "declarations": [ { "constant": false, - "id": 1559, + "id": 1623, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1587, - "src": "6036:20:11", + "scope": 1651, + "src": "6348:20:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5244,10 +5676,10 @@ "typeString": "address" }, "typeName": { - "id": 1558, + "id": 1622, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6036:7:11", + "src": "6348:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5257,31 +5689,31 @@ "visibility": "internal" } ], - "id": 1563, + "id": 1627, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1560, + "id": 1624, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "6059:6:11", + "referencedDeclaration": 1238, + "src": "6371:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1562, + "id": 1626, "indexExpression": { "argumentTypes": null, - "id": 1561, + "id": 1625, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "6066:15:11", + "referencedDeclaration": 1234, + "src": "6378:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5292,25 +5724,25 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6059:23:11", + "src": "6371:23:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "6036:46:11" + "src": "6348:46:6" }, { "body": { - "id": 1582, + "id": 1646, "nodeType": "Block", - "src": "6131:123:11", + "src": "6443:123:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 1571, + "id": 1635, "isConstant": false, "isLValue": false, "isPure": false, @@ -5319,26 +5751,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1567, + "id": 1631, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1547, - "src": "6145:5:11", + "referencedDeclaration": 1611, + "src": "6457:5:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1569, + "id": 1633, "indexExpression": { "argumentTypes": null, - "id": 1568, + "id": 1632, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "6151:5:11", + "referencedDeclaration": 1619, + "src": "6463:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5349,7 +5781,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6145:12:11", + "src": "6457:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5359,43 +5791,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1570, + "id": 1634, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1559, - "src": "6160:12:11", + "referencedDeclaration": 1623, + "src": "6472:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6145:27:11", + "src": "6457:27:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1572, + "id": 1636, "nodeType": "ExpressionStatement", - "src": "6145:27:11" + "src": "6457:27:6" }, { "expression": { "argumentTypes": null, - "id": 1577, + "id": 1641, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1573, + "id": 1637, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1559, - "src": "6186:12:11", + "referencedDeclaration": 1623, + "src": "6498:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5407,26 +5839,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1574, + "id": 1638, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "6201:6:11", + "referencedDeclaration": 1238, + "src": "6513:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1576, + "id": 1640, "indexExpression": { "argumentTypes": null, - "id": 1575, + "id": 1639, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1559, - "src": "6208:12:11", + "referencedDeclaration": 1623, + "src": "6520:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5437,26 +5869,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6201:20:11", + "src": "6513:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6186:35:11", + "src": "6498:35:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1578, + "id": 1642, "nodeType": "ExpressionStatement", - "src": "6186:35:11" + "src": "6498:35:6" }, { "expression": { "argumentTypes": null, - "id": 1580, + "id": 1644, "isConstant": false, "isLValue": false, "isPure": false, @@ -5464,15 +5896,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6235:8:11", + "src": "6547:8:6", "subExpression": { "argumentTypes": null, - "id": 1579, + "id": 1643, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "6235:5:11", + "referencedDeclaration": 1619, + "src": "6547:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5483,9 +5915,9 @@ "typeString": "uint256" } }, - "id": 1581, + "id": 1645, "nodeType": "ExpressionStatement", - "src": "6235:8:11" + "src": "6547:8:6" } ] }, @@ -5495,19 +5927,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1566, + "id": 1630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1564, + "id": 1628, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1559, - "src": "6098:12:11", + "referencedDeclaration": 1623, + "src": "6410:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5517,50 +5949,50 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1565, + "id": 1629, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "6114:15:11", + "referencedDeclaration": 1234, + "src": "6426:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6098:31:11", + "src": "6410:31:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1583, + "id": 1647, "nodeType": "WhileStatement", - "src": "6092:162:11" + "src": "6404:162:6" }, { "expression": { "argumentTypes": null, - "id": 1584, + "id": 1648, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1547, - "src": "6270:5:11", + "referencedDeclaration": 1611, + "src": "6582:5:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 1543, - "id": 1585, + "functionReturnParameters": 1607, + "id": 1649, "nodeType": "Return", - "src": "6263:12:11" + "src": "6575:12:6" } ] }, "documentation": "@dev Returns array of owners.\n @return Array of Safe owners.", - "id": 1587, + "id": 1651, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5568,23 +6000,23 @@ "name": "getOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 1539, + "id": 1603, "nodeType": "ParameterList", "parameters": [], - "src": "5842:2:11" + "src": "6154:2:6" }, "payable": false, "returnParameters": { - "id": 1543, + "id": 1607, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1542, + "id": 1606, "name": "", "nodeType": "VariableDeclaration", - "scope": 1587, - "src": "5890:9:11", + "scope": 1651, + "src": "6202:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5593,19 +6025,19 @@ }, "typeName": { "baseType": { - "id": 1540, + "id": 1604, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5890:7:11", + "src": "6202:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1541, + "id": 1605, "length": null, "nodeType": "ArrayTypeName", - "src": "5890:9:11", + "src": "6202:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -5615,49 +6047,49 @@ "visibility": "internal" } ], - "src": "5889:11:11" + "src": "6201:11:6" }, - "scope": 1588, - "src": "5824:458:11", + "scope": 1652, + "src": "6136:458:6", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1589, - "src": "240:6044:11" + "scope": 1653, + "src": "248:6348:6" } ], - "src": "0:6285:11" + "src": "0:6597:6" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", "exportedSymbols": { "OwnerManager": [ - 1588 + 1652 ] }, - "id": 1589, + "id": 1653, "nodeType": "SourceUnit", "nodes": [ { - "id": 1182, + "id": 1214, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:11" + "src": "0:23:6" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", - "file": "./SelfAuthorized.sol", - "id": 1183, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", + "file": "../common/SelfAuthorized.sol", + "id": 1215, "nodeType": "ImportDirective", - "scope": 1589, - "sourceUnit": 1766, - "src": "24:30:11", + "scope": 1653, + "sourceUnit": 1736, + "src": "24:38:6", "symbolAliases": [], "unitAlias": "" }, @@ -5667,42 +6099,168 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1184, + "id": 1216, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1765, - "src": "265:14:11", + "referencedDeclaration": 1735, + "src": "273:14:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1765", + "typeIdentifier": "t_contract$_SelfAuthorized_$1735", "typeString": "contract SelfAuthorized" } }, - "id": 1185, + "id": 1217, "nodeType": "InheritanceSpecifier", - "src": "265:14:11" + "src": "273:14:6" } ], "contractDependencies": [ - 1765 + 1735 ], "contractKind": "contract", "documentation": "@title OwnerManager - Manages a set of owners and a threshold to perform actions.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1588, + "id": 1652, "linearizedBaseContracts": [ - 1588, - 1765 + 1652, + 1735 ], "name": "OwnerManager", "nodeType": "ContractDefinition", "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 1221, + "name": "AddedOwner", + "nodeType": "EventDefinition", + "parameters": { + "id": 1220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1219, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1221, + "src": "312:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1218, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "312:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "311:15:6" + }, + "src": "295:32:6" + }, + { + "anonymous": false, + "documentation": null, + "id": 1225, + "name": "RemovedOwner", + "nodeType": "EventDefinition", + "parameters": { + "id": 1224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1223, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "351:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1222, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "351:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "350:15:6" + }, + "src": "332:34:6" + }, + { + "anonymous": false, + "documentation": null, + "id": 1229, + "name": "ChangedThreshold", + "nodeType": "EventDefinition", + "parameters": { + "id": 1228, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1227, + "indexed": false, + "name": "threshold", + "nodeType": "VariableDeclaration", + "scope": 1229, + "src": "394:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1226, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "394:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "393:19:6" + }, + "src": "371:42:6" + }, { "constant": true, - "id": 1190, + "id": 1234, "name": "SENTINEL_OWNERS", "nodeType": "VariableDeclaration", - "scope": 1588, - "src": "287:54:11", + "scope": 1652, + "src": "419:54:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5710,10 +6268,10 @@ "typeString": "address" }, "typeName": { - "id": 1186, + "id": 1230, "name": "address", "nodeType": "ElementaryTypeName", - "src": "287:7:11", + "src": "419:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5725,14 +6283,14 @@ { "argumentTypes": null, "hexValue": "307831", - "id": 1188, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "337:3:11", + "src": "469:3:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5748,20 +6306,20 @@ "typeString": "int_const 1" } ], - "id": 1187, + "id": 1231, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "329:7:11", + "src": "461:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1189, + "id": 1233, "isConstant": false, "isLValue": false, "isPure": true, @@ -5769,7 +6327,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "329:12:11", + "src": "461:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5779,11 +6337,11 @@ }, { "constant": false, - "id": 1194, + "id": 1238, "name": "owners", "nodeType": "VariableDeclaration", - "scope": 1588, - "src": "348:43:11", + "scope": 1652, + "src": "480:43:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5791,28 +6349,28 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 1193, + "id": 1237, "keyType": { - "id": 1191, + "id": 1235, "name": "address", "nodeType": "ElementaryTypeName", - "src": "356:7:11", + "src": "488:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "348:27:11", + "src": "480:27:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" }, "valueType": { - "id": 1192, + "id": 1236, "name": "address", "nodeType": "ElementaryTypeName", - "src": "367:7:11", + "src": "499:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5824,11 +6382,11 @@ }, { "constant": false, - "id": 1196, + "id": 1240, "name": "ownerCount", "nodeType": "VariableDeclaration", - "scope": 1588, - "src": "397:18:11", + "scope": 1652, + "src": "529:18:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5836,10 +6394,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1195, + "id": 1239, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "397:7:11", + "src": "529:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5850,11 +6408,11 @@ }, { "constant": false, - "id": 1198, + "id": 1242, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 1588, - "src": "421:26:11", + "scope": 1652, + "src": "553:26:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5862,10 +6420,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1197, + "id": 1241, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "421:7:11", + "src": "553:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5876,9 +6434,9 @@ }, { "body": { - "id": 1296, + "id": 1340, "nodeType": "Block", - "src": "724:1129:11", + "src": "856:1129:6", "statements": [ { "expression": { @@ -5890,19 +6448,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1209, + "id": 1253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1207, + "id": 1251, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "866:9:11", + "referencedDeclaration": 1242, + "src": "998:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5913,14 +6471,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1208, + "id": 1252, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "879:1:11", + "src": "1011:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5928,7 +6486,7 @@ }, "value": "0" }, - "src": "866:14:11", + "src": "998:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5937,14 +6495,14 @@ { "argumentTypes": null, "hexValue": "4f776e657273206861766520616c7265616479206265656e207365747570", - "id": 1210, + "id": 1254, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "882:32:11", + "src": "1014:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9a45ae898fbe2bd07a0b33b5a6c421f76198e9deb66843b8d827b0b9e4a16f86", @@ -5964,21 +6522,21 @@ "typeString": "literal_string \"Owners have already been setup\"" } ], - "id": 1206, + "id": 1250, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "858:7:11", + "referencedDeclaration": 4495, + "src": "990:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1211, + "id": 1255, "isConstant": false, "isLValue": false, "isPure": false, @@ -5986,15 +6544,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "858:57:11", + "src": "990:57:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1212, + "id": 1256, "nodeType": "ExpressionStatement", - "src": "858:57:11" + "src": "990:57:6" }, { "expression": { @@ -6006,19 +6564,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1217, + "id": 1261, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1214, + "id": 1258, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "1008:10:11", + "referencedDeclaration": 1247, + "src": "1140:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6030,18 +6588,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1215, + "id": 1259, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1201, - "src": "1022:7:11", + "referencedDeclaration": 1245, + "src": "1154:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1216, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, @@ -6049,13 +6607,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1022:14:11", + "src": "1154:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1008:28:11", + "src": "1140:28:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6064,14 +6622,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1218, + "id": 1262, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1038:37:11", + "src": "1170:37:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", @@ -6091,21 +6649,21 @@ "typeString": "literal_string \"Threshold cannot exceed owner count\"" } ], - "id": 1213, + "id": 1257, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1000:7:11", + "referencedDeclaration": 4495, + "src": "1132:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1219, + "id": 1263, "isConstant": false, "isLValue": false, "isPure": false, @@ -6113,15 +6671,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1000:76:11", + "src": "1132:76:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1220, + "id": 1264, "nodeType": "ExpressionStatement", - "src": "1000:76:11" + "src": "1132:76:6" }, { "expression": { @@ -6133,19 +6691,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1224, + "id": 1268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1222, + "id": 1266, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "1146:10:11", + "referencedDeclaration": 1247, + "src": "1278:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6156,14 +6714,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1223, + "id": 1267, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1160:1:11", + "src": "1292:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6171,7 +6729,7 @@ }, "value": "1" }, - "src": "1146:15:11", + "src": "1278:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6180,14 +6738,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1225, + "id": 1269, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1163:38:11", + "src": "1295:38:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", @@ -6207,21 +6765,21 @@ "typeString": "literal_string \"Threshold needs to be greater than 0\"" } ], - "id": 1221, + "id": 1265, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1138:7:11", + "referencedDeclaration": 4495, + "src": "1270:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1226, + "id": 1270, "isConstant": false, "isLValue": false, "isPure": false, @@ -6229,28 +6787,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1138:64:11", + "src": "1270:64:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1227, + "id": 1271, "nodeType": "ExpressionStatement", - "src": "1138:64:11" + "src": "1270:64:6" }, { "assignments": [ - 1229 + 1273 ], "declarations": [ { "constant": false, - "id": 1229, + "id": 1273, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "1249:20:11", + "scope": 1341, + "src": "1381:20:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6258,10 +6816,10 @@ "typeString": "address" }, "typeName": { - "id": 1228, + "id": 1272, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1249:7:11", + "src": "1381:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6271,41 +6829,41 @@ "visibility": "internal" } ], - "id": 1231, + "id": 1275, "initialValue": { "argumentTypes": null, - "id": 1230, + "id": 1274, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "1272:15:11", + "referencedDeclaration": 1234, + "src": "1404:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1249:38:11" + "src": "1381:38:6" }, { "body": { - "id": 1279, + "id": 1323, "nodeType": "Block", - "src": "1342:388:11", + "src": "1474:388:6", "statements": [ { "assignments": [ - 1244 + 1288 ], "declarations": [ { "constant": false, - "id": 1244, + "id": 1288, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "1401:13:11", + "scope": 1341, + "src": "1533:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6313,10 +6871,10 @@ "typeString": "address" }, "typeName": { - "id": 1243, + "id": 1287, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1401:7:11", + "src": "1533:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6326,31 +6884,31 @@ "visibility": "internal" } ], - "id": 1248, + "id": 1292, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1245, + "id": 1289, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1201, - "src": "1417:7:11", + "referencedDeclaration": 1245, + "src": "1549:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1247, + "id": 1291, "indexExpression": { "argumentTypes": null, - "id": 1246, + "id": 1290, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, - "src": "1425:1:11", + "referencedDeclaration": 1277, + "src": "1557:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6361,14 +6919,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1417:10:11", + "src": "1549:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1401:26:11" + "src": "1533:26:6" }, { "expression": { @@ -6380,7 +6938,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1256, + "id": 1300, "isConstant": false, "isLValue": false, "isPure": false, @@ -6391,19 +6949,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1252, + "id": 1296, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1250, + "id": 1294, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1244, - "src": "1449:5:11", + "referencedDeclaration": 1288, + "src": "1581:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6414,14 +6972,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1251, + "id": 1295, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1458:1:11", + "src": "1590:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6429,7 +6987,7 @@ }, "value": "0" }, - "src": "1449:10:11", + "src": "1581:10:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6443,19 +7001,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1255, + "id": 1299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1253, + "id": 1297, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1244, - "src": "1463:5:11", + "referencedDeclaration": 1288, + "src": "1595:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6465,24 +7023,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1254, + "id": 1298, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "1472:15:11", + "referencedDeclaration": 1234, + "src": "1604:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1463:24:11", + "src": "1595:24:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1449:38:11", + "src": "1581:38:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6491,14 +7049,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1257, + "id": 1301, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1489:32:11", + "src": "1621:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -6518,21 +7076,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1249, + "id": 1293, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1441:7:11", + "referencedDeclaration": 4495, + "src": "1573:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1258, + "id": 1302, "isConstant": false, "isLValue": false, "isPure": false, @@ -6540,15 +7098,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1441:81:11", + "src": "1573:81:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1259, + "id": 1303, "nodeType": "ExpressionStatement", - "src": "1441:81:11" + "src": "1573:81:6" }, { "expression": { @@ -6560,7 +7118,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1265, + "id": 1309, "isConstant": false, "isLValue": false, "isPure": false, @@ -6569,26 +7127,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1261, + "id": 1305, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "1588:6:11", + "referencedDeclaration": 1238, + "src": "1720:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1263, + "id": 1307, "indexExpression": { "argumentTypes": null, - "id": 1262, + "id": 1306, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1244, - "src": "1595:5:11", + "referencedDeclaration": 1288, + "src": "1727:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6599,7 +7157,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1588:13:11", + "src": "1720:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6610,14 +7168,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1264, + "id": 1308, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1605:1:11", + "src": "1737:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6625,7 +7183,7 @@ }, "value": "0" }, - "src": "1588:18:11", + "src": "1720:18:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6634,14 +7192,14 @@ { "argumentTypes": null, "hexValue": "4475706c6963617465206f776e657220616464726573732070726f7669646564", - "id": 1266, + "id": 1310, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1608:34:11", + "src": "1740:34:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a803fa289679098e38a7f1f6fe43056918c5ab5af07441cb8db77b949c165ca1", @@ -6661,21 +7219,21 @@ "typeString": "literal_string \"Duplicate owner address provided\"" } ], - "id": 1260, + "id": 1304, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1580:7:11", + "referencedDeclaration": 4495, + "src": "1712:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1267, + "id": 1311, "isConstant": false, "isLValue": false, "isPure": false, @@ -6683,20 +7241,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1580:63:11", + "src": "1712:63:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1268, + "id": 1312, "nodeType": "ExpressionStatement", - "src": "1580:63:11" + "src": "1712:63:6" }, { "expression": { "argumentTypes": null, - "id": 1273, + "id": 1317, "isConstant": false, "isLValue": false, "isPure": false, @@ -6705,26 +7263,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1269, + "id": 1313, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "1657:6:11", + "referencedDeclaration": 1238, + "src": "1789:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1271, + "id": 1315, "indexExpression": { "argumentTypes": null, - "id": 1270, + "id": 1314, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, - "src": "1664:12:11", + "referencedDeclaration": 1273, + "src": "1796:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6735,7 +7293,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1657:20:11", + "src": "1789:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6745,43 +7303,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1272, + "id": 1316, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1244, - "src": "1680:5:11", + "referencedDeclaration": 1288, + "src": "1812:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1657:28:11", + "src": "1789:28:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1274, + "id": 1318, "nodeType": "ExpressionStatement", - "src": "1657:28:11" + "src": "1789:28:6" }, { "expression": { "argumentTypes": null, - "id": 1277, + "id": 1321, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1275, + "id": 1319, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, - "src": "1699:12:11", + "referencedDeclaration": 1273, + "src": "1831:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6791,26 +7349,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1276, + "id": 1320, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1244, - "src": "1714:5:11", + "referencedDeclaration": 1288, + "src": "1846:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1699:20:11", + "src": "1831:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1278, + "id": 1322, "nodeType": "ExpressionStatement", - "src": "1699:20:11" + "src": "1831:20:6" } ] }, @@ -6820,19 +7378,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1239, + "id": 1283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1236, + "id": 1280, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, - "src": "1317:1:11", + "referencedDeclaration": 1277, + "src": "1449:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6844,18 +7402,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1237, + "id": 1281, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1201, - "src": "1321:7:11", + "referencedDeclaration": 1245, + "src": "1453:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1238, + "id": 1282, "isConstant": false, "isLValue": false, "isPure": false, @@ -6863,31 +7421,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1321:14:11", + "src": "1453:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1317:18:11", + "src": "1449:18:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1280, + "id": 1324, "initializationExpression": { "assignments": [ - 1233 + 1277 ], "declarations": [ { "constant": false, - "id": 1233, + "id": 1277, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "1302:9:11", + "scope": 1341, + "src": "1434:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6895,10 +7453,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1232, + "id": 1276, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1302:7:11", + "src": "1434:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6908,18 +7466,18 @@ "visibility": "internal" } ], - "id": 1235, + "id": 1279, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1234, + "id": 1278, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1314:1:11", + "src": "1446:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6928,12 +7486,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1302:13:11" + "src": "1434:13:6" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1241, + "id": 1285, "isConstant": false, "isLValue": false, "isPure": false, @@ -6941,15 +7499,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1337:3:11", + "src": "1469:3:6", "subExpression": { "argumentTypes": null, - "id": 1240, + "id": 1284, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, - "src": "1337:1:11", + "referencedDeclaration": 1277, + "src": "1469:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6960,17 +7518,17 @@ "typeString": "uint256" } }, - "id": 1242, + "id": 1286, "nodeType": "ExpressionStatement", - "src": "1337:3:11" + "src": "1469:3:6" }, "nodeType": "ForStatement", - "src": "1297:433:11" + "src": "1429:433:6" }, { "expression": { "argumentTypes": null, - "id": 1285, + "id": 1329, "isConstant": false, "isLValue": false, "isPure": false, @@ -6979,26 +7537,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1281, + "id": 1325, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "1739:6:11", + "referencedDeclaration": 1238, + "src": "1871:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1283, + "id": 1327, "indexExpression": { "argumentTypes": null, - "id": 1282, + "id": 1326, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1229, - "src": "1746:12:11", + "referencedDeclaration": 1273, + "src": "1878:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7009,7 +7567,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1739:20:11", + "src": "1871:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7019,43 +7577,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1284, + "id": 1328, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "1762:15:11", + "referencedDeclaration": 1234, + "src": "1894:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1739:38:11", + "src": "1871:38:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1286, + "id": 1330, "nodeType": "ExpressionStatement", - "src": "1739:38:11" + "src": "1871:38:6" }, { "expression": { "argumentTypes": null, - "id": 1290, + "id": 1334, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1287, + "id": 1331, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "1787:10:11", + "referencedDeclaration": 1240, + "src": "1919:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7067,18 +7625,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1288, + "id": 1332, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1201, - "src": "1800:7:11", + "referencedDeclaration": 1245, + "src": "1932:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1289, + "id": 1333, "isConstant": false, "isLValue": false, "isPure": false, @@ -7086,38 +7644,38 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1800:14:11", + "src": "1932:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1787:27:11", + "src": "1919:27:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1291, + "id": 1335, "nodeType": "ExpressionStatement", - "src": "1787:27:11" + "src": "1919:27:6" }, { "expression": { "argumentTypes": null, - "id": 1294, + "id": 1338, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1292, + "id": 1336, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "1824:9:11", + "referencedDeclaration": 1242, + "src": "1956:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7127,31 +7685,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1293, + "id": 1337, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "1836:10:11", + "referencedDeclaration": 1247, + "src": "1968:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1824:22:11", + "src": "1956:22:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1295, + "id": 1339, "nodeType": "ExpressionStatement", - "src": "1824:22:11" + "src": "1956:22:6" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.", - "id": 1297, + "id": 1341, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7159,16 +7717,16 @@ "name": "setupOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 1204, + "id": 1248, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1201, + "id": 1245, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "664:17:11", + "scope": 1341, + "src": "796:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7177,19 +7735,19 @@ }, "typeName": { "baseType": { - "id": 1199, + "id": 1243, "name": "address", "nodeType": "ElementaryTypeName", - "src": "664:7:11", + "src": "796:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1200, + "id": 1244, "length": null, "nodeType": "ArrayTypeName", - "src": "664:9:11", + "src": "796:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -7200,11 +7758,11 @@ }, { "constant": false, - "id": 1203, + "id": 1247, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "683:18:11", + "scope": 1341, + "src": "815:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7212,10 +7770,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1202, + "id": 1246, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "683:7:11", + "src": "815:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7225,26 +7783,26 @@ "visibility": "internal" } ], - "src": "663:39:11" + "src": "795:39:6" }, "payable": false, "returnParameters": { - "id": 1205, + "id": 1249, "nodeType": "ParameterList", "parameters": [], - "src": "724:0:11" + "src": "856:0:6" }, - "scope": 1588, - "src": "643:1210:11", + "scope": 1652, + "src": "775:1210:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1351, + "id": 1399, "nodeType": "Block", - "src": "2197:491:11", + "src": "2329:523:6", "statements": [ { "expression": { @@ -7256,7 +7814,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1313, + "id": 1357, "isConstant": false, "isLValue": false, "isPure": false, @@ -7267,19 +7825,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1309, + "id": 1353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1307, + "id": 1351, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "2256:5:11", + "referencedDeclaration": 1343, + "src": "2388:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7290,14 +7848,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1308, + "id": 1352, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2265:1:11", + "src": "2397:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7305,7 +7863,7 @@ }, "value": "0" }, - "src": "2256:10:11", + "src": "2388:10:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7319,19 +7877,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1312, + "id": 1356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1310, + "id": 1354, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "2270:5:11", + "referencedDeclaration": 1343, + "src": "2402:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7341,24 +7899,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1311, + "id": 1355, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "2279:15:11", + "referencedDeclaration": 1234, + "src": "2411:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2270:24:11", + "src": "2402:24:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2256:38:11", + "src": "2388:38:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7367,14 +7925,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1314, + "id": 1358, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2296:32:11", + "src": "2428:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -7394,21 +7952,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1306, + "id": 1350, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2248:7:11", + "referencedDeclaration": 4495, + "src": "2380:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1315, + "id": 1359, "isConstant": false, "isLValue": false, "isPure": false, @@ -7416,15 +7974,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2248:81:11", + "src": "2380:81:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1316, + "id": 1360, "nodeType": "ExpressionStatement", - "src": "2248:81:11" + "src": "2380:81:6" }, { "expression": { @@ -7436,7 +7994,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1322, + "id": 1366, "isConstant": false, "isLValue": false, "isPure": false, @@ -7445,26 +8003,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1318, + "id": 1362, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "2387:6:11", + "referencedDeclaration": 1238, + "src": "2519:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1320, + "id": 1364, "indexExpression": { "argumentTypes": null, - "id": 1319, + "id": 1363, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "2394:5:11", + "referencedDeclaration": 1343, + "src": "2526:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7475,7 +8033,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2387:13:11", + "src": "2519:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7486,14 +8044,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1321, + "id": 1365, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2404:1:11", + "src": "2536:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7501,7 +8059,7 @@ }, "value": "0" }, - "src": "2387:18:11", + "src": "2519:18:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7510,14 +8068,14 @@ { "argumentTypes": null, "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1323, + "id": 1367, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2407:29:11", + "src": "2539:29:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", @@ -7537,21 +8095,21 @@ "typeString": "literal_string \"Address is already an owner\"" } ], - "id": 1317, + "id": 1361, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2379:7:11", + "referencedDeclaration": 4495, + "src": "2511:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1324, + "id": 1368, "isConstant": false, "isLValue": false, "isPure": false, @@ -7559,20 +8117,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2379:58:11", + "src": "2511:58:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1325, + "id": 1369, "nodeType": "ExpressionStatement", - "src": "2379:58:11" + "src": "2511:58:6" }, { "expression": { "argumentTypes": null, - "id": 1332, + "id": 1376, "isConstant": false, "isLValue": false, "isPure": false, @@ -7581,26 +8139,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1326, + "id": 1370, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "2447:6:11", + "referencedDeclaration": 1238, + "src": "2579:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1328, + "id": 1372, "indexExpression": { "argumentTypes": null, - "id": 1327, + "id": 1371, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "2454:5:11", + "referencedDeclaration": 1343, + "src": "2586:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7611,7 +8169,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2447:13:11", + "src": "2579:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7623,26 +8181,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1329, + "id": 1373, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "2463:6:11", + "referencedDeclaration": 1238, + "src": "2595:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1331, + "id": 1375, "indexExpression": { "argumentTypes": null, - "id": 1330, + "id": 1374, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "2470:15:11", + "referencedDeclaration": 1234, + "src": "2602:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7653,26 +8211,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2463:23:11", + "src": "2595:23:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2447:39:11", + "src": "2579:39:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1333, + "id": 1377, "nodeType": "ExpressionStatement", - "src": "2447:39:11" + "src": "2579:39:6" }, { "expression": { "argumentTypes": null, - "id": 1338, + "id": 1382, "isConstant": false, "isLValue": false, "isPure": false, @@ -7681,26 +8239,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1334, + "id": 1378, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "2496:6:11", + "referencedDeclaration": 1238, + "src": "2628:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1336, + "id": 1380, "indexExpression": { "argumentTypes": null, - "id": 1335, + "id": 1379, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "2503:15:11", + "referencedDeclaration": 1234, + "src": "2635:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7711,7 +8269,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2496:23:11", + "src": "2628:23:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7721,31 +8279,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1337, + "id": 1381, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1299, - "src": "2522:5:11", + "referencedDeclaration": 1343, + "src": "2654:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2496:31:11", + "src": "2628:31:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1339, + "id": 1383, "nodeType": "ExpressionStatement", - "src": "2496:31:11" + "src": "2628:31:6" }, { "expression": { "argumentTypes": null, - "id": 1341, + "id": 1385, "isConstant": false, "isLValue": false, "isPure": false, @@ -7753,15 +8311,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2537:12:11", + "src": "2669:12:6", "subExpression": { "argumentTypes": null, - "id": 1340, + "id": 1384, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "2537:10:11", + "referencedDeclaration": 1240, + "src": "2669:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7772,9 +8330,63 @@ "typeString": "uint256" } }, - "id": 1342, + "id": 1386, "nodeType": "ExpressionStatement", - "src": "2537:12:11" + "src": "2669:12:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1388, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "2707:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1387, + "name": "AddedOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1221, + "src": "2696:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2696:17:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1390, + "nodeType": "EmitStatement", + "src": "2691:22:6" }, { "condition": { @@ -7783,19 +8395,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1345, + "id": 1393, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1343, + "id": 1391, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "2617:9:11", + "referencedDeclaration": 1242, + "src": "2781:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7805,39 +8417,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1344, + "id": 1392, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "2630:10:11", + "referencedDeclaration": 1345, + "src": "2794:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2617:23:11", + "src": "2781:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1350, + "id": 1398, "nodeType": "IfStatement", - "src": "2613:68:11", + "src": "2777:68:6", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1347, + "id": 1395, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "2670:10:11", + "referencedDeclaration": 1345, + "src": "2834:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7851,18 +8463,18 @@ "typeString": "uint256" } ], - "id": 1346, + "id": 1394, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "2654:15:11", + "referencedDeclaration": 1580, + "src": "2818:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 1348, + "id": 1396, "isConstant": false, "isLValue": false, "isPure": false, @@ -7870,58 +8482,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2654:27:11", + "src": "2818:27:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1349, + "id": 1397, "nodeType": "ExpressionStatement", - "src": "2654:27:11" + "src": "2818:27:6" } } ] }, "documentation": "@dev Allows to add a new owner to the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param owner New owner address.\n @param _threshold New threshold.", - "id": 1352, + "id": 1400, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1304, + "id": 1348, "modifierName": { "argumentTypes": null, - "id": 1303, + "id": 1347, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "2182:10:11", + "referencedDeclaration": 1734, + "src": "2314:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2182:10:11" + "src": "2314:10:6" } ], "name": "addOwnerWithThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1302, + "id": 1346, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1299, + "id": 1343, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1352, - "src": "2124:13:11", + "scope": 1400, + "src": "2256:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7929,10 +8541,10 @@ "typeString": "address" }, "typeName": { - "id": 1298, + "id": 1342, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2124:7:11", + "src": "2256:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7943,11 +8555,11 @@ }, { "constant": false, - "id": 1301, + "id": 1345, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1352, - "src": "2139:18:11", + "scope": 1400, + "src": "2271:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7955,10 +8567,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1300, + "id": 1344, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2139:7:11", + "src": "2271:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7968,26 +8580,26 @@ "visibility": "internal" } ], - "src": "2123:35:11" + "src": "2255:35:6" }, "payable": false, "returnParameters": { - "id": 1305, + "id": 1349, "nodeType": "ParameterList", "parameters": [], - "src": "2197:0:11" + "src": "2329:0:6" }, - "scope": 1588, - "src": "2093:595:11", + "scope": 1652, + "src": "2225:627:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1417, + "id": 1469, "nodeType": "Block", - "src": "3143:670:11", + "src": "3307:704:6", "statements": [ { "expression": { @@ -7999,7 +8611,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1368, + "id": 1416, "isConstant": false, "isLValue": false, "isPure": false, @@ -8010,19 +8622,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1366, + "id": 1414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1364, + "id": 1412, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "3238:10:11", + "referencedDeclaration": 1240, + "src": "3402:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8033,14 +8645,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1365, + "id": 1413, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3251:1:11", + "src": "3415:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -8048,7 +8660,7 @@ }, "value": "1" }, - "src": "3238:14:11", + "src": "3402:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8058,18 +8670,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 1367, + "id": 1415, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "3256:10:11", + "referencedDeclaration": 1406, + "src": "3420:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3238:28:11", + "src": "3402:28:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8078,14 +8690,14 @@ { "argumentTypes": null, "hexValue": "4e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64", - "id": 1369, + "id": 1417, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3268:55:11", + "src": "3432:55:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_839b4c4db845de24ec74ef067d85431087d6987a4c904418ee4f6ec699c02482", @@ -8105,21 +8717,21 @@ "typeString": "literal_string \"New owner count needs to be larger than new threshold\"" } ], - "id": 1363, + "id": 1411, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "3230:7:11", + "referencedDeclaration": 4495, + "src": "3394:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1370, + "id": 1418, "isConstant": false, "isLValue": false, "isPure": false, @@ -8127,15 +8739,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3230:94:11", + "src": "3394:94:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1371, + "id": 1419, "nodeType": "ExpressionStatement", - "src": "3230:94:11" + "src": "3394:94:6" }, { "expression": { @@ -8147,7 +8759,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1379, + "id": 1427, "isConstant": false, "isLValue": false, "isPure": false, @@ -8158,19 +8770,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1375, + "id": 1423, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1373, + "id": 1421, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3422:5:11", + "referencedDeclaration": 1404, + "src": "3586:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8181,14 +8793,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1374, + "id": 1422, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3431:1:11", + "src": "3595:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8196,7 +8808,7 @@ }, "value": "0" }, - "src": "3422:10:11", + "src": "3586:10:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8210,19 +8822,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1378, + "id": 1426, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1376, + "id": 1424, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3436:5:11", + "referencedDeclaration": 1404, + "src": "3600:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8232,24 +8844,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1377, + "id": 1425, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "3445:15:11", + "referencedDeclaration": 1234, + "src": "3609:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3436:24:11", + "src": "3600:24:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3422:38:11", + "src": "3586:38:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8258,14 +8870,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1380, + "id": 1428, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3462:32:11", + "src": "3626:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -8285,21 +8897,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1372, + "id": 1420, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "3414:7:11", + "referencedDeclaration": 4495, + "src": "3578:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1381, + "id": 1429, "isConstant": false, "isLValue": false, "isPure": false, @@ -8307,15 +8919,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3414:81:11", + "src": "3578:81:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1382, + "id": 1430, "nodeType": "ExpressionStatement", - "src": "3414:81:11" + "src": "3578:81:6" }, { "expression": { @@ -8327,7 +8939,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1388, + "id": 1436, "isConstant": false, "isLValue": false, "isPure": false, @@ -8336,26 +8948,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1384, + "id": 1432, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "3513:6:11", + "referencedDeclaration": 1238, + "src": "3677:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1386, + "id": 1434, "indexExpression": { "argumentTypes": null, - "id": 1385, + "id": 1433, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1354, - "src": "3520:9:11", + "referencedDeclaration": 1402, + "src": "3684:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8366,7 +8978,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3513:17:11", + "src": "3677:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8376,18 +8988,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1387, + "id": 1435, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3534:5:11", + "referencedDeclaration": 1404, + "src": "3698:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3513:26:11", + "src": "3677:26:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8396,14 +9008,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1389, + "id": 1437, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3541:40:11", + "src": "3705:40:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", @@ -8423,21 +9035,21 @@ "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" } ], - "id": 1383, + "id": 1431, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "3505:7:11", + "referencedDeclaration": 4495, + "src": "3669:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1390, + "id": 1438, "isConstant": false, "isLValue": false, "isPure": false, @@ -8445,20 +9057,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3505:77:11", + "src": "3669:77:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1391, + "id": 1439, "nodeType": "ExpressionStatement", - "src": "3505:77:11" + "src": "3669:77:6" }, { "expression": { "argumentTypes": null, - "id": 1398, + "id": 1446, "isConstant": false, "isLValue": false, "isPure": false, @@ -8467,26 +9079,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1392, + "id": 1440, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "3592:6:11", + "referencedDeclaration": 1238, + "src": "3756:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1394, + "id": 1442, "indexExpression": { "argumentTypes": null, - "id": 1393, + "id": 1441, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1354, - "src": "3599:9:11", + "referencedDeclaration": 1402, + "src": "3763:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8497,7 +9109,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3592:17:11", + "src": "3756:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8509,26 +9121,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1395, + "id": 1443, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "3612:6:11", + "referencedDeclaration": 1238, + "src": "3776:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1397, + "id": 1445, "indexExpression": { "argumentTypes": null, - "id": 1396, + "id": 1444, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3619:5:11", + "referencedDeclaration": 1404, + "src": "3783:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8539,26 +9151,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3612:13:11", + "src": "3776:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3592:33:11", + "src": "3756:33:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1399, + "id": 1447, "nodeType": "ExpressionStatement", - "src": "3592:33:11" + "src": "3756:33:6" }, { "expression": { "argumentTypes": null, - "id": 1404, + "id": 1452, "isConstant": false, "isLValue": false, "isPure": false, @@ -8567,26 +9179,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1400, + "id": 1448, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "3635:6:11", + "referencedDeclaration": 1238, + "src": "3799:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1402, + "id": 1450, "indexExpression": { "argumentTypes": null, - "id": 1401, + "id": 1449, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3642:5:11", + "referencedDeclaration": 1404, + "src": "3806:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8597,7 +9209,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3635:13:11", + "src": "3799:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8608,14 +9220,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1403, + "id": 1451, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3651:1:11", + "src": "3815:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8623,20 +9235,20 @@ }, "value": "0" }, - "src": "3635:17:11", + "src": "3799:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1405, + "id": 1453, "nodeType": "ExpressionStatement", - "src": "3635:17:11" + "src": "3799:17:6" }, { "expression": { "argumentTypes": null, - "id": 1407, + "id": 1455, "isConstant": false, "isLValue": false, "isPure": false, @@ -8644,15 +9256,15 @@ "nodeType": "UnaryOperation", "operator": "--", "prefix": false, - "src": "3662:12:11", + "src": "3826:12:6", "subExpression": { "argumentTypes": null, - "id": 1406, + "id": 1454, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "3662:10:11", + "referencedDeclaration": 1240, + "src": "3826:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8663,9 +9275,63 @@ "typeString": "uint256" } }, - "id": 1408, + "id": 1456, "nodeType": "ExpressionStatement", - "src": "3662:12:11" + "src": "3826:12:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1458, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1404, + "src": "3866:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1457, + "name": "RemovedOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1225, + "src": "3853:12:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3853:19:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1460, + "nodeType": "EmitStatement", + "src": "3848:24:6" }, { "condition": { @@ -8674,19 +9340,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1411, + "id": 1463, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1409, + "id": 1461, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "3742:9:11", + "referencedDeclaration": 1242, + "src": "3940:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8696,39 +9362,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1410, + "id": 1462, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "3755:10:11", + "referencedDeclaration": 1406, + "src": "3953:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3742:23:11", + "src": "3940:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1416, + "id": 1468, "nodeType": "IfStatement", - "src": "3738:68:11", + "src": "3936:68:6", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1413, + "id": 1465, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "3795:10:11", + "referencedDeclaration": 1406, + "src": "3993:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8742,18 +9408,18 @@ "typeString": "uint256" } ], - "id": 1412, + "id": 1464, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "3779:15:11", + "referencedDeclaration": 1580, + "src": "3977:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 1414, + "id": 1466, "isConstant": false, "isLValue": false, "isPure": false, @@ -8761,58 +9427,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3779:27:11", + "src": "3977:27:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1415, + "id": 1467, "nodeType": "ExpressionStatement", - "src": "3779:27:11" + "src": "3977:27:6" } } ] }, "documentation": "@dev Allows to remove an owner from the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param prevOwner Owner that pointed to the owner to be removed in the linked list\n @param owner Owner address to be removed.\n @param _threshold New threshold.", - "id": 1418, + "id": 1470, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1361, + "id": 1409, "modifierName": { "argumentTypes": null, - "id": 1360, + "id": 1408, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "3128:10:11", + "referencedDeclaration": 1734, + "src": "3292:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3128:10:11" + "src": "3292:10:6" } ], "name": "removeOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1359, + "id": 1407, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1354, + "id": 1402, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1418, - "src": "3051:17:11", + "scope": 1470, + "src": "3215:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8820,10 +9486,10 @@ "typeString": "address" }, "typeName": { - "id": 1353, + "id": 1401, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3051:7:11", + "src": "3215:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8834,11 +9500,11 @@ }, { "constant": false, - "id": 1356, + "id": 1404, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1418, - "src": "3070:13:11", + "scope": 1470, + "src": "3234:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8846,10 +9512,10 @@ "typeString": "address" }, "typeName": { - "id": 1355, + "id": 1403, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3070:7:11", + "src": "3234:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8860,11 +9526,11 @@ }, { "constant": false, - "id": 1358, + "id": 1406, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1418, - "src": "3085:18:11", + "scope": 1470, + "src": "3249:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8872,10 +9538,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1357, + "id": 1405, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3085:7:11", + "src": "3249:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8885,26 +9551,26 @@ "visibility": "internal" } ], - "src": "3050:54:11" + "src": "3214:54:6" }, "payable": false, "returnParameters": { - "id": 1362, + "id": 1410, "nodeType": "ParameterList", "parameters": [], - "src": "3143:0:11" + "src": "3307:0:6" }, - "scope": 1588, - "src": "3030:783:11", + "scope": 1652, + "src": "3194:817:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1489, + "id": 1549, "nodeType": "Block", - "src": "4259:639:11", + "src": "4457:711:6", "statements": [ { "expression": { @@ -8916,7 +9582,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1436, + "id": 1488, "isConstant": false, "isLValue": false, "isPure": false, @@ -8927,19 +9593,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1432, + "id": 1484, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1430, + "id": 1482, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1424, - "src": "4318:8:11", + "referencedDeclaration": 1476, + "src": "4516:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8950,14 +9616,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1431, + "id": 1483, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4330:1:11", + "src": "4528:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8965,7 +9631,7 @@ }, "value": "0" }, - "src": "4318:13:11", + "src": "4516:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8979,19 +9645,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1435, + "id": 1487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1433, + "id": 1485, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1424, - "src": "4335:8:11", + "referencedDeclaration": 1476, + "src": "4533:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9001,24 +9667,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1434, + "id": 1486, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "4347:15:11", + "referencedDeclaration": 1234, + "src": "4545:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4335:27:11", + "src": "4533:27:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4318:44:11", + "src": "4516:44:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9027,14 +9693,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1437, + "id": 1489, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4364:32:11", + "src": "4562:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -9054,21 +9720,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1429, + "id": 1481, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "4310:7:11", + "referencedDeclaration": 4495, + "src": "4508:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1438, + "id": 1490, "isConstant": false, "isLValue": false, "isPure": false, @@ -9076,15 +9742,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4310:87:11", + "src": "4508:87:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1439, + "id": 1491, "nodeType": "ExpressionStatement", - "src": "4310:87:11" + "src": "4508:87:6" }, { "expression": { @@ -9096,7 +9762,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1445, + "id": 1497, "isConstant": false, "isLValue": false, "isPure": false, @@ -9105,26 +9771,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1441, + "id": 1493, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4455:6:11", + "referencedDeclaration": 1238, + "src": "4653:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1443, + "id": 1495, "indexExpression": { "argumentTypes": null, - "id": 1442, + "id": 1494, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1424, - "src": "4462:8:11", + "referencedDeclaration": 1476, + "src": "4660:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9135,7 +9801,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4455:16:11", + "src": "4653:16:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9146,14 +9812,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1444, + "id": 1496, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4475:1:11", + "src": "4673:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9161,7 +9827,7 @@ }, "value": "0" }, - "src": "4455:21:11", + "src": "4653:21:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9170,14 +9836,14 @@ { "argumentTypes": null, "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1446, + "id": 1498, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4478:29:11", + "src": "4676:29:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", @@ -9197,21 +9863,21 @@ "typeString": "literal_string \"Address is already an owner\"" } ], - "id": 1440, + "id": 1492, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "4447:7:11", + "referencedDeclaration": 4495, + "src": "4645:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1447, + "id": 1499, "isConstant": false, "isLValue": false, "isPure": false, @@ -9219,15 +9885,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4447:61:11", + "src": "4645:61:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1448, + "id": 1500, "nodeType": "ExpressionStatement", - "src": "4447:61:11" + "src": "4645:61:6" }, { "expression": { @@ -9239,7 +9905,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1456, + "id": 1508, "isConstant": false, "isLValue": false, "isPure": false, @@ -9250,19 +9916,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1452, + "id": 1504, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1450, + "id": 1502, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1422, - "src": "4609:8:11", + "referencedDeclaration": 1474, + "src": "4807:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9273,14 +9939,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1451, + "id": 1503, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4621:1:11", + "src": "4819:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9288,7 +9954,7 @@ }, "value": "0" }, - "src": "4609:13:11", + "src": "4807:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9302,19 +9968,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1455, + "id": 1507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1453, + "id": 1505, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1422, - "src": "4626:8:11", + "referencedDeclaration": 1474, + "src": "4824:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9324,24 +9990,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1454, + "id": 1506, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "4638:15:11", + "referencedDeclaration": 1234, + "src": "4836:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4626:27:11", + "src": "4824:27:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4609:44:11", + "src": "4807:44:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9350,14 +10016,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1457, + "id": 1509, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4655:32:11", + "src": "4853:32:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -9377,21 +10043,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1449, + "id": 1501, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "4601:7:11", + "referencedDeclaration": 4495, + "src": "4799:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1458, + "id": 1510, "isConstant": false, "isLValue": false, "isPure": false, @@ -9399,15 +10065,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4601:87:11", + "src": "4799:87:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1459, + "id": 1511, "nodeType": "ExpressionStatement", - "src": "4601:87:11" + "src": "4799:87:6" }, { "expression": { @@ -9419,7 +10085,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1465, + "id": 1517, "isConstant": false, "isLValue": false, "isPure": false, @@ -9428,26 +10094,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1461, + "id": 1513, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4706:6:11", + "referencedDeclaration": 1238, + "src": "4904:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1463, + "id": 1515, "indexExpression": { "argumentTypes": null, - "id": 1462, + "id": 1514, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1420, - "src": "4713:9:11", + "referencedDeclaration": 1472, + "src": "4911:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9458,7 +10124,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4706:17:11", + "src": "4904:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9468,18 +10134,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1464, + "id": 1516, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1422, - "src": "4727:8:11", + "referencedDeclaration": 1474, + "src": "4925:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4706:29:11", + "src": "4904:29:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9488,14 +10154,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1466, + "id": 1518, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4737:40:11", + "src": "4935:40:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", @@ -9515,21 +10181,21 @@ "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" } ], - "id": 1460, + "id": 1512, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "4698:7:11", + "referencedDeclaration": 4495, + "src": "4896:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1467, + "id": 1519, "isConstant": false, "isLValue": false, "isPure": false, @@ -9537,20 +10203,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4698:80:11", + "src": "4896:80:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1468, + "id": 1520, "nodeType": "ExpressionStatement", - "src": "4698:80:11" + "src": "4896:80:6" }, { "expression": { "argumentTypes": null, - "id": 1475, + "id": 1527, "isConstant": false, "isLValue": false, "isPure": false, @@ -9559,26 +10225,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1469, + "id": 1521, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4788:6:11", + "referencedDeclaration": 1238, + "src": "4986:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1471, + "id": 1523, "indexExpression": { "argumentTypes": null, - "id": 1470, + "id": 1522, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1424, - "src": "4795:8:11", + "referencedDeclaration": 1476, + "src": "4993:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9589,7 +10255,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4788:16:11", + "src": "4986:16:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9601,26 +10267,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1472, + "id": 1524, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4807:6:11", + "referencedDeclaration": 1238, + "src": "5005:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1474, + "id": 1526, "indexExpression": { "argumentTypes": null, - "id": 1473, + "id": 1525, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1422, - "src": "4814:8:11", + "referencedDeclaration": 1474, + "src": "5012:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9631,26 +10297,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4807:16:11", + "src": "5005:16:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4788:35:11", + "src": "4986:35:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1476, + "id": 1528, "nodeType": "ExpressionStatement", - "src": "4788:35:11" + "src": "4986:35:6" }, { "expression": { "argumentTypes": null, - "id": 1481, + "id": 1533, "isConstant": false, "isLValue": false, "isPure": false, @@ -9659,26 +10325,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1477, + "id": 1529, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4833:6:11", + "referencedDeclaration": 1238, + "src": "5031:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1479, + "id": 1531, "indexExpression": { "argumentTypes": null, - "id": 1478, + "id": 1530, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1420, - "src": "4840:9:11", + "referencedDeclaration": 1472, + "src": "5038:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9689,7 +10355,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4833:17:11", + "src": "5031:17:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9699,31 +10365,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1480, + "id": 1532, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1424, - "src": "4853:8:11", + "referencedDeclaration": 1476, + "src": "5051:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4833:28:11", + "src": "5031:28:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1482, + "id": 1534, "nodeType": "ExpressionStatement", - "src": "4833:28:11" + "src": "5031:28:6" }, { "expression": { "argumentTypes": null, - "id": 1487, + "id": 1539, "isConstant": false, "isLValue": false, "isPure": false, @@ -9732,26 +10398,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1483, + "id": 1535, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4871:6:11", + "referencedDeclaration": 1238, + "src": "5069:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1485, + "id": 1537, "indexExpression": { "argumentTypes": null, - "id": 1484, + "id": 1536, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1422, - "src": "4878:8:11", + "referencedDeclaration": 1474, + "src": "5076:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9762,7 +10428,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4871:16:11", + "src": "5069:16:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9773,14 +10439,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1486, + "id": 1538, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4890:1:11", + "src": "5088:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9788,57 +10454,165 @@ }, "value": "0" }, - "src": "4871:20:11", + "src": "5069:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1488, + "id": 1540, "nodeType": "ExpressionStatement", - "src": "4871:20:11" + "src": "5069:20:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1542, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1474, + "src": "5117:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1541, + "name": "RemovedOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1225, + "src": "5104:12:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5104:22:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1544, + "nodeType": "EmitStatement", + "src": "5099:27:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1546, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1476, + "src": "5152:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1545, + "name": "AddedOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1221, + "src": "5141:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5141:20:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1548, + "nodeType": "EmitStatement", + "src": "5136:25:6" } ] }, "documentation": "@dev Allows to swap/replace an owner from the Safe with another address.\n This can only be done via a Safe transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.", - "id": 1490, + "id": 1550, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1427, + "id": 1479, "modifierName": { "argumentTypes": null, - "id": 1426, + "id": 1478, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "4244:10:11", + "referencedDeclaration": 1734, + "src": "4442:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4244:10:11" + "src": "4442:10:6" } ], "name": "swapOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1425, + "id": 1477, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1420, + "id": 1472, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1490, - "src": "4166:17:11", + "scope": 1550, + "src": "4364:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9846,10 +10620,10 @@ "typeString": "address" }, "typeName": { - "id": 1419, + "id": 1471, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4166:7:11", + "src": "4364:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9860,11 +10634,11 @@ }, { "constant": false, - "id": 1422, + "id": 1474, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 1490, - "src": "4185:16:11", + "scope": 1550, + "src": "4383:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9872,10 +10646,10 @@ "typeString": "address" }, "typeName": { - "id": 1421, + "id": 1473, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4185:7:11", + "src": "4383:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9886,11 +10660,11 @@ }, { "constant": false, - "id": 1424, + "id": 1476, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 1490, - "src": "4203:16:11", + "scope": 1550, + "src": "4401:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9898,10 +10672,10 @@ "typeString": "address" }, "typeName": { - "id": 1423, + "id": 1475, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4203:7:11", + "src": "4401:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9911,26 +10685,26 @@ "visibility": "internal" } ], - "src": "4165:55:11" + "src": "4363:55:6" }, "payable": false, "returnParameters": { - "id": 1428, + "id": 1480, "nodeType": "ParameterList", "parameters": [], - "src": "4259:0:11" + "src": "4457:0:6" }, - "scope": 1588, - "src": "4147:751:11", + "scope": 1652, + "src": "4345:823:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1515, + "id": 1579, "nodeType": "Block", - "src": "5170:316:11", + "src": "5440:358:6", "statements": [ { "expression": { @@ -9942,19 +10716,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1500, + "id": 1560, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1498, + "id": 1558, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1492, - "src": "5257:10:11", + "referencedDeclaration": 1552, + "src": "5527:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9964,18 +10738,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1499, + "id": 1559, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "5271:10:11", + "referencedDeclaration": 1240, + "src": "5541:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5257:24:11", + "src": "5527:24:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9984,14 +10758,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1501, + "id": 1561, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5283:37:11", + "src": "5553:37:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", @@ -10011,21 +10785,21 @@ "typeString": "literal_string \"Threshold cannot exceed owner count\"" } ], - "id": 1497, + "id": 1557, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "5249:7:11", + "referencedDeclaration": 4495, + "src": "5519:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1502, + "id": 1562, "isConstant": false, "isLValue": false, "isPure": false, @@ -10033,15 +10807,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5249:72:11", + "src": "5519:72:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1503, + "id": 1563, "nodeType": "ExpressionStatement", - "src": "5249:72:11" + "src": "5519:72:6" }, { "expression": { @@ -10053,19 +10827,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1507, + "id": 1567, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1505, + "id": 1565, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1492, - "src": "5391:10:11", + "referencedDeclaration": 1552, + "src": "5661:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10076,14 +10850,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1506, + "id": 1566, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5405:1:11", + "src": "5675:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -10091,7 +10865,7 @@ }, "value": "1" }, - "src": "5391:15:11", + "src": "5661:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10100,14 +10874,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1508, + "id": 1568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5408:38:11", + "src": "5678:38:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", @@ -10127,21 +10901,21 @@ "typeString": "literal_string \"Threshold needs to be greater than 0\"" } ], - "id": 1504, + "id": 1564, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "5383:7:11", + "referencedDeclaration": 4495, + "src": "5653:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1509, + "id": 1569, "isConstant": false, "isLValue": false, "isPure": false, @@ -10149,32 +10923,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5383:64:11", + "src": "5653:64:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1510, + "id": 1570, "nodeType": "ExpressionStatement", - "src": "5383:64:11" + "src": "5653:64:6" }, { "expression": { "argumentTypes": null, - "id": 1513, + "id": 1573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1511, + "id": 1571, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "5457:9:11", + "referencedDeclaration": 1242, + "src": "5727:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10184,416 +10958,39 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1512, + "id": 1572, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1492, - "src": "5469:10:11", + "referencedDeclaration": 1552, + "src": "5739:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5457:22:11", + "src": "5727:22:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1514, + "id": 1574, "nodeType": "ExpressionStatement", - "src": "5457:22:11" - } - ] - }, - "documentation": "@dev Allows to update the number of required confirmations by Safe owners.\n This can only be done via a Safe transaction.\n @param _threshold New threshold.", - "id": 1516, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1495, - "modifierName": { - "argumentTypes": null, - "id": 1494, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1764, - "src": "5155:10:11", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } + "src": "5727:22:6" }, - "nodeType": "ModifierInvocation", - "src": "5155:10:11" - } - ], - "name": "changeThreshold", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1493, - "nodeType": "ParameterList", - "parameters": [ { - "constant": false, - "id": 1492, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1516, - "src": "5112:18:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1491, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5112:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5111:20:11" - }, - "payable": false, - "returnParameters": { - "id": 1496, - "nodeType": "ParameterList", - "parameters": [], - "src": "5170:0:11" - }, - "scope": 1588, - "src": "5087:399:11", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1523, - "nodeType": "Block", - "src": "5574:33:11", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1521, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "5591:9:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1520, - "id": 1522, - "nodeType": "Return", - "src": "5584:16:11" - } - ] - }, - "documentation": null, - "id": 1524, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getThreshold", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1517, - "nodeType": "ParameterList", - "parameters": [], - "src": "5513:2:11" - }, - "payable": false, - "returnParameters": { - "id": 1520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1519, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1524, - "src": "5561:7:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1518, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5561:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5560:9:11" - }, - "scope": 1588, - "src": "5492:115:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1537, - "nodeType": "Block", - "src": "5700:42:11", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1531, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "5717:6:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1533, - "indexExpression": { - "argumentTypes": null, - "id": 1532, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "5724:5:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5717:13:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5734:1:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5717:18:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1530, - "id": 1536, - "nodeType": "Return", - "src": "5710:25:11" - } - ] - }, - "documentation": null, - "id": 1538, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1527, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1526, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1538, - "src": "5630:13:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5630:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5629:15:11" - }, - "payable": false, - "returnParameters": { - "id": 1530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1529, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1538, - "src": "5690:4:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1528, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5690:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5689:6:11" - }, - "scope": 1588, - "src": "5613:129:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1586, - "nodeType": "Block", - "src": "5905:377:11", - "statements": [ - { - "assignments": [ - 1547 - ], - "declarations": [ - { - "constant": false, - "id": 1547, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 1587, - "src": "5915:22:11", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1545, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5915:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1546, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5915:9:11", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1553, - "initialValue": { + "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1551, - "name": "ownerCount", + "id": 1576, + "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "5954:10:11", + "referencedDeclaration": 1242, + "src": "5781:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10607,39 +11004,18 @@ "typeString": "uint256" } ], - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "5940:13:11", + "id": 1575, + "name": "ChangedThreshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1229, + "src": "5764:16:6", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 1548, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5944:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1549, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5944:9:11", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" } }, - "id": 1552, + "id": 1577, "isConstant": false, "isLValue": false, "isPure": false, @@ -10647,27 +11023,479 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5940:25:11", + "src": "5764:27:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1578, + "nodeType": "EmitStatement", + "src": "5759:32:6" + } + ] + }, + "documentation": "@dev Allows to update the number of required confirmations by Safe owners.\n This can only be done via a Safe transaction.\n @param _threshold New threshold.", + "id": 1580, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1555, + "modifierName": { + "argumentTypes": null, + "id": 1554, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "5425:10:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5425:10:6" + } + ], + "name": "changeThreshold", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1552, + "name": "_threshold", + "nodeType": "VariableDeclaration", + "scope": 1580, + "src": "5382:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5382:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5381:20:6" + }, + "payable": false, + "returnParameters": { + "id": 1556, + "nodeType": "ParameterList", + "parameters": [], + "src": "5440:0:6" + }, + "scope": 1652, + "src": "5357:441:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1587, + "nodeType": "Block", + "src": "5886:33:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1585, + "name": "threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1242, + "src": "5903:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1584, + "id": 1586, + "nodeType": "Return", + "src": "5896:16:6" + } + ] + }, + "documentation": null, + "id": 1588, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getThreshold", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1581, + "nodeType": "ParameterList", + "parameters": [], + "src": "5825:2:6" + }, + "payable": false, + "returnParameters": { + "id": 1584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1583, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1588, + "src": "5873:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5873:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5872:9:6" + }, + "scope": 1652, + "src": "5804:115:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1601, + "nodeType": "Block", + "src": "6012:42:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1595, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1238, + "src": "6029:6:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1597, + "indexExpression": { + "argumentTypes": null, + "id": 1596, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1590, + "src": "6036:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6029:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6046:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6029:18:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1594, + "id": 1600, + "nodeType": "Return", + "src": "6022:25:6" + } + ] + }, + "documentation": null, + "id": 1602, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1590, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1602, + "src": "5942:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1589, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5942:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5941:15:6" + }, + "payable": false, + "returnParameters": { + "id": 1594, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1593, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1602, + "src": "6002:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1592, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6002:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6001:6:6" + }, + "scope": 1652, + "src": "5925:129:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1650, + "nodeType": "Block", + "src": "6217:377:6", + "statements": [ + { + "assignments": [ + 1611 + ], + "declarations": [ + { + "constant": false, + "id": 1611, + "name": "array", + "nodeType": "VariableDeclaration", + "scope": 1651, + "src": "6227:22:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1609, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6227:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1610, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6227:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1617, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1615, + "name": "ownerCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "6266:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6252:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 1612, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6256:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1613, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6256:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 1616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6252:25:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5915:50:11" + "src": "6227:50:6" }, { "assignments": [ - 1555 + 1619 ], "declarations": [ { "constant": false, - "id": 1555, + "id": 1619, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1587, - "src": "6009:13:11", + "scope": 1651, + "src": "6321:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10675,10 +11503,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1554, + "id": 1618, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6009:7:11", + "src": "6321:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10688,18 +11516,18 @@ "visibility": "internal" } ], - "id": 1557, + "id": 1621, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1556, + "id": 1620, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6025:1:11", + "src": "6337:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10708,20 +11536,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6009:17:11" + "src": "6321:17:6" }, { "assignments": [ - 1559 + 1623 ], "declarations": [ { "constant": false, - "id": 1559, + "id": 1623, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1587, - "src": "6036:20:11", + "scope": 1651, + "src": "6348:20:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10729,10 +11557,10 @@ "typeString": "address" }, "typeName": { - "id": 1558, + "id": 1622, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6036:7:11", + "src": "6348:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10742,31 +11570,31 @@ "visibility": "internal" } ], - "id": 1563, + "id": 1627, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1560, + "id": 1624, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "6059:6:11", + "referencedDeclaration": 1238, + "src": "6371:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1562, + "id": 1626, "indexExpression": { "argumentTypes": null, - "id": 1561, + "id": 1625, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "6066:15:11", + "referencedDeclaration": 1234, + "src": "6378:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10777,25 +11605,25 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6059:23:11", + "src": "6371:23:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "6036:46:11" + "src": "6348:46:6" }, { "body": { - "id": 1582, + "id": 1646, "nodeType": "Block", - "src": "6131:123:11", + "src": "6443:123:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 1571, + "id": 1635, "isConstant": false, "isLValue": false, "isPure": false, @@ -10804,26 +11632,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1567, + "id": 1631, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1547, - "src": "6145:5:11", + "referencedDeclaration": 1611, + "src": "6457:5:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1569, + "id": 1633, "indexExpression": { "argumentTypes": null, - "id": 1568, + "id": 1632, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "6151:5:11", + "referencedDeclaration": 1619, + "src": "6463:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10834,7 +11662,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6145:12:11", + "src": "6457:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10844,43 +11672,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1570, + "id": 1634, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1559, - "src": "6160:12:11", + "referencedDeclaration": 1623, + "src": "6472:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6145:27:11", + "src": "6457:27:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1572, + "id": 1636, "nodeType": "ExpressionStatement", - "src": "6145:27:11" + "src": "6457:27:6" }, { "expression": { "argumentTypes": null, - "id": 1577, + "id": 1641, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1573, + "id": 1637, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1559, - "src": "6186:12:11", + "referencedDeclaration": 1623, + "src": "6498:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10892,26 +11720,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1574, + "id": 1638, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "6201:6:11", + "referencedDeclaration": 1238, + "src": "6513:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1576, + "id": 1640, "indexExpression": { "argumentTypes": null, - "id": 1575, + "id": 1639, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1559, - "src": "6208:12:11", + "referencedDeclaration": 1623, + "src": "6520:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10922,26 +11750,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6201:20:11", + "src": "6513:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6186:35:11", + "src": "6498:35:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1578, + "id": 1642, "nodeType": "ExpressionStatement", - "src": "6186:35:11" + "src": "6498:35:6" }, { "expression": { "argumentTypes": null, - "id": 1580, + "id": 1644, "isConstant": false, "isLValue": false, "isPure": false, @@ -10949,15 +11777,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6235:8:11", + "src": "6547:8:6", "subExpression": { "argumentTypes": null, - "id": 1579, + "id": 1643, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "6235:5:11", + "referencedDeclaration": 1619, + "src": "6547:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10968,9 +11796,9 @@ "typeString": "uint256" } }, - "id": 1581, + "id": 1645, "nodeType": "ExpressionStatement", - "src": "6235:8:11" + "src": "6547:8:6" } ] }, @@ -10980,19 +11808,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1566, + "id": 1630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1564, + "id": 1628, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1559, - "src": "6098:12:11", + "referencedDeclaration": 1623, + "src": "6410:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11002,50 +11830,50 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1565, + "id": 1629, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1190, - "src": "6114:15:11", + "referencedDeclaration": 1234, + "src": "6426:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6098:31:11", + "src": "6410:31:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1583, + "id": 1647, "nodeType": "WhileStatement", - "src": "6092:162:11" + "src": "6404:162:6" }, { "expression": { "argumentTypes": null, - "id": 1584, + "id": 1648, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1547, - "src": "6270:5:11", + "referencedDeclaration": 1611, + "src": "6582:5:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 1543, - "id": 1585, + "functionReturnParameters": 1607, + "id": 1649, "nodeType": "Return", - "src": "6263:12:11" + "src": "6575:12:6" } ] }, "documentation": "@dev Returns array of owners.\n @return Array of Safe owners.", - "id": 1587, + "id": 1651, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11053,23 +11881,23 @@ "name": "getOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 1539, + "id": 1603, "nodeType": "ParameterList", "parameters": [], - "src": "5842:2:11" + "src": "6154:2:6" }, "payable": false, "returnParameters": { - "id": 1543, + "id": 1607, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1542, + "id": 1606, "name": "", "nodeType": "VariableDeclaration", - "scope": 1587, - "src": "5890:9:11", + "scope": 1651, + "src": "6202:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11078,19 +11906,19 @@ }, "typeName": { "baseType": { - "id": 1540, + "id": 1604, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5890:7:11", + "src": "6202:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1541, + "id": 1605, "length": null, "nodeType": "ArrayTypeName", - "src": "5890:9:11", + "src": "6202:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -11100,20 +11928,20 @@ "visibility": "internal" } ], - "src": "5889:11:11" + "src": "6201:11:6" }, - "scope": 1588, - "src": "5824:458:11", + "scope": 1652, + "src": "6136:458:6", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1589, - "src": "240:6044:11" + "scope": 1653, + "src": "248:6348:6" } ], - "src": "0:6285:11" + "src": "0:6597:6" }, "compiler": { "name": "solc", @@ -11121,5 +11949,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.090Z" + "updatedAt": "2018-09-26T08:32:07.640Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/PayingProxy.json b/safe-contracts/build/contracts/PayingProxy.json index 50efa29e..77ff7295 100644 --- a/safe-contracts/build/contracts/PayingProxy.json +++ b/safe-contracts/build/contracts/PayingProxy.json @@ -62,51 +62,51 @@ "type": "fallback" } ], - "bytecode": "0x608060405234801561001057600080fd5b5060405161060a38038061060a833981018060405281019080805190602001909291908051820192919060200180519060200190929190805190602001909291908051906020019092919050505084848160008173ffffffffffffffffffffffffffffffffffffffff1614151515610116576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000815111156101a35773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e600082141561019f573d81fd5b5050505b5050600081111561036d57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156102b7578273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156102b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f436f756c64206e6f74207061792073616665206372656174696f6e207769746881526020017f206574686572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61036c565b6102d1828483610377640100000000026401000000009004565b151561036b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f436f756c64206e6f74207061792073616665206372656174696f6e207769746881526020017f20746f6b656e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b5b5050505050610490565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d60008114610473576020811461047b5760009450610485565b829450610485565b8151158315171594505b505050509392505050565b61016b8061049f6000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820d7000b93834fa325b64ca1644682b27b7ca4e0c5b438f4481d7909f3d065bbeb0029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820d7000b93834fa325b64ca1644682b27b7ca4e0c5b438f4481d7909f3d065bbeb0029", - "sourceMap": "451:1072:12:-;;;945:576;8:9:-1;5:2;;;30:1;27;20:12;5:2;945:576:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1086:11;1099;668::0;593:1:13;578:11;:16;;;;570:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;658:11;645:10;;:24;;;;;;;;;;;;;;;;;;508:168;735:1:0;714:11;:18;:22;710:519;;;879:42;875:1;869:8;865:57;1043:1;1040;1026:11;1020:18;1013:4;1000:11;996:22;984:10;976:5;971:3;967:15;954:91;1079:4;1073:11;1124:14;1121:1;1116:3;1101:38;1171:1;1162:7;1159:14;1156:2;;;1188:14;1183:3;1176:27;1156:2;829:390;;;;610:625;;1155:1:12;1145:7;:11;1141:373;;;1200:1;1176:26;;:12;:26;;;1172:332;;;1292:6;:11;;:20;1304:7;1292:20;;;;;;;;;;;;;;;;;;;;;;;1284:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1172:332;;;1402:44;1416:12;1430:6;1438:7;1402:13;;;:44;;;:::i;:::-;1394:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1172:332;1141:373;945:576;;;;;451:1072;;430:752:15;568:16;600:17;673:8;683:6;620:70;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;620:70:15;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;620:70:15;600:90;;867:1;864;857:4;851:11;844:4;838;834:15;831:1;824:5;816;811:3;807:15;802:67;899:4;893:11;940:14;937:1;932:3;917:38;975:14;1008:1;1003:33;;;;1054:4;1049:76;;;;1163:1;1148:16;;968:198;;1003:33;1027:7;1012:22;;1003:33;;1049:76;1116:3;1110:10;1103:18;1093:7;1086:15;1083:39;1076:47;1061:62;;968:198;;773:403;;;;;;;;:::o;451:1072:12:-;;;;;;;", - "deployedSourceMap": "451:1072:12:-;;;;;;;;;;;;;;;;;;;;;;;;;;955:42:13;951:1;945:8;941:57;1030:14;1027:1;1024;1011:34;1125:1;1122;1106:14;1103:1;1091:10;1086:3;1073:54;1161:16;1158:1;1155;1140:38;1206:1;1197:7;1194:14;1191:2;;;1221:16;1218:1;1211:27;1191:2;1263:16;1260:1;1253:27;1426:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1426:104:13;;;;;;;;;;;;;;;;;;;;;;;1302:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302:118:13;;;;;;;;;;;;;;;;;;;;;;;;;;;1426:104;1492:7;1522:1;1515:8;;1426:104;:::o;1302:118::-;1373:7;1403:10;;;;;;;;;;;1396:17;;1302:118;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./DelegateConstructorProxy.sol\";\nimport \"./SecuredTokenTransfer.sol\";\n\n/// @title Paying Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor. And sends funds after creation to a specified account.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract PayingProxy is DelegateConstructorProxy, SecuredTokenTransfer {\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n /// @param initializer Data used for a delegate call to initialize the contract.\n /// @param funder Address that should be paid for the execution of this call\n /// @param paymentToken Token that should be used for the payment (0 is ETH)\n /// @param payment Value that should be paid\n constructor(address _masterCopy, bytes initializer, address funder, address paymentToken, uint256 payment) \n DelegateConstructorProxy(_masterCopy, initializer)\n public\n {\n if (payment > 0) {\n if (paymentToken == address(0)) {\n // solium-disable-next-line security/no-send\n require(funder.send(payment), \"Could not pay safe creation with ether\");\n } else {\n require(transferToken(paymentToken, funder, payment), \"Could not pay safe creation with token\");\n }\n } \n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/PayingProxy.sol", + "bytecode": "0x608060405234801561001057600080fd5b5060405161060a38038061060a833981018060405281019080805190602001909291908051820192919060200180519060200190929190805190602001909291908051906020019092919050505084848160008173ffffffffffffffffffffffffffffffffffffffff1614151515610116576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000815111156101a35773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e600082141561019f573d81fd5b5050505b5050600081111561036d57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156102b7578273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156102b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f436f756c64206e6f74207061792073616665206372656174696f6e207769746881526020017f206574686572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61036c565b6102d1828483610377640100000000026401000000009004565b151561036b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f436f756c64206e6f74207061792073616665206372656174696f6e207769746881526020017f20746f6b656e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b5b5050505050610490565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d60008114610473576020811461047b5760009450610485565b829450610485565b8151158315171594505b505050509392505050565b61016b8061049f6000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820f4865d803249158ffb1d82b19d119f60c2a50ca3b6f4fa2715b2740fb12915270029", + "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820f4865d803249158ffb1d82b19d119f60c2a50ca3b6f4fa2715b2740fb12915270029", + "sourceMap": "459:1072:22:-;;;953:576;8:9:-1;5:2;;;30:1;27;20:12;5:2;953:576:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1094:11;1107;668::21;593:1:23;578:11;:16;;;;570:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;658:11;645:10;;:24;;;;;;;;;;;;;;;;;;508:168;735:1:21;714:11;:18;:22;710:519;;;879:42;875:1;869:8;865:57;1043:1;1040;1026:11;1020:18;1013:4;1000:11;996:22;984:10;976:5;971:3;967:15;954:91;1079:4;1073:11;1124:14;1121:1;1116:3;1101:38;1171:1;1162:7;1159:14;1156:2;;;1188:14;1183:3;1176:27;1156:2;829:390;;;;610:625;;1163:1:22;1153:7;:11;1149:373;;;1208:1;1184:26;;:12;:26;;;1180:332;;;1300:6;:11;;:20;1312:7;1300:20;;;;;;;;;;;;;;;;;;;;;;;1292:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1180:332;;;1410:44;1424:12;1438:6;1446:7;1410:13;;;:44;;;:::i;:::-;1402:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1180:332;1149:373;953:576;;;;;459:1072;;430:752:10;568:16;600:17;673:8;683:6;620:70;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;620:70:10;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;620:70:10;600:90;;867:1;864;857:4;851:11;844:4;838;834:15;831:1;824:5;816;811:3;807:15;802:67;899:4;893:11;940:14;937:1;932:3;917:38;975:14;1008:1;1003:33;;;;1054:4;1049:76;;;;1163:1;1148:16;;968:198;;1003:33;1027:7;1012:22;;1003:33;;1049:76;1116:3;1110:10;1103:18;1093:7;1086:15;1083:39;1076:47;1061:62;;968:198;;773:403;;;;;;;;:::o;459:1072:22:-;;;;;;;", + "deployedSourceMap": "459:1072:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;955:42:23;951:1;945:8;941:57;1030:14;1027:1;1024;1011:34;1125:1;1122;1106:14;1103:1;1091:10;1086:3;1073:54;1161:16;1158:1;1155;1140:38;1206:1;1197:7;1194:14;1191:2;;;1221:16;1218:1;1211:27;1191:2;1263:16;1260:1;1253:27;1426:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1426:104:23;;;;;;;;;;;;;;;;;;;;;;;1302:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302:118:23;;;;;;;;;;;;;;;;;;;;;;;;;;;1426:104;1492:7;1522:1;1515:8;;1426:104;:::o;1302:118::-;1373:7;1403:10;;;;;;;;;;;1396:17;;1302:118;:::o", + "source": "pragma solidity 0.4.24;\nimport \"../common/SecuredTokenTransfer.sol\";\nimport \"./DelegateConstructorProxy.sol\";\n\n/// @title Paying Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor. And sends funds after creation to a specified account.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract PayingProxy is DelegateConstructorProxy, SecuredTokenTransfer {\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n /// @param initializer Data used for a delegate call to initialize the contract.\n /// @param funder Address that should be paid for the execution of this call\n /// @param paymentToken Token that should be used for the payment (0 is ETH)\n /// @param payment Value that should be paid\n constructor(address _masterCopy, bytes initializer, address funder, address paymentToken, uint256 payment) \n DelegateConstructorProxy(_masterCopy, initializer)\n public\n {\n if (payment > 0) {\n if (paymentToken == address(0)) {\n // solium-disable-next-line security/no-send\n require(funder.send(payment), \"Could not pay safe creation with ether\");\n } else {\n require(transferToken(paymentToken, funder, payment), \"Could not pay safe creation with token\");\n }\n } \n }\n}\n", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/PayingProxy.sol", "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/PayingProxy.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/PayingProxy.sol", "exportedSymbols": { "PayingProxy": [ - 1645 + 2797 ] }, - "id": 1646, + "id": 2798, "nodeType": "SourceUnit", "nodes": [ { - "id": 1590, + "id": 2742, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:12" + "src": "0:23:22" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/DelegateConstructorProxy.sol", - "file": "./DelegateConstructorProxy.sol", - "id": 1591, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", + "file": "../common/SecuredTokenTransfer.sol", + "id": 2743, "nodeType": "ImportDirective", - "scope": 1646, - "sourceUnit": 24, - "src": "24:40:12", + "scope": 2798, + "sourceUnit": 1719, + "src": "24:44:22", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", - "file": "./SecuredTokenTransfer.sol", - "id": 1592, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", + "file": "./DelegateConstructorProxy.sol", + "id": 2744, "nodeType": "ImportDirective", - "scope": 1646, - "sourceUnit": 1749, - "src": "65:36:12", + "scope": 2798, + "sourceUnit": 2741, + "src": "69:40:22", "symbolAliases": [], "unitAlias": "" }, @@ -116,62 +116,62 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1593, + "id": 2745, "name": "DelegateConstructorProxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "475:24:12", + "referencedDeclaration": 2740, + "src": "483:24:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_DelegateConstructorProxy_$23", + "typeIdentifier": "t_contract$_DelegateConstructorProxy_$2740", "typeString": "contract DelegateConstructorProxy" } }, - "id": 1594, + "id": 2746, "nodeType": "InheritanceSpecifier", - "src": "475:24:12" + "src": "483:24:22" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 1595, + "id": 2747, "name": "SecuredTokenTransfer", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1748, - "src": "501:20:12", + "referencedDeclaration": 1718, + "src": "509:20:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1748", + "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1718", "typeString": "contract SecuredTokenTransfer" } }, - "id": 1596, + "id": 2748, "nodeType": "InheritanceSpecifier", - "src": "501:20:12" + "src": "509:20:22" } ], "contractDependencies": [ - 23, - 1688, - 1748 + 1718, + 2740, + 2840 ], "contractKind": "contract", "documentation": "@title Paying Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor. And sends funds after creation to a specified account.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1645, + "id": 2797, "linearizedBaseContracts": [ - 1645, - 1748, - 23, - 1688 + 2797, + 1718, + 2740, + 2840 ], "name": "PayingProxy", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1643, + "id": 2795, "nodeType": "Block", - "src": "1131:390:12", + "src": "1139:390:22", "statements": [ { "condition": { @@ -180,19 +180,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1615, + "id": 2767, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1613, + "id": 2765, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "1145:7:12", + "referencedDeclaration": 2758, + "src": "1153:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -203,14 +203,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1614, + "id": 2766, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1155:1:12", + "src": "1163:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -218,20 +218,20 @@ }, "value": "0" }, - "src": "1145:11:12", + "src": "1153:11:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1642, + "id": 2794, "nodeType": "IfStatement", - "src": "1141:373:12", + "src": "1149:373:22", "trueBody": { - "id": 1641, + "id": 2793, "nodeType": "Block", - "src": "1158:356:12", + "src": "1166:356:22", "statements": [ { "condition": { @@ -240,19 +240,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1620, + "id": 2772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1616, + "id": 2768, "name": "paymentToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "1176:12:12", + "referencedDeclaration": 2756, + "src": "1184:12:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -266,14 +266,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1618, + "id": 2770, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1200:1:12", + "src": "1208:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -289,20 +289,20 @@ "typeString": "int_const 0" } ], - "id": 1617, + "id": 2769, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1192:7:12", + "src": "1200:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1619, + "id": 2771, "isConstant": false, "isLValue": false, "isPure": true, @@ -310,22 +310,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1192:10:12", + "src": "1200:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1176:26:12", + "src": "1184:26:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1639, + "id": 2791, "nodeType": "Block", - "src": "1376:128:12", + "src": "1384:128:22", "statements": [ { "expression": { @@ -336,12 +336,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1632, + "id": 2784, "name": "paymentToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "1416:12:12", + "referencedDeclaration": 2756, + "src": "1424:12:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -349,12 +349,12 @@ }, { "argumentTypes": null, - "id": 1633, + "id": 2785, "name": "funder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "1430:6:12", + "referencedDeclaration": 2754, + "src": "1438:6:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -362,12 +362,12 @@ }, { "argumentTypes": null, - "id": 1634, + "id": 2786, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "1438:7:12", + "referencedDeclaration": 2758, + "src": "1446:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -389,18 +389,18 @@ "typeString": "uint256" } ], - "id": 1631, + "id": 2783, "name": "transferToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1747, - "src": "1402:13:12", + "referencedDeclaration": 1717, + "src": "1410:13:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) returns (bool)" } }, - "id": 1635, + "id": 2787, "isConstant": false, "isLValue": false, "isPure": false, @@ -408,7 +408,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1402:44:12", + "src": "1410:44:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -417,14 +417,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e207769746820746f6b656e", - "id": 1636, + "id": 2788, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1448:40:12", + "src": "1456:40:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_03e5f5a3fbd065ad357c2a53629b6dc528c3f7172cf25b2c45eb26f6e42b59c6", @@ -444,21 +444,21 @@ "typeString": "literal_string \"Could not pay safe creation with token\"" } ], - "id": 1630, + "id": 2782, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1394:7:12", + "referencedDeclaration": 4495, + "src": "1402:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1637, + "id": 2789, "isConstant": false, "isLValue": false, "isPure": false, @@ -466,25 +466,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1394:95:12", + "src": "1402:95:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1638, + "id": 2790, "nodeType": "ExpressionStatement", - "src": "1394:95:12" + "src": "1402:95:22" } ] }, - "id": 1640, + "id": 2792, "nodeType": "IfStatement", - "src": "1172:332:12", + "src": "1180:332:22", "trueBody": { - "id": 1629, + "id": 2781, "nodeType": "Block", - "src": "1204:166:12", + "src": "1212:166:22", "statements": [ { "expression": { @@ -495,12 +495,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1624, + "id": 2776, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "1304:7:12", + "referencedDeclaration": 2758, + "src": "1312:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -516,18 +516,18 @@ ], "expression": { "argumentTypes": null, - "id": 1622, + "id": 2774, "name": "funder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "1292:6:12", + "referencedDeclaration": 2754, + "src": "1300:6:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1623, + "id": 2775, "isConstant": false, "isLValue": false, "isPure": false, @@ -535,13 +535,13 @@ "memberName": "send", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1292:11:12", + "src": "1300:11:22", "typeDescriptions": { "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) returns (bool)" } }, - "id": 1625, + "id": 2777, "isConstant": false, "isLValue": false, "isPure": false, @@ -549,7 +549,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1292:20:12", + "src": "1300:20:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -558,14 +558,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e2077697468206574686572", - "id": 1626, + "id": 2778, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1314:40:12", + "src": "1322:40:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_001db5e0eea429a497fbb276b295895ba66824ab53239e68691cf332a945feab", @@ -585,21 +585,21 @@ "typeString": "literal_string \"Could not pay safe creation with ether\"" } ], - "id": 1621, + "id": 2773, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1284:7:12", + "referencedDeclaration": 4495, + "src": "1292:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1627, + "id": 2779, "isConstant": false, "isLValue": false, "isPure": false, @@ -607,15 +607,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1284:71:12", + "src": "1292:71:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1628, + "id": 2780, "nodeType": "ExpressionStatement", - "src": "1284:71:12" + "src": "1292:71:22" } ] } @@ -626,7 +626,7 @@ ] }, "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.\n @param funder Address that should be paid for the execution of this call\n @param paymentToken Token that should be used for the payment (0 is ETH)\n @param payment Value that should be paid", - "id": 1644, + "id": 2796, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -635,12 +635,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1609, + "id": 2761, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1598, - "src": "1086:11:12", + "referencedDeclaration": 2750, + "src": "1094:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -648,49 +648,49 @@ }, { "argumentTypes": null, - "id": 1610, + "id": 2762, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1600, - "src": "1099:11:12", + "referencedDeclaration": 2752, + "src": "1107:11:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], - "id": 1611, + "id": 2763, "modifierName": { "argumentTypes": null, - "id": 1608, + "id": 2760, "name": "DelegateConstructorProxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "1061:24:12", + "referencedDeclaration": 2740, + "src": "1069:24:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DelegateConstructorProxy_$23_$", + "typeIdentifier": "t_type$_t_contract$_DelegateConstructorProxy_$2740_$", "typeString": "type(contract DelegateConstructorProxy)" } }, "nodeType": "ModifierInvocation", - "src": "1061:50:12" + "src": "1069:50:22" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1607, + "id": 2759, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1598, + "id": 2750, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 1644, - "src": "957:19:12", + "scope": 2796, + "src": "965:19:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -698,10 +698,10 @@ "typeString": "address" }, "typeName": { - "id": 1597, + "id": 2749, "name": "address", "nodeType": "ElementaryTypeName", - "src": "957:7:12", + "src": "965:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -712,11 +712,11 @@ }, { "constant": false, - "id": 1600, + "id": 2752, "name": "initializer", "nodeType": "VariableDeclaration", - "scope": 1644, - "src": "978:17:12", + "scope": 2796, + "src": "986:17:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -724,10 +724,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1599, + "id": 2751, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "978:5:12", + "src": "986:5:22", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -738,11 +738,11 @@ }, { "constant": false, - "id": 1602, + "id": 2754, "name": "funder", "nodeType": "VariableDeclaration", - "scope": 1644, - "src": "997:14:12", + "scope": 2796, + "src": "1005:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -750,10 +750,10 @@ "typeString": "address" }, "typeName": { - "id": 1601, + "id": 2753, "name": "address", "nodeType": "ElementaryTypeName", - "src": "997:7:12", + "src": "1005:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -764,11 +764,11 @@ }, { "constant": false, - "id": 1604, + "id": 2756, "name": "paymentToken", "nodeType": "VariableDeclaration", - "scope": 1644, - "src": "1013:20:12", + "scope": 2796, + "src": "1021:20:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -776,10 +776,10 @@ "typeString": "address" }, "typeName": { - "id": 1603, + "id": 2755, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1013:7:12", + "src": "1021:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -790,11 +790,11 @@ }, { "constant": false, - "id": 1606, + "id": 2758, "name": "payment", "nodeType": "VariableDeclaration", - "scope": 1644, - "src": "1035:15:12", + "scope": 2796, + "src": "1043:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -802,10 +802,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1605, + "id": 2757, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1035:7:12", + "src": "1043:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -815,67 +815,67 @@ "visibility": "internal" } ], - "src": "956:95:12" + "src": "964:95:22" }, "payable": false, "returnParameters": { - "id": 1612, + "id": 2764, "nodeType": "ParameterList", "parameters": [], - "src": "1131:0:12" + "src": "1139:0:22" }, - "scope": 1645, - "src": "945:576:12", + "scope": 2797, + "src": "953:576:22", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1646, - "src": "451:1072:12" + "scope": 2798, + "src": "459:1072:22" } ], - "src": "0:1524:12" + "src": "0:1532:22" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/PayingProxy.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/PayingProxy.sol", "exportedSymbols": { "PayingProxy": [ - 1645 + 2797 ] }, - "id": 1646, + "id": 2798, "nodeType": "SourceUnit", "nodes": [ { - "id": 1590, + "id": 2742, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:12" + "src": "0:23:22" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/DelegateConstructorProxy.sol", - "file": "./DelegateConstructorProxy.sol", - "id": 1591, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", + "file": "../common/SecuredTokenTransfer.sol", + "id": 2743, "nodeType": "ImportDirective", - "scope": 1646, - "sourceUnit": 24, - "src": "24:40:12", + "scope": 2798, + "sourceUnit": 1719, + "src": "24:44:22", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", - "file": "./SecuredTokenTransfer.sol", - "id": 1592, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", + "file": "./DelegateConstructorProxy.sol", + "id": 2744, "nodeType": "ImportDirective", - "scope": 1646, - "sourceUnit": 1749, - "src": "65:36:12", + "scope": 2798, + "sourceUnit": 2741, + "src": "69:40:22", "symbolAliases": [], "unitAlias": "" }, @@ -885,62 +885,62 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1593, + "id": 2745, "name": "DelegateConstructorProxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "475:24:12", + "referencedDeclaration": 2740, + "src": "483:24:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_DelegateConstructorProxy_$23", + "typeIdentifier": "t_contract$_DelegateConstructorProxy_$2740", "typeString": "contract DelegateConstructorProxy" } }, - "id": 1594, + "id": 2746, "nodeType": "InheritanceSpecifier", - "src": "475:24:12" + "src": "483:24:22" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 1595, + "id": 2747, "name": "SecuredTokenTransfer", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1748, - "src": "501:20:12", + "referencedDeclaration": 1718, + "src": "509:20:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1748", + "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1718", "typeString": "contract SecuredTokenTransfer" } }, - "id": 1596, + "id": 2748, "nodeType": "InheritanceSpecifier", - "src": "501:20:12" + "src": "509:20:22" } ], "contractDependencies": [ - 23, - 1688, - 1748 + 1718, + 2740, + 2840 ], "contractKind": "contract", "documentation": "@title Paying Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor. And sends funds after creation to a specified account.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1645, + "id": 2797, "linearizedBaseContracts": [ - 1645, - 1748, - 23, - 1688 + 2797, + 1718, + 2740, + 2840 ], "name": "PayingProxy", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1643, + "id": 2795, "nodeType": "Block", - "src": "1131:390:12", + "src": "1139:390:22", "statements": [ { "condition": { @@ -949,19 +949,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1615, + "id": 2767, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1613, + "id": 2765, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "1145:7:12", + "referencedDeclaration": 2758, + "src": "1153:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -972,14 +972,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1614, + "id": 2766, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1155:1:12", + "src": "1163:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -987,20 +987,20 @@ }, "value": "0" }, - "src": "1145:11:12", + "src": "1153:11:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1642, + "id": 2794, "nodeType": "IfStatement", - "src": "1141:373:12", + "src": "1149:373:22", "trueBody": { - "id": 1641, + "id": 2793, "nodeType": "Block", - "src": "1158:356:12", + "src": "1166:356:22", "statements": [ { "condition": { @@ -1009,19 +1009,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1620, + "id": 2772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1616, + "id": 2768, "name": "paymentToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "1176:12:12", + "referencedDeclaration": 2756, + "src": "1184:12:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1035,14 +1035,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1618, + "id": 2770, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1200:1:12", + "src": "1208:1:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1058,20 +1058,20 @@ "typeString": "int_const 0" } ], - "id": 1617, + "id": 2769, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1192:7:12", + "src": "1200:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1619, + "id": 2771, "isConstant": false, "isLValue": false, "isPure": true, @@ -1079,22 +1079,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1192:10:12", + "src": "1200:10:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1176:26:12", + "src": "1184:26:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1639, + "id": 2791, "nodeType": "Block", - "src": "1376:128:12", + "src": "1384:128:22", "statements": [ { "expression": { @@ -1105,12 +1105,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1632, + "id": 2784, "name": "paymentToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "1416:12:12", + "referencedDeclaration": 2756, + "src": "1424:12:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1118,12 +1118,12 @@ }, { "argumentTypes": null, - "id": 1633, + "id": 2785, "name": "funder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "1430:6:12", + "referencedDeclaration": 2754, + "src": "1438:6:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1131,12 +1131,12 @@ }, { "argumentTypes": null, - "id": 1634, + "id": 2786, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "1438:7:12", + "referencedDeclaration": 2758, + "src": "1446:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1158,18 +1158,18 @@ "typeString": "uint256" } ], - "id": 1631, + "id": 2783, "name": "transferToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1747, - "src": "1402:13:12", + "referencedDeclaration": 1717, + "src": "1410:13:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) returns (bool)" } }, - "id": 1635, + "id": 2787, "isConstant": false, "isLValue": false, "isPure": false, @@ -1177,7 +1177,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1402:44:12", + "src": "1410:44:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1186,14 +1186,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e207769746820746f6b656e", - "id": 1636, + "id": 2788, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1448:40:12", + "src": "1456:40:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_03e5f5a3fbd065ad357c2a53629b6dc528c3f7172cf25b2c45eb26f6e42b59c6", @@ -1213,21 +1213,21 @@ "typeString": "literal_string \"Could not pay safe creation with token\"" } ], - "id": 1630, + "id": 2782, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1394:7:12", + "referencedDeclaration": 4495, + "src": "1402:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1637, + "id": 2789, "isConstant": false, "isLValue": false, "isPure": false, @@ -1235,25 +1235,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1394:95:12", + "src": "1402:95:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1638, + "id": 2790, "nodeType": "ExpressionStatement", - "src": "1394:95:12" + "src": "1402:95:22" } ] }, - "id": 1640, + "id": 2792, "nodeType": "IfStatement", - "src": "1172:332:12", + "src": "1180:332:22", "trueBody": { - "id": 1629, + "id": 2781, "nodeType": "Block", - "src": "1204:166:12", + "src": "1212:166:22", "statements": [ { "expression": { @@ -1264,12 +1264,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1624, + "id": 2776, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "1304:7:12", + "referencedDeclaration": 2758, + "src": "1312:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1285,18 +1285,18 @@ ], "expression": { "argumentTypes": null, - "id": 1622, + "id": 2774, "name": "funder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "1292:6:12", + "referencedDeclaration": 2754, + "src": "1300:6:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1623, + "id": 2775, "isConstant": false, "isLValue": false, "isPure": false, @@ -1304,13 +1304,13 @@ "memberName": "send", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1292:11:12", + "src": "1300:11:22", "typeDescriptions": { "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) returns (bool)" } }, - "id": 1625, + "id": 2777, "isConstant": false, "isLValue": false, "isPure": false, @@ -1318,7 +1318,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1292:20:12", + "src": "1300:20:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1327,14 +1327,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e2077697468206574686572", - "id": 1626, + "id": 2778, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1314:40:12", + "src": "1322:40:22", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_001db5e0eea429a497fbb276b295895ba66824ab53239e68691cf332a945feab", @@ -1354,21 +1354,21 @@ "typeString": "literal_string \"Could not pay safe creation with ether\"" } ], - "id": 1621, + "id": 2773, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1284:7:12", + "referencedDeclaration": 4495, + "src": "1292:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1627, + "id": 2779, "isConstant": false, "isLValue": false, "isPure": false, @@ -1376,15 +1376,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1284:71:12", + "src": "1292:71:22", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1628, + "id": 2780, "nodeType": "ExpressionStatement", - "src": "1284:71:12" + "src": "1292:71:22" } ] } @@ -1395,7 +1395,7 @@ ] }, "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.\n @param funder Address that should be paid for the execution of this call\n @param paymentToken Token that should be used for the payment (0 is ETH)\n @param payment Value that should be paid", - "id": 1644, + "id": 2796, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1404,12 +1404,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1609, + "id": 2761, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1598, - "src": "1086:11:12", + "referencedDeclaration": 2750, + "src": "1094:11:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1417,49 +1417,49 @@ }, { "argumentTypes": null, - "id": 1610, + "id": 2762, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1600, - "src": "1099:11:12", + "referencedDeclaration": 2752, + "src": "1107:11:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], - "id": 1611, + "id": 2763, "modifierName": { "argumentTypes": null, - "id": 1608, + "id": 2760, "name": "DelegateConstructorProxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "1061:24:12", + "referencedDeclaration": 2740, + "src": "1069:24:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DelegateConstructorProxy_$23_$", + "typeIdentifier": "t_type$_t_contract$_DelegateConstructorProxy_$2740_$", "typeString": "type(contract DelegateConstructorProxy)" } }, "nodeType": "ModifierInvocation", - "src": "1061:50:12" + "src": "1069:50:22" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1607, + "id": 2759, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1598, + "id": 2750, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 1644, - "src": "957:19:12", + "scope": 2796, + "src": "965:19:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1467,10 +1467,10 @@ "typeString": "address" }, "typeName": { - "id": 1597, + "id": 2749, "name": "address", "nodeType": "ElementaryTypeName", - "src": "957:7:12", + "src": "965:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1481,11 +1481,11 @@ }, { "constant": false, - "id": 1600, + "id": 2752, "name": "initializer", "nodeType": "VariableDeclaration", - "scope": 1644, - "src": "978:17:12", + "scope": 2796, + "src": "986:17:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1493,10 +1493,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1599, + "id": 2751, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "978:5:12", + "src": "986:5:22", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1507,11 +1507,11 @@ }, { "constant": false, - "id": 1602, + "id": 2754, "name": "funder", "nodeType": "VariableDeclaration", - "scope": 1644, - "src": "997:14:12", + "scope": 2796, + "src": "1005:14:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1519,10 +1519,10 @@ "typeString": "address" }, "typeName": { - "id": 1601, + "id": 2753, "name": "address", "nodeType": "ElementaryTypeName", - "src": "997:7:12", + "src": "1005:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1533,11 +1533,11 @@ }, { "constant": false, - "id": 1604, + "id": 2756, "name": "paymentToken", "nodeType": "VariableDeclaration", - "scope": 1644, - "src": "1013:20:12", + "scope": 2796, + "src": "1021:20:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1545,10 +1545,10 @@ "typeString": "address" }, "typeName": { - "id": 1603, + "id": 2755, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1013:7:12", + "src": "1021:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1559,11 +1559,11 @@ }, { "constant": false, - "id": 1606, + "id": 2758, "name": "payment", "nodeType": "VariableDeclaration", - "scope": 1644, - "src": "1035:15:12", + "scope": 2796, + "src": "1043:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1571,10 +1571,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1605, + "id": 2757, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1035:7:12", + "src": "1043:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1584,27 +1584,27 @@ "visibility": "internal" } ], - "src": "956:95:12" + "src": "964:95:22" }, "payable": false, "returnParameters": { - "id": 1612, + "id": 2764, "nodeType": "ParameterList", "parameters": [], - "src": "1131:0:12" + "src": "1139:0:22" }, - "scope": 1645, - "src": "945:576:12", + "scope": 2797, + "src": "953:576:22", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1646, - "src": "451:1072:12" + "scope": 2798, + "src": "459:1072:22" } ], - "src": "0:1524:12" + "src": "0:1532:22" }, "compiler": { "name": "solc", @@ -1612,5 +1612,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.092Z" + "updatedAt": "2018-09-26T08:32:07.650Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/Proxy.json b/safe-contracts/build/contracts/Proxy.json index 9d740cec..a6307805 100644 --- a/safe-contracts/build/contracts/Proxy.json +++ b/safe-contracts/build/contracts/Proxy.json @@ -46,31 +46,31 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506040516020806102a38339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff16141515156100e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806101386000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820fb8f7addc79801292900c520af66dd86a1f9d0b643abe5d3ef1ac03eeb2d04080029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820fb8f7addc79801292900c520af66dd86a1f9d0b643abe5d3ef1ac03eeb2d04080029", - "sourceMap": "190:1342:13:-;;;508:168;8:9:-1;5:2;;;30:1;27;20:12;5:2;508:168:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;593:1;578:11;:16;;;;570:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;658:11;645:10;;:24;;;;;;;;;;;;;;;;;;508:168;190:1342;;;;;;", - "deployedSourceMap": "190:1342:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;955:42;951:1;945:8;941:57;1030:14;1027:1;1024;1011:34;1125:1;1122;1106:14;1103:1;1091:10;1086:3;1073:54;1161:16;1158:1;1155;1140:38;1206:1;1197:7;1194:14;1191:2;;;1221:16;1218:1;1211:27;1191:2;1263:16;1260:1;1253:27;1426:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1426:104:13;;;;;;;;;;;;;;;;;;;;;;;1302:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302:118:13;;;;;;;;;;;;;;;;;;;;;;;;;;;1426:104;1492:7;1522:1;1515:8;;1426:104;:::o;1302:118::-;1373:7;1403:10;;;;;;;;;;;1396:17;;1302:118;:::o", + "bytecode": "0x608060405234801561001057600080fd5b506040516020806102a38339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff16141515156100e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806101386000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820aeb00387246db55c17338bd7ef9b5b2e6db9a2a81ab640f7b12e1488be97fe9f0029", + "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820aeb00387246db55c17338bd7ef9b5b2e6db9a2a81ab640f7b12e1488be97fe9f0029", + "sourceMap": "190:1342:23:-;;;508:168;8:9:-1;5:2;;;30:1;27;20:12;5:2;508:168:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;593:1;578:11;:16;;;;570:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;658:11;645:10;;:24;;;;;;;;;;;;;;;;;;508:168;190:1342;;;;;;", + "deployedSourceMap": "190:1342:23:-;;;;;;;;;;;;;;;;;;;;;;;;;;955:42;951:1;945:8;941:57;1030:14;1027:1;1024;1011:34;1125:1;1122;1106:14;1103:1;1091:10;1086:3;1073:54;1161:16;1158:1;1155;1140:38;1206:1;1197:7;1194:14;1191:2;;;1221:16;1218:1;1211:27;1191:2;1263:16;1260:1;1253:27;1426:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1426:104:23;;;;;;;;;;;;;;;;;;;;;;;1302:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302:118:23;;;;;;;;;;;;;;;;;;;;;;;;;;;1426:104;1492:7;1522:1;1515:8;;1426:104;:::o;1302:118::-;1373:7;1403:10;;;;;;;;;;;1396:17;;1302:118;:::o", "source": "pragma solidity 0.4.24;\n\n\n/// @title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n/// @author Stefan George - \ncontract Proxy {\n\n // masterCopy always needs to be first declared variable, to ensure that it is at the same location in the contracts to which calls are delegated.\n address masterCopy;\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n constructor(address _masterCopy)\n public\n {\n require(_masterCopy != 0, \"Invalid master copy address provided\");\n masterCopy = _masterCopy;\n }\n\n /// @dev Fallback function forwards all transactions and returns all received return data.\n function ()\n external\n payable\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n calldatacopy(0, 0, calldatasize())\n let success := delegatecall(gas, masterCopy, 0, calldatasize(), 0, 0)\n returndatacopy(0, 0, returndatasize())\n if eq(success, 0) { revert(0, returndatasize()) }\n return(0, returndatasize())\n }\n }\n\n function implementation()\n public\n view\n returns (address)\n {\n return masterCopy;\n }\n\n function proxyType()\n public\n pure\n returns (uint256)\n {\n return 2;\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", "exportedSymbols": { "Proxy": [ - 1688 + 2840 ] }, - "id": 1689, + "id": 2841, "nodeType": "SourceUnit", "nodes": [ { - "id": 1647, + "id": 2799, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:13" + "src": "0:23:23" }, { "baseContracts": [], @@ -78,20 +78,20 @@ "contractKind": "contract", "documentation": "@title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n @author Stefan George - ", "fullyImplemented": true, - "id": 1688, + "id": 2840, "linearizedBaseContracts": [ - 1688 + 2840 ], "name": "Proxy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1649, + "id": 2801, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 1688, - "src": "363:18:13", + "scope": 2840, + "src": "363:18:23", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -99,10 +99,10 @@ "typeString": "address" }, "typeName": { - "id": 1648, + "id": 2800, "name": "address", "nodeType": "ElementaryTypeName", - "src": "363:7:13", + "src": "363:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -113,9 +113,9 @@ }, { "body": { - "id": 1665, + "id": 2817, "nodeType": "Block", - "src": "560:116:13", + "src": "560:116:23", "statements": [ { "expression": { @@ -127,19 +127,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1657, + "id": 2809, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1655, + "id": 2807, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1651, - "src": "578:11:13", + "referencedDeclaration": 2803, + "src": "578:11:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -150,14 +150,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1656, + "id": 2808, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "593:1:13", + "src": "593:1:23", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -165,7 +165,7 @@ }, "value": "0" }, - "src": "578:16:13", + "src": "578:16:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -174,14 +174,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 1658, + "id": 2810, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "596:38:13", + "src": "596:38:23", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", @@ -201,21 +201,21 @@ "typeString": "literal_string \"Invalid master copy address provided\"" } ], - "id": 1654, + "id": 2806, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "570:7:13", + "referencedDeclaration": 4495, + "src": "570:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1659, + "id": 2811, "isConstant": false, "isLValue": false, "isPure": false, @@ -223,32 +223,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "570:65:13", + "src": "570:65:23", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1660, + "id": 2812, "nodeType": "ExpressionStatement", - "src": "570:65:13" + "src": "570:65:23" }, { "expression": { "argumentTypes": null, - "id": 1663, + "id": 2815, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1661, + "id": 2813, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1649, - "src": "645:10:13", + "referencedDeclaration": 2801, + "src": "645:10:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -258,31 +258,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1662, + "id": 2814, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1651, - "src": "658:11:13", + "referencedDeclaration": 2803, + "src": "658:11:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "645:24:13", + "src": "645:24:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1664, + "id": 2816, "nodeType": "ExpressionStatement", - "src": "645:24:13" + "src": "645:24:23" } ] }, "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.", - "id": 1666, + "id": 2818, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -290,16 +290,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1652, + "id": 2804, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1651, + "id": 2803, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 1666, - "src": "520:19:13", + "scope": 2818, + "src": "520:19:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -307,10 +307,10 @@ "typeString": "address" }, "typeName": { - "id": 1650, + "id": 2802, "name": "address", "nodeType": "ElementaryTypeName", - "src": "520:7:13", + "src": "520:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -320,38 +320,38 @@ "visibility": "internal" } ], - "src": "519:21:13" + "src": "519:21:23" }, "payable": false, "returnParameters": { - "id": 1653, + "id": 2805, "nodeType": "ParameterList", "parameters": [], - "src": "560:0:13" + "src": "560:0:23" }, - "scope": 1688, - "src": "508:168:13", + "scope": 2840, + "src": "508:168:23", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1670, + "id": 2822, "nodeType": "Block", - "src": "826:470:13", + "src": "826:470:23", "statements": [ { "externalReferences": [], - "id": 1669, + "id": 2821, "nodeType": "InlineAssembly", "operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n calldatacopy(0, 0, calldatasize())\n let success := delegatecall(gas(), masterCopy, 0, calldatasize(), 0, 0)\n returndatacopy(0, 0, returndatasize())\n if eq(success, 0)\n {\n revert(0, returndatasize())\n }\n return(0, returndatasize())\n}", - "src": "900:396:13" + "src": "900:396:23" } ] }, "documentation": "@dev Fallback function forwards all transactions and returns all received return data.", - "id": 1671, + "id": 2823, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -359,53 +359,53 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1667, + "id": 2819, "nodeType": "ParameterList", "parameters": [], - "src": "786:2:13" + "src": "786:2:23" }, "payable": true, "returnParameters": { - "id": 1668, + "id": 2820, "nodeType": "ParameterList", "parameters": [], - "src": "826:0:13" + "src": "826:0:23" }, - "scope": 1688, - "src": "777:519:13", + "scope": 2840, + "src": "777:519:23", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 1678, + "id": 2830, "nodeType": "Block", - "src": "1386:34:13", + "src": "1386:34:23", "statements": [ { "expression": { "argumentTypes": null, - "id": 1676, + "id": 2828, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1649, - "src": "1403:10:13", + "referencedDeclaration": 2801, + "src": "1403:10:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1675, - "id": 1677, + "functionReturnParameters": 2827, + "id": 2829, "nodeType": "Return", - "src": "1396:17:13" + "src": "1396:17:23" } ] }, "documentation": null, - "id": 1679, + "id": 2831, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -413,23 +413,23 @@ "name": "implementation", "nodeType": "FunctionDefinition", "parameters": { - "id": 1672, + "id": 2824, "nodeType": "ParameterList", "parameters": [], - "src": "1325:2:13" + "src": "1325:2:23" }, "payable": false, "returnParameters": { - "id": 1675, + "id": 2827, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1674, + "id": 2826, "name": "", "nodeType": "VariableDeclaration", - "scope": 1679, - "src": "1373:7:13", + "scope": 2831, + "src": "1373:7:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -437,10 +437,10 @@ "typeString": "address" }, "typeName": { - "id": 1673, + "id": 2825, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1373:7:13", + "src": "1373:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -450,32 +450,32 @@ "visibility": "internal" } ], - "src": "1372:9:13" + "src": "1372:9:23" }, - "scope": 1688, - "src": "1302:118:13", + "scope": 2840, + "src": "1302:118:23", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1686, + "id": 2838, "nodeType": "Block", - "src": "1505:25:13", + "src": "1505:25:23", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "32", - "id": 1684, + "id": 2836, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1522:1:13", + "src": "1522:1:23", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -483,15 +483,15 @@ }, "value": "2" }, - "functionReturnParameters": 1683, - "id": 1685, + "functionReturnParameters": 2835, + "id": 2837, "nodeType": "Return", - "src": "1515:8:13" + "src": "1515:8:23" } ] }, "documentation": null, - "id": 1687, + "id": 2839, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -499,23 +499,23 @@ "name": "proxyType", "nodeType": "FunctionDefinition", "parameters": { - "id": 1680, + "id": 2832, "nodeType": "ParameterList", "parameters": [], - "src": "1444:2:13" + "src": "1444:2:23" }, "payable": false, "returnParameters": { - "id": 1683, + "id": 2835, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1682, + "id": 2834, "name": "", "nodeType": "VariableDeclaration", - "scope": 1687, - "src": "1492:7:13", + "scope": 2839, + "src": "1492:7:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -523,10 +523,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1681, + "id": 2833, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1492:7:13", + "src": "1492:7:23", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -536,40 +536,40 @@ "visibility": "internal" } ], - "src": "1491:9:13" + "src": "1491:9:23" }, - "scope": 1688, - "src": "1426:104:13", + "scope": 2840, + "src": "1426:104:23", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 1689, - "src": "190:1342:13" + "scope": 2841, + "src": "190:1342:23" } ], - "src": "0:1533:13" + "src": "0:1533:23" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", "exportedSymbols": { "Proxy": [ - 1688 + 2840 ] }, - "id": 1689, + "id": 2841, "nodeType": "SourceUnit", "nodes": [ { - "id": 1647, + "id": 2799, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:13" + "src": "0:23:23" }, { "baseContracts": [], @@ -577,20 +577,20 @@ "contractKind": "contract", "documentation": "@title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n @author Stefan George - ", "fullyImplemented": true, - "id": 1688, + "id": 2840, "linearizedBaseContracts": [ - 1688 + 2840 ], "name": "Proxy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1649, + "id": 2801, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 1688, - "src": "363:18:13", + "scope": 2840, + "src": "363:18:23", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -598,10 +598,10 @@ "typeString": "address" }, "typeName": { - "id": 1648, + "id": 2800, "name": "address", "nodeType": "ElementaryTypeName", - "src": "363:7:13", + "src": "363:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -612,9 +612,9 @@ }, { "body": { - "id": 1665, + "id": 2817, "nodeType": "Block", - "src": "560:116:13", + "src": "560:116:23", "statements": [ { "expression": { @@ -626,19 +626,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1657, + "id": 2809, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1655, + "id": 2807, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1651, - "src": "578:11:13", + "referencedDeclaration": 2803, + "src": "578:11:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -649,14 +649,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1656, + "id": 2808, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "593:1:13", + "src": "593:1:23", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -664,7 +664,7 @@ }, "value": "0" }, - "src": "578:16:13", + "src": "578:16:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -673,14 +673,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 1658, + "id": 2810, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "596:38:13", + "src": "596:38:23", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", @@ -700,21 +700,21 @@ "typeString": "literal_string \"Invalid master copy address provided\"" } ], - "id": 1654, + "id": 2806, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "570:7:13", + "referencedDeclaration": 4495, + "src": "570:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1659, + "id": 2811, "isConstant": false, "isLValue": false, "isPure": false, @@ -722,32 +722,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "570:65:13", + "src": "570:65:23", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1660, + "id": 2812, "nodeType": "ExpressionStatement", - "src": "570:65:13" + "src": "570:65:23" }, { "expression": { "argumentTypes": null, - "id": 1663, + "id": 2815, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1661, + "id": 2813, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1649, - "src": "645:10:13", + "referencedDeclaration": 2801, + "src": "645:10:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -757,31 +757,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1662, + "id": 2814, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1651, - "src": "658:11:13", + "referencedDeclaration": 2803, + "src": "658:11:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "645:24:13", + "src": "645:24:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1664, + "id": 2816, "nodeType": "ExpressionStatement", - "src": "645:24:13" + "src": "645:24:23" } ] }, "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.", - "id": 1666, + "id": 2818, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -789,16 +789,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1652, + "id": 2804, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1651, + "id": 2803, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 1666, - "src": "520:19:13", + "scope": 2818, + "src": "520:19:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -806,10 +806,10 @@ "typeString": "address" }, "typeName": { - "id": 1650, + "id": 2802, "name": "address", "nodeType": "ElementaryTypeName", - "src": "520:7:13", + "src": "520:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -819,38 +819,38 @@ "visibility": "internal" } ], - "src": "519:21:13" + "src": "519:21:23" }, "payable": false, "returnParameters": { - "id": 1653, + "id": 2805, "nodeType": "ParameterList", "parameters": [], - "src": "560:0:13" + "src": "560:0:23" }, - "scope": 1688, - "src": "508:168:13", + "scope": 2840, + "src": "508:168:23", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1670, + "id": 2822, "nodeType": "Block", - "src": "826:470:13", + "src": "826:470:23", "statements": [ { "externalReferences": [], - "id": 1669, + "id": 2821, "nodeType": "InlineAssembly", "operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n calldatacopy(0, 0, calldatasize())\n let success := delegatecall(gas(), masterCopy, 0, calldatasize(), 0, 0)\n returndatacopy(0, 0, returndatasize())\n if eq(success, 0)\n {\n revert(0, returndatasize())\n }\n return(0, returndatasize())\n}", - "src": "900:396:13" + "src": "900:396:23" } ] }, "documentation": "@dev Fallback function forwards all transactions and returns all received return data.", - "id": 1671, + "id": 2823, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -858,53 +858,53 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1667, + "id": 2819, "nodeType": "ParameterList", "parameters": [], - "src": "786:2:13" + "src": "786:2:23" }, "payable": true, "returnParameters": { - "id": 1668, + "id": 2820, "nodeType": "ParameterList", "parameters": [], - "src": "826:0:13" + "src": "826:0:23" }, - "scope": 1688, - "src": "777:519:13", + "scope": 2840, + "src": "777:519:23", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 1678, + "id": 2830, "nodeType": "Block", - "src": "1386:34:13", + "src": "1386:34:23", "statements": [ { "expression": { "argumentTypes": null, - "id": 1676, + "id": 2828, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1649, - "src": "1403:10:13", + "referencedDeclaration": 2801, + "src": "1403:10:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1675, - "id": 1677, + "functionReturnParameters": 2827, + "id": 2829, "nodeType": "Return", - "src": "1396:17:13" + "src": "1396:17:23" } ] }, "documentation": null, - "id": 1679, + "id": 2831, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -912,23 +912,23 @@ "name": "implementation", "nodeType": "FunctionDefinition", "parameters": { - "id": 1672, + "id": 2824, "nodeType": "ParameterList", "parameters": [], - "src": "1325:2:13" + "src": "1325:2:23" }, "payable": false, "returnParameters": { - "id": 1675, + "id": 2827, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1674, + "id": 2826, "name": "", "nodeType": "VariableDeclaration", - "scope": 1679, - "src": "1373:7:13", + "scope": 2831, + "src": "1373:7:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -936,10 +936,10 @@ "typeString": "address" }, "typeName": { - "id": 1673, + "id": 2825, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1373:7:13", + "src": "1373:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -949,32 +949,32 @@ "visibility": "internal" } ], - "src": "1372:9:13" + "src": "1372:9:23" }, - "scope": 1688, - "src": "1302:118:13", + "scope": 2840, + "src": "1302:118:23", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1686, + "id": 2838, "nodeType": "Block", - "src": "1505:25:13", + "src": "1505:25:23", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "32", - "id": 1684, + "id": 2836, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1522:1:13", + "src": "1522:1:23", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -982,15 +982,15 @@ }, "value": "2" }, - "functionReturnParameters": 1683, - "id": 1685, + "functionReturnParameters": 2835, + "id": 2837, "nodeType": "Return", - "src": "1515:8:13" + "src": "1515:8:23" } ] }, "documentation": null, - "id": 1687, + "id": 2839, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -998,23 +998,23 @@ "name": "proxyType", "nodeType": "FunctionDefinition", "parameters": { - "id": 1680, + "id": 2832, "nodeType": "ParameterList", "parameters": [], - "src": "1444:2:13" + "src": "1444:2:23" }, "payable": false, "returnParameters": { - "id": 1683, + "id": 2835, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1682, + "id": 2834, "name": "", "nodeType": "VariableDeclaration", - "scope": 1687, - "src": "1492:7:13", + "scope": 2839, + "src": "1492:7:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1022,10 +1022,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1681, + "id": 2833, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1492:7:13", + "src": "1492:7:23", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1035,20 +1035,20 @@ "visibility": "internal" } ], - "src": "1491:9:13" + "src": "1491:9:23" }, - "scope": 1688, - "src": "1426:104:13", + "scope": 2840, + "src": "1426:104:23", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 1689, - "src": "190:1342:13" + "scope": 2841, + "src": "190:1342:23" } ], - "src": "0:1533:13" + "src": "0:1533:23" }, "compiler": { "name": "solc", @@ -1056,5 +1056,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.092Z" + "updatedAt": "2018-09-26T08:32:07.650Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/ProxyFactory.json b/safe-contracts/build/contracts/ProxyFactory.json index d22a16a0..c970af17 100644 --- a/safe-contracts/build/contracts/ProxyFactory.json +++ b/safe-contracts/build/contracts/ProxyFactory.json @@ -37,54 +37,54 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506104dd806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806361b69abd14610046575b600080fd5b34801561005257600080fd5b506100cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061010f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008261011a6101fe565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015801561016c573d6000803e3d6000fd5b5090506000825111156101955760008060008451602086016000865af1141561019457600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a192915050565b6040516102a38061020f833901905600608060405234801561001057600080fd5b506040516020806102a38339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff16141515156100e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806101386000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820fb8f7addc79801292900c520af66dd86a1f9d0b643abe5d3ef1ac03eeb2d04080029a165627a7a72305820c742bd15271cf4492803c598458497f17945465dfdcebd0ab4ff208e21d7becf0029", - "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806361b69abd14610046575b600080fd5b34801561005257600080fd5b506100cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061010f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008261011a6101fe565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015801561016c573d6000803e3d6000fd5b5090506000825111156101955760008060008451602086016000865af1141561019457600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a192915050565b6040516102a38061020f833901905600608060405234801561001057600080fd5b506040516020806102a38339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff16141515156100e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806101386000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820fb8f7addc79801292900c520af66dd86a1f9d0b643abe5d3ef1ac03eeb2d04080029a165627a7a72305820c742bd15271cf4492803c598458497f17945465dfdcebd0ab4ff208e21d7becf0029", - "sourceMap": "225:725:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;225:725:14;;;;;;;", - "deployedSourceMap": "225:725:14:-;;;;;;;;;;;;;;;;;;;;;;;;532:416;;8:9:-1;5:2;;;30:1;27;20:12;5:2;532:416:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;617:11;662:10;652:21;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;652:21:14;644:29;;701:1;687:4;:11;:15;683:237;;;874:1;870;867;860:4;854:11;847:4;841;837:15;834:1;827:5;822:3;817:55;814:62;811:2;;;889:1;886;879:12;811:2;793:114;921:20;935:5;921:20;;;;;;;;;;;;;;;;;;;;;;532:416;;;;:::o;225:725::-;;;;;;;;;;:::o", + "bytecode": "0x608060405234801561001057600080fd5b506104dd806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806361b69abd14610046575b600080fd5b34801561005257600080fd5b506100cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061010f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008261011a6101fe565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015801561016c573d6000803e3d6000fd5b5090506000825111156101955760008060008451602086016000865af1141561019457600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a192915050565b6040516102a38061020f833901905600608060405234801561001057600080fd5b506040516020806102a38339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff16141515156100e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806101386000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820aeb00387246db55c17338bd7ef9b5b2e6db9a2a81ab640f7b12e1488be97fe9f0029a165627a7a72305820c4ef6f2e193e86bdff50d07c71b811741acb9e772138cc86bd3a020d8cb1581d0029", + "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806361b69abd14610046575b600080fd5b34801561005257600080fd5b506100cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061010f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008261011a6101fe565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015801561016c573d6000803e3d6000fd5b5090506000825111156101955760008060008451602086016000865af1141561019457600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a192915050565b6040516102a38061020f833901905600608060405234801561001057600080fd5b506040516020806102a38339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff16141515156100e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806101386000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820aeb00387246db55c17338bd7ef9b5b2e6db9a2a81ab640f7b12e1488be97fe9f0029a165627a7a72305820c4ef6f2e193e86bdff50d07c71b811741acb9e772138cc86bd3a020d8cb1581d0029", + "sourceMap": "225:725:24:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;225:725:24;;;;;;;", + "deployedSourceMap": "225:725:24:-;;;;;;;;;;;;;;;;;;;;;;;;532:416;;8:9:-1;5:2;;;30:1;27;20:12;5:2;532:416:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;617:11;662:10;652:21;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;652:21:24;644:29;;701:1;687:4;:11;:15;683:237;;;874:1;870;867;860:4;854:11;847:4;841;837:15;834:1;827:5;822:3;817:55;814:62;811:2;;;889:1;886;879:12;811:2;793:114;921:20;935:5;921:20;;;;;;;;;;;;;;;;;;;;;;532:416;;;;:::o;225:725::-;;;;;;;;;;:::o", "source": "pragma solidity 0.4.24;\nimport \"./Proxy.sol\";\n\n\n/// @title Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n/// @author Stefan George - \ncontract ProxyFactory {\n\n event ProxyCreation(Proxy proxy);\n\n /// @dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n /// @param masterCopy Address of master copy.\n /// @param data Payload for message call sent to new proxy contract.\n function createProxy(address masterCopy, bytes data)\n public\n returns (Proxy proxy)\n {\n proxy = new Proxy(masterCopy);\n if (data.length > 0)\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n if eq(call(gas, proxy, 0, add(data, 0x20), mload(data), 0, 0), 0) { revert(0, 0) }\n }\n emit ProxyCreation(proxy);\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ProxyFactory.sol", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/ProxyFactory.sol", "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ProxyFactory.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/ProxyFactory.sol", "exportedSymbols": { "ProxyFactory": [ - 1723 + 2875 ] }, - "id": 1724, + "id": 2876, "nodeType": "SourceUnit", "nodes": [ { - "id": 1690, + "id": 2842, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:14" + "src": "0:23:24" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", "file": "./Proxy.sol", - "id": 1691, + "id": 2843, "nodeType": "ImportDirective", - "scope": 1724, - "sourceUnit": 1689, - "src": "24:21:14", + "scope": 2876, + "sourceUnit": 2841, + "src": "24:21:24", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [ - 1688 + 2840 ], "contractKind": "contract", "documentation": "@title Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @author Stefan George - ", "fullyImplemented": true, - "id": 1723, + "id": 2875, "linearizedBaseContracts": [ - 1723 + 2875 ], "name": "ProxyFactory", "nodeType": "ContractDefinition", @@ -92,36 +92,36 @@ { "anonymous": false, "documentation": null, - "id": 1695, + "id": 2847, "name": "ProxyCreation", "nodeType": "EventDefinition", "parameters": { - "id": 1694, + "id": 2846, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1693, + "id": 2845, "indexed": false, "name": "proxy", "nodeType": "VariableDeclaration", - "scope": 1695, - "src": "274:11:14", + "scope": 2847, + "src": "274:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, - "id": 1692, + "id": 2844, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1688, - "src": "274:5:14", + "referencedDeclaration": 2840, + "src": "274:5:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } }, @@ -129,34 +129,34 @@ "visibility": "internal" } ], - "src": "273:13:14" + "src": "273:13:24" }, - "src": "254:33:14" + "src": "254:33:24" }, { "body": { - "id": 1721, + "id": 2873, "nodeType": "Block", - "src": "634:314:14", + "src": "634:314:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 1709, + "id": 2861, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1704, + "id": 2856, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1702, - "src": "644:5:14", + "referencedDeclaration": 2854, + "src": "644:5:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } }, @@ -167,12 +167,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1707, + "id": 2859, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1697, - "src": "662:10:14", + "referencedDeclaration": 2849, + "src": "662:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -186,31 +186,31 @@ "typeString": "address" } ], - "id": 1706, + "id": 2858, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "652:9:14", + "src": "652:9:24", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$1688_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$2840_$", "typeString": "function (address) returns (contract Proxy)" }, "typeName": { "contractScope": null, - "id": 1705, + "id": 2857, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1688, - "src": "656:5:14", + "referencedDeclaration": 2840, + "src": "656:5:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } } }, - "id": 1708, + "id": 2860, "isConstant": false, "isLValue": false, "isPure": false, @@ -218,21 +218,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "652:21:14", + "src": "652:21:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } }, - "src": "644:29:14", + "src": "644:29:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } }, - "id": 1710, + "id": 2862, "nodeType": "ExpressionStatement", - "src": "644:29:14" + "src": "644:29:24" }, { "condition": { @@ -241,7 +241,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1714, + "id": 2866, "isConstant": false, "isLValue": false, "isPure": false, @@ -250,18 +250,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1711, + "id": 2863, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1699, - "src": "687:4:14", + "referencedDeclaration": 2851, + "src": "687:4:24", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1712, + "id": 2864, "isConstant": false, "isLValue": false, "isPure": false, @@ -269,7 +269,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "687:11:14", + "src": "687:11:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -280,14 +280,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1713, + "id": 2865, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "701:1:14", + "src": "701:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -295,50 +295,50 @@ }, "value": "0" }, - "src": "687:15:14", + "src": "687:15:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1716, + "id": 2868, "nodeType": "IfStatement", - "src": "683:237:14", + "src": "683:237:24", "trueBody": { "externalReferences": [ { "data": { - "declaration": 1699, + "declaration": 2851, "isOffset": false, "isSlot": false, - "src": "860:4:14", + "src": "860:4:24", "valueSize": 1 } }, { "proxy": { - "declaration": 1702, + "declaration": 2854, "isOffset": false, "isSlot": false, - "src": "827:5:14", + "src": "827:5:24", "valueSize": 1 } }, { "data": { - "declaration": 1699, + "declaration": 2851, "isOffset": false, "isSlot": false, - "src": "841:4:14", + "src": "841:4:24", "valueSize": 1 } } ], - "id": 1715, + "id": 2867, "nodeType": "InlineAssembly", "operations": "{\n if eq(call(gas(), proxy, 0, add(data, 0x20), mload(data), 0, 0), 0)\n {\n revert(0, 0)\n }\n}", - "src": "784:136:14" + "src": "784:136:24" } }, { @@ -347,14 +347,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1718, + "id": 2870, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1702, - "src": "935:5:14", + "referencedDeclaration": 2854, + "src": "935:5:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } } @@ -362,22 +362,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } ], - "id": 1717, + "id": 2869, "name": "ProxyCreation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1695, - "src": "921:13:14", + "referencedDeclaration": 2847, + "src": "921:13:24", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$1688_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$2840_$returns$__$", "typeString": "function (contract Proxy)" } }, - "id": 1719, + "id": 2871, "isConstant": false, "isLValue": false, "isPure": false, @@ -385,20 +385,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "921:20:14", + "src": "921:20:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1720, + "id": 2872, "nodeType": "EmitStatement", - "src": "916:25:14" + "src": "916:25:24" } ] }, "documentation": "@dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @param masterCopy Address of master copy.\n @param data Payload for message call sent to new proxy contract.", - "id": 1722, + "id": 2874, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -406,16 +406,16 @@ "name": "createProxy", "nodeType": "FunctionDefinition", "parameters": { - "id": 1700, + "id": 2852, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1697, + "id": 2849, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 1722, - "src": "553:18:14", + "scope": 2874, + "src": "553:18:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -423,10 +423,10 @@ "typeString": "address" }, "typeName": { - "id": 1696, + "id": 2848, "name": "address", "nodeType": "ElementaryTypeName", - "src": "553:7:14", + "src": "553:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -437,11 +437,11 @@ }, { "constant": false, - "id": 1699, + "id": 2851, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1722, - "src": "573:10:14", + "scope": 2874, + "src": "573:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -449,10 +449,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1698, + "id": 2850, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "573:5:14", + "src": "573:5:24", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -462,35 +462,35 @@ "visibility": "internal" } ], - "src": "552:32:14" + "src": "552:32:24" }, "payable": false, "returnParameters": { - "id": 1703, + "id": 2855, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1702, + "id": 2854, "name": "proxy", "nodeType": "VariableDeclaration", - "scope": 1722, - "src": "617:11:14", + "scope": 2874, + "src": "617:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, - "id": 1701, + "id": 2853, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1688, - "src": "617:5:14", + "referencedDeclaration": 2840, + "src": "617:5:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } }, @@ -498,63 +498,63 @@ "visibility": "internal" } ], - "src": "616:13:14" + "src": "616:13:24" }, - "scope": 1723, - "src": "532:416:14", + "scope": 2875, + "src": "532:416:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1724, - "src": "225:725:14" + "scope": 2876, + "src": "225:725:24" } ], - "src": "0:951:14" + "src": "0:951:24" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ProxyFactory.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/ProxyFactory.sol", "exportedSymbols": { "ProxyFactory": [ - 1723 + 2875 ] }, - "id": 1724, + "id": 2876, "nodeType": "SourceUnit", "nodes": [ { - "id": 1690, + "id": 2842, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:14" + "src": "0:23:24" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", "file": "./Proxy.sol", - "id": 1691, + "id": 2843, "nodeType": "ImportDirective", - "scope": 1724, - "sourceUnit": 1689, - "src": "24:21:14", + "scope": 2876, + "sourceUnit": 2841, + "src": "24:21:24", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [ - 1688 + 2840 ], "contractKind": "contract", "documentation": "@title Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @author Stefan George - ", "fullyImplemented": true, - "id": 1723, + "id": 2875, "linearizedBaseContracts": [ - 1723 + 2875 ], "name": "ProxyFactory", "nodeType": "ContractDefinition", @@ -562,36 +562,36 @@ { "anonymous": false, "documentation": null, - "id": 1695, + "id": 2847, "name": "ProxyCreation", "nodeType": "EventDefinition", "parameters": { - "id": 1694, + "id": 2846, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1693, + "id": 2845, "indexed": false, "name": "proxy", "nodeType": "VariableDeclaration", - "scope": 1695, - "src": "274:11:14", + "scope": 2847, + "src": "274:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, - "id": 1692, + "id": 2844, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1688, - "src": "274:5:14", + "referencedDeclaration": 2840, + "src": "274:5:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } }, @@ -599,34 +599,34 @@ "visibility": "internal" } ], - "src": "273:13:14" + "src": "273:13:24" }, - "src": "254:33:14" + "src": "254:33:24" }, { "body": { - "id": 1721, + "id": 2873, "nodeType": "Block", - "src": "634:314:14", + "src": "634:314:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 1709, + "id": 2861, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1704, + "id": 2856, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1702, - "src": "644:5:14", + "referencedDeclaration": 2854, + "src": "644:5:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } }, @@ -637,12 +637,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1707, + "id": 2859, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1697, - "src": "662:10:14", + "referencedDeclaration": 2849, + "src": "662:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -656,31 +656,31 @@ "typeString": "address" } ], - "id": 1706, + "id": 2858, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "652:9:14", + "src": "652:9:24", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$1688_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$2840_$", "typeString": "function (address) returns (contract Proxy)" }, "typeName": { "contractScope": null, - "id": 1705, + "id": 2857, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1688, - "src": "656:5:14", + "referencedDeclaration": 2840, + "src": "656:5:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } } }, - "id": 1708, + "id": 2860, "isConstant": false, "isLValue": false, "isPure": false, @@ -688,21 +688,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "652:21:14", + "src": "652:21:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } }, - "src": "644:29:14", + "src": "644:29:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } }, - "id": 1710, + "id": 2862, "nodeType": "ExpressionStatement", - "src": "644:29:14" + "src": "644:29:24" }, { "condition": { @@ -711,7 +711,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1714, + "id": 2866, "isConstant": false, "isLValue": false, "isPure": false, @@ -720,18 +720,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1711, + "id": 2863, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1699, - "src": "687:4:14", + "referencedDeclaration": 2851, + "src": "687:4:24", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1712, + "id": 2864, "isConstant": false, "isLValue": false, "isPure": false, @@ -739,7 +739,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "687:11:14", + "src": "687:11:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -750,14 +750,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1713, + "id": 2865, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "701:1:14", + "src": "701:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -765,50 +765,50 @@ }, "value": "0" }, - "src": "687:15:14", + "src": "687:15:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1716, + "id": 2868, "nodeType": "IfStatement", - "src": "683:237:14", + "src": "683:237:24", "trueBody": { "externalReferences": [ { "data": { - "declaration": 1699, + "declaration": 2851, "isOffset": false, "isSlot": false, - "src": "860:4:14", + "src": "860:4:24", "valueSize": 1 } }, { "proxy": { - "declaration": 1702, + "declaration": 2854, "isOffset": false, "isSlot": false, - "src": "827:5:14", + "src": "827:5:24", "valueSize": 1 } }, { "data": { - "declaration": 1699, + "declaration": 2851, "isOffset": false, "isSlot": false, - "src": "841:4:14", + "src": "841:4:24", "valueSize": 1 } } ], - "id": 1715, + "id": 2867, "nodeType": "InlineAssembly", "operations": "{\n if eq(call(gas(), proxy, 0, add(data, 0x20), mload(data), 0, 0), 0)\n {\n revert(0, 0)\n }\n}", - "src": "784:136:14" + "src": "784:136:24" } }, { @@ -817,14 +817,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1718, + "id": 2870, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1702, - "src": "935:5:14", + "referencedDeclaration": 2854, + "src": "935:5:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } } @@ -832,22 +832,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } ], - "id": 1717, + "id": 2869, "name": "ProxyCreation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1695, - "src": "921:13:14", + "referencedDeclaration": 2847, + "src": "921:13:24", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$1688_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$2840_$returns$__$", "typeString": "function (contract Proxy)" } }, - "id": 1719, + "id": 2871, "isConstant": false, "isLValue": false, "isPure": false, @@ -855,20 +855,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "921:20:14", + "src": "921:20:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1720, + "id": 2872, "nodeType": "EmitStatement", - "src": "916:25:14" + "src": "916:25:24" } ] }, "documentation": "@dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @param masterCopy Address of master copy.\n @param data Payload for message call sent to new proxy contract.", - "id": 1722, + "id": 2874, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -876,16 +876,16 @@ "name": "createProxy", "nodeType": "FunctionDefinition", "parameters": { - "id": 1700, + "id": 2852, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1697, + "id": 2849, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 1722, - "src": "553:18:14", + "scope": 2874, + "src": "553:18:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -893,10 +893,10 @@ "typeString": "address" }, "typeName": { - "id": 1696, + "id": 2848, "name": "address", "nodeType": "ElementaryTypeName", - "src": "553:7:14", + "src": "553:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -907,11 +907,11 @@ }, { "constant": false, - "id": 1699, + "id": 2851, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1722, - "src": "573:10:14", + "scope": 2874, + "src": "573:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -919,10 +919,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1698, + "id": 2850, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "573:5:14", + "src": "573:5:24", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -932,35 +932,35 @@ "visibility": "internal" } ], - "src": "552:32:14" + "src": "552:32:24" }, "payable": false, "returnParameters": { - "id": 1703, + "id": 2855, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1702, + "id": 2854, "name": "proxy", "nodeType": "VariableDeclaration", - "scope": 1722, - "src": "617:11:14", + "scope": 2874, + "src": "617:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, - "id": 1701, + "id": 2853, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1688, - "src": "617:5:14", + "referencedDeclaration": 2840, + "src": "617:5:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1688", + "typeIdentifier": "t_contract$_Proxy_$2840", "typeString": "contract Proxy" } }, @@ -968,20 +968,20 @@ "visibility": "internal" } ], - "src": "616:13:14" + "src": "616:13:24" }, - "scope": 1723, - "src": "532:416:14", + "scope": 2875, + "src": "532:416:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1724, - "src": "225:725:14" + "scope": 2876, + "src": "225:725:24" } ], - "src": "0:951:14" + "src": "0:951:24" }, "compiler": { "name": "solc", @@ -991,16 +991,10 @@ "4": { "events": {}, "links": {}, - "address": "0x03991c5ca1c3057aac2a76d3d83d69afbc6947f7", - "transactionHash": "0x8ef777566f16cc1e7271862d04de617bfdd7d30005d78c895a5aa7b48fd2c30d" - }, - "1534750848541": { - "events": {}, - "links": {}, - "address": "0xb09bcc172050fbd4562da8b229cf3e45dc3045a6", - "transactionHash": "0xe665fef8b7b04e5623d1fc3cdd86dadbbda63ef832c7020e0412343759bbae12" + "address": "0x048da221a8179b416c491b8f20a9b872dd9b5580", + "transactionHash": "0xc9ddb90b16b96520abcd960e740b4d0f9763342a58f97d217bac2e3145f3f8d0" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:50:29.679Z" + "updatedAt": "2018-09-26T08:56:03.700Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/SecuredTokenTransfer.json b/safe-contracts/build/contracts/SecuredTokenTransfer.json index 67aafddc..9f919780 100644 --- a/safe-contracts/build/contracts/SecuredTokenTransfer.json +++ b/safe-contracts/build/contracts/SecuredTokenTransfer.json @@ -1,31 +1,31 @@ { "contractName": "SecuredTokenTransfer", "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058203704d691dd103c6cda573e69dcd48a2de4d0edf672da44096a50180687c79a770029", - "deployedBytecode": "0x6080604052600080fd00a165627a7a723058203704d691dd103c6cda573e69dcd48a2de4d0edf672da44096a50180687c79a770029", - "sourceMap": "133:1051:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;133:1051:15;;;;;;;", - "deployedSourceMap": "133:1051:15:-;;;;;", + "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820ba27992b3b19c83b563b2634ef4e6e4b21311676e3d2a13b83cfd34834dfb8510029", + "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820ba27992b3b19c83b563b2634ef4e6e4b21311676e3d2a13b83cfd34834dfb8510029", + "sourceMap": "133:1051:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;133:1051:10;;;;;;;", + "deployedSourceMap": "133:1051:10:-;;;;;", "source": "pragma solidity 0.4.24;\n\n\n/// @title SecuredTokenTransfer - Secure token transfer\n/// @author Richard Meissner - \ncontract SecuredTokenTransfer {\n\n /// @dev Transfers a token and returns if it was a success\n /// @param token Token that should be transferred\n /// @param receiver Receiver to whom the token should be transferred\n /// @param amount The amount of tokens that should be transferred\n function transferToken (\n address token, \n address receiver,\n uint256 amount\n )\n internal\n returns (bool transferred)\n {\n bytes memory data = abi.encodeWithSignature(\"transfer(address,uint256)\", receiver, amount);\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let success := call(sub(gas, 10000), token, 0, add(data, 0x20), mload(data), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize)\n switch returndatasize \n case 0 { transferred := success }\n case 0x20 { transferred := iszero(or(iszero(success), iszero(mload(ptr)))) }\n default { transferred := 0 }\n }\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", "exportedSymbols": { "SecuredTokenTransfer": [ - 1748 + 1718 ] }, - "id": 1749, + "id": 1719, "nodeType": "SourceUnit", "nodes": [ { - "id": 1725, + "id": 1695, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:15" + "src": "0:23:10" }, { "baseContracts": [], @@ -33,31 +33,31 @@ "contractKind": "contract", "documentation": "@title SecuredTokenTransfer - Secure token transfer\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1748, + "id": 1718, "linearizedBaseContracts": [ - 1748 + 1718 ], "name": "SecuredTokenTransfer", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1746, + "id": 1716, "nodeType": "Block", - "src": "590:592:15", + "src": "590:592:10", "statements": [ { "assignments": [ - 1737 + 1707 ], "declarations": [ { "constant": false, - "id": 1737, + "id": 1707, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1747, - "src": "600:17:15", + "scope": 1717, + "src": "600:17:10", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -65,10 +65,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1736, + "id": 1706, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "600:5:15", + "src": "600:5:10", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -78,21 +78,21 @@ "visibility": "internal" } ], - "id": 1744, + "id": 1714, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 1740, + "id": 1710, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "644:27:15", + "src": "644:27:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", @@ -102,12 +102,12 @@ }, { "argumentTypes": null, - "id": 1741, + "id": 1711, "name": "receiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "673:8:15", + "referencedDeclaration": 1699, + "src": "673:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -115,12 +115,12 @@ }, { "argumentTypes": null, - "id": 1742, + "id": 1712, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1731, - "src": "683:6:15", + "referencedDeclaration": 1701, + "src": "683:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -144,18 +144,18 @@ ], "expression": { "argumentTypes": null, - "id": 1738, + "id": 1708, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "620:3:15", + "referencedDeclaration": 4478, + "src": "620:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 1739, + "id": 1709, "isConstant": false, "isLValue": false, "isPure": true, @@ -163,13 +163,13 @@ "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "620:23:15", + "src": "620:23:10", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 1743, + "id": 1713, "isConstant": false, "isLValue": false, "isPure": false, @@ -177,81 +177,81 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "620:70:15", + "src": "620:70:10", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "600:90:15" + "src": "600:90:10" }, { "externalReferences": [ { "transferred": { - "declaration": 1734, + "declaration": 1704, "isOffset": false, "isSlot": false, - "src": "1061:11:15", + "src": "1061:11:10", "valueSize": 1 } }, { "data": { - "declaration": 1737, + "declaration": 1707, "isOffset": false, "isSlot": false, - "src": "857:4:15", + "src": "857:4:10", "valueSize": 1 } }, { "token": { - "declaration": 1727, + "declaration": 1697, "isOffset": false, "isSlot": false, - "src": "824:5:15", + "src": "824:5:10", "valueSize": 1 } }, { "data": { - "declaration": 1737, + "declaration": 1707, "isOffset": false, "isSlot": false, - "src": "838:4:15", + "src": "838:4:10", "valueSize": 1 } }, { "transferred": { - "declaration": 1734, + "declaration": 1704, "isOffset": false, "isSlot": false, - "src": "1012:11:15", + "src": "1012:11:10", "valueSize": 1 } }, { "transferred": { - "declaration": 1734, + "declaration": 1704, "isOffset": false, "isSlot": false, - "src": "1148:11:15", + "src": "1148:11:10", "valueSize": 1 } } ], - "id": 1745, + "id": 1715, "nodeType": "InlineAssembly", "operations": "{\n let success := call(sub(gas(), 10000), token, 0, add(data, 0x20), mload(data), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n switch returndatasize()\n case 0 {\n transferred := success\n }\n case 0x20 {\n transferred := iszero(or(iszero(success), iszero(mload(ptr))))\n }\n default {\n transferred := 0\n }\n}", - "src": "764:418:15" + "src": "764:418:10" } ] }, "documentation": "@dev Transfers a token and returns if it was a success\n @param token Token that should be transferred\n @param receiver Receiver to whom the token should be transferred\n @param amount The amount of tokens that should be transferred", - "id": 1747, + "id": 1717, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -259,16 +259,16 @@ "name": "transferToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 1732, + "id": 1702, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1727, + "id": 1697, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1747, - "src": "463:13:15", + "scope": 1717, + "src": "463:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -276,10 +276,10 @@ "typeString": "address" }, "typeName": { - "id": 1726, + "id": 1696, "name": "address", "nodeType": "ElementaryTypeName", - "src": "463:7:15", + "src": "463:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -290,11 +290,11 @@ }, { "constant": false, - "id": 1729, + "id": 1699, "name": "receiver", "nodeType": "VariableDeclaration", - "scope": 1747, - "src": "487:16:15", + "scope": 1717, + "src": "487:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -302,10 +302,10 @@ "typeString": "address" }, "typeName": { - "id": 1728, + "id": 1698, "name": "address", "nodeType": "ElementaryTypeName", - "src": "487:7:15", + "src": "487:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -316,11 +316,11 @@ }, { "constant": false, - "id": 1731, + "id": 1701, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1747, - "src": "513:14:15", + "scope": 1717, + "src": "513:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -328,10 +328,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1730, + "id": 1700, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "513:7:15", + "src": "513:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -341,20 +341,20 @@ "visibility": "internal" } ], - "src": "453:80:15" + "src": "453:80:10" }, "payable": false, "returnParameters": { - "id": 1735, + "id": 1705, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1734, + "id": 1704, "name": "transferred", "nodeType": "VariableDeclaration", - "scope": 1747, - "src": "568:16:15", + "scope": 1717, + "src": "568:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -362,10 +362,10 @@ "typeString": "bool" }, "typeName": { - "id": 1733, + "id": 1703, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "568:4:15", + "src": "568:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -375,40 +375,40 @@ "visibility": "internal" } ], - "src": "567:18:15" + "src": "567:18:10" }, - "scope": 1748, - "src": "430:752:15", + "scope": 1718, + "src": "430:752:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 1749, - "src": "133:1051:15" + "scope": 1719, + "src": "133:1051:10" } ], - "src": "0:1185:15" + "src": "0:1185:10" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", "exportedSymbols": { "SecuredTokenTransfer": [ - 1748 + 1718 ] }, - "id": 1749, + "id": 1719, "nodeType": "SourceUnit", "nodes": [ { - "id": 1725, + "id": 1695, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:15" + "src": "0:23:10" }, { "baseContracts": [], @@ -416,31 +416,31 @@ "contractKind": "contract", "documentation": "@title SecuredTokenTransfer - Secure token transfer\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1748, + "id": 1718, "linearizedBaseContracts": [ - 1748 + 1718 ], "name": "SecuredTokenTransfer", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1746, + "id": 1716, "nodeType": "Block", - "src": "590:592:15", + "src": "590:592:10", "statements": [ { "assignments": [ - 1737 + 1707 ], "declarations": [ { "constant": false, - "id": 1737, + "id": 1707, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1747, - "src": "600:17:15", + "scope": 1717, + "src": "600:17:10", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -448,10 +448,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1736, + "id": 1706, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "600:5:15", + "src": "600:5:10", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -461,21 +461,21 @@ "visibility": "internal" } ], - "id": 1744, + "id": 1714, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 1740, + "id": 1710, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "644:27:15", + "src": "644:27:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", @@ -485,12 +485,12 @@ }, { "argumentTypes": null, - "id": 1741, + "id": 1711, "name": "receiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "673:8:15", + "referencedDeclaration": 1699, + "src": "673:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -498,12 +498,12 @@ }, { "argumentTypes": null, - "id": 1742, + "id": 1712, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1731, - "src": "683:6:15", + "referencedDeclaration": 1701, + "src": "683:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -527,18 +527,18 @@ ], "expression": { "argumentTypes": null, - "id": 1738, + "id": 1708, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "620:3:15", + "referencedDeclaration": 4478, + "src": "620:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 1739, + "id": 1709, "isConstant": false, "isLValue": false, "isPure": true, @@ -546,13 +546,13 @@ "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "620:23:15", + "src": "620:23:10", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 1743, + "id": 1713, "isConstant": false, "isLValue": false, "isPure": false, @@ -560,81 +560,81 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "620:70:15", + "src": "620:70:10", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "600:90:15" + "src": "600:90:10" }, { "externalReferences": [ { "transferred": { - "declaration": 1734, + "declaration": 1704, "isOffset": false, "isSlot": false, - "src": "1061:11:15", + "src": "1061:11:10", "valueSize": 1 } }, { "data": { - "declaration": 1737, + "declaration": 1707, "isOffset": false, "isSlot": false, - "src": "857:4:15", + "src": "857:4:10", "valueSize": 1 } }, { "token": { - "declaration": 1727, + "declaration": 1697, "isOffset": false, "isSlot": false, - "src": "824:5:15", + "src": "824:5:10", "valueSize": 1 } }, { "data": { - "declaration": 1737, + "declaration": 1707, "isOffset": false, "isSlot": false, - "src": "838:4:15", + "src": "838:4:10", "valueSize": 1 } }, { "transferred": { - "declaration": 1734, + "declaration": 1704, "isOffset": false, "isSlot": false, - "src": "1012:11:15", + "src": "1012:11:10", "valueSize": 1 } }, { "transferred": { - "declaration": 1734, + "declaration": 1704, "isOffset": false, "isSlot": false, - "src": "1148:11:15", + "src": "1148:11:10", "valueSize": 1 } } ], - "id": 1745, + "id": 1715, "nodeType": "InlineAssembly", "operations": "{\n let success := call(sub(gas(), 10000), token, 0, add(data, 0x20), mload(data), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n switch returndatasize()\n case 0 {\n transferred := success\n }\n case 0x20 {\n transferred := iszero(or(iszero(success), iszero(mload(ptr))))\n }\n default {\n transferred := 0\n }\n}", - "src": "764:418:15" + "src": "764:418:10" } ] }, "documentation": "@dev Transfers a token and returns if it was a success\n @param token Token that should be transferred\n @param receiver Receiver to whom the token should be transferred\n @param amount The amount of tokens that should be transferred", - "id": 1747, + "id": 1717, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -642,16 +642,16 @@ "name": "transferToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 1732, + "id": 1702, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1727, + "id": 1697, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1747, - "src": "463:13:15", + "scope": 1717, + "src": "463:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -659,10 +659,10 @@ "typeString": "address" }, "typeName": { - "id": 1726, + "id": 1696, "name": "address", "nodeType": "ElementaryTypeName", - "src": "463:7:15", + "src": "463:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -673,11 +673,11 @@ }, { "constant": false, - "id": 1729, + "id": 1699, "name": "receiver", "nodeType": "VariableDeclaration", - "scope": 1747, - "src": "487:16:15", + "scope": 1717, + "src": "487:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -685,10 +685,10 @@ "typeString": "address" }, "typeName": { - "id": 1728, + "id": 1698, "name": "address", "nodeType": "ElementaryTypeName", - "src": "487:7:15", + "src": "487:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -699,11 +699,11 @@ }, { "constant": false, - "id": 1731, + "id": 1701, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1747, - "src": "513:14:15", + "scope": 1717, + "src": "513:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -711,10 +711,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1730, + "id": 1700, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "513:7:15", + "src": "513:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -724,20 +724,20 @@ "visibility": "internal" } ], - "src": "453:80:15" + "src": "453:80:10" }, "payable": false, "returnParameters": { - "id": 1735, + "id": 1705, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1734, + "id": 1704, "name": "transferred", "nodeType": "VariableDeclaration", - "scope": 1747, - "src": "568:16:15", + "scope": 1717, + "src": "568:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -745,10 +745,10 @@ "typeString": "bool" }, "typeName": { - "id": 1733, + "id": 1703, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "568:4:15", + "src": "568:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -758,20 +758,20 @@ "visibility": "internal" } ], - "src": "567:18:15" + "src": "567:18:10" }, - "scope": 1748, - "src": "430:752:15", + "scope": 1718, + "src": "430:752:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 1749, - "src": "133:1051:15" + "scope": 1719, + "src": "133:1051:10" } ], - "src": "0:1185:15" + "src": "0:1185:10" }, "compiler": { "name": "solc", @@ -779,5 +779,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.093Z" + "updatedAt": "2018-09-26T08:32:07.644Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/SelfAuthorized.json b/safe-contracts/build/contracts/SelfAuthorized.json index 47f6c438..5951d7c7 100644 --- a/safe-contracts/build/contracts/SelfAuthorized.json +++ b/safe-contracts/build/contracts/SelfAuthorized.json @@ -1,31 +1,31 @@ { "contractName": "SelfAuthorized", "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820ec80f1b4520aa5197e4181778f1e2e4fc460002d4a40e2e8e6709c8986067c220029", - "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820ec80f1b4520aa5197e4181778f1e2e4fc460002d4a40e2e8e6709c8986067c220029", - "sourceMap": "152:166:16:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;152:166:16;;;;;;;", - "deployedSourceMap": "152:166:16:-;;;;;", + "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a7230582089be6830aa63b2ce4480c1565e02c1d4e7d28bdf01f3f1cfbca1af4fc2fd06f50029", + "deployedBytecode": "0x6080604052600080fd00a165627a7a7230582089be6830aa63b2ce4480c1565e02c1d4e7d28bdf01f3f1cfbca1af4fc2fd06f50029", + "sourceMap": "152:166:11:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;152:166:11;;;;;;;", + "deployedSourceMap": "152:166:11:-;;;;;", "source": "pragma solidity 0.4.24;\n\n\n/// @title SelfAuthorized - authorizes current contract to perform actions\n/// @author Richard Meissner - \ncontract SelfAuthorized {\n modifier authorized() {\n require(msg.sender == address(this), \"Method can only be called from this contract\");\n _;\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", "exportedSymbols": { "SelfAuthorized": [ - 1765 + 1735 ] }, - "id": 1766, + "id": 1736, "nodeType": "SourceUnit", "nodes": [ { - "id": 1750, + "id": 1720, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:16" + "src": "0:23:11" }, { "baseContracts": [], @@ -33,18 +33,18 @@ "contractKind": "contract", "documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1765, + "id": 1735, "linearizedBaseContracts": [ - 1765 + 1735 ], "name": "SelfAuthorized", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1763, + "id": 1733, "nodeType": "Block", - "src": "204:112:16", + "src": "204:112:11", "statements": [ { "expression": { @@ -56,7 +56,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1758, + "id": 1728, "isConstant": false, "isLValue": false, "isPure": false, @@ -65,18 +65,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1753, + "id": 1723, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "222:3:16", + "referencedDeclaration": 4491, + "src": "222:3:11", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1754, + "id": 1724, "isConstant": false, "isLValue": false, "isPure": false, @@ -84,7 +84,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "222:10:16", + "src": "222:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -97,14 +97,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1756, + "id": 1726, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3851, - "src": "244:4:16", + "referencedDeclaration": 4504, + "src": "244:4:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1765", + "typeIdentifier": "t_contract$_SelfAuthorized_$1735", "typeString": "contract SelfAuthorized" } } @@ -112,24 +112,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SelfAuthorized_$1765", + "typeIdentifier": "t_contract$_SelfAuthorized_$1735", "typeString": "contract SelfAuthorized" } ], - "id": 1755, + "id": 1725, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "236:7:16", + "src": "236:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1757, + "id": 1727, "isConstant": false, "isLValue": false, "isPure": false, @@ -137,13 +137,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "236:13:16", + "src": "236:13:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "222:27:16", + "src": "222:27:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -152,14 +152,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374", - "id": 1759, + "id": 1729, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "251:46:16", + "src": "251:46:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c4780ef0a1d41d59bac8c510cf9ada421bccf2b90f75a8e4ba2e8c09e8d72733", @@ -179,21 +179,21 @@ "typeString": "literal_string \"Method can only be called from this contract\"" } ], - "id": 1752, + "id": 1722, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "214:7:16", + "referencedDeclaration": 4495, + "src": "214:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1760, + "id": 1730, "isConstant": false, "isLValue": false, "isPure": false, @@ -201,62 +201,62 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "214:84:16", + "src": "214:84:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1761, + "id": 1731, "nodeType": "ExpressionStatement", - "src": "214:84:16" + "src": "214:84:11" }, { - "id": 1762, + "id": 1732, "nodeType": "PlaceholderStatement", - "src": "308:1:16" + "src": "308:1:11" } ] }, "documentation": null, - "id": 1764, + "id": 1734, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 1751, + "id": 1721, "nodeType": "ParameterList", "parameters": [], - "src": "201:2:16" + "src": "201:2:11" }, - "src": "182:134:16", + "src": "182:134:11", "visibility": "internal" } ], - "scope": 1766, - "src": "152:166:16" + "scope": 1736, + "src": "152:166:11" } ], - "src": "0:319:16" + "src": "0:319:11" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", "exportedSymbols": { "SelfAuthorized": [ - 1765 + 1735 ] }, - "id": 1766, + "id": 1736, "nodeType": "SourceUnit", "nodes": [ { - "id": 1750, + "id": 1720, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:16" + "src": "0:23:11" }, { "baseContracts": [], @@ -264,18 +264,18 @@ "contractKind": "contract", "documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1765, + "id": 1735, "linearizedBaseContracts": [ - 1765 + 1735 ], "name": "SelfAuthorized", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1763, + "id": 1733, "nodeType": "Block", - "src": "204:112:16", + "src": "204:112:11", "statements": [ { "expression": { @@ -287,7 +287,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1758, + "id": 1728, "isConstant": false, "isLValue": false, "isPure": false, @@ -296,18 +296,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1753, + "id": 1723, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "222:3:16", + "referencedDeclaration": 4491, + "src": "222:3:11", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1754, + "id": 1724, "isConstant": false, "isLValue": false, "isPure": false, @@ -315,7 +315,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "222:10:16", + "src": "222:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -328,14 +328,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1756, + "id": 1726, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3851, - "src": "244:4:16", + "referencedDeclaration": 4504, + "src": "244:4:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1765", + "typeIdentifier": "t_contract$_SelfAuthorized_$1735", "typeString": "contract SelfAuthorized" } } @@ -343,24 +343,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SelfAuthorized_$1765", + "typeIdentifier": "t_contract$_SelfAuthorized_$1735", "typeString": "contract SelfAuthorized" } ], - "id": 1755, + "id": 1725, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "236:7:16", + "src": "236:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1757, + "id": 1727, "isConstant": false, "isLValue": false, "isPure": false, @@ -368,13 +368,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "236:13:16", + "src": "236:13:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "222:27:16", + "src": "222:27:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -383,14 +383,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374", - "id": 1759, + "id": 1729, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "251:46:16", + "src": "251:46:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c4780ef0a1d41d59bac8c510cf9ada421bccf2b90f75a8e4ba2e8c09e8d72733", @@ -410,21 +410,21 @@ "typeString": "literal_string \"Method can only be called from this contract\"" } ], - "id": 1752, + "id": 1722, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "214:7:16", + "referencedDeclaration": 4495, + "src": "214:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1760, + "id": 1730, "isConstant": false, "isLValue": false, "isPure": false, @@ -432,42 +432,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "214:84:16", + "src": "214:84:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1761, + "id": 1731, "nodeType": "ExpressionStatement", - "src": "214:84:16" + "src": "214:84:11" }, { - "id": 1762, + "id": 1732, "nodeType": "PlaceholderStatement", - "src": "308:1:16" + "src": "308:1:11" } ] }, "documentation": null, - "id": 1764, + "id": 1734, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 1751, + "id": 1721, "nodeType": "ParameterList", "parameters": [], - "src": "201:2:16" + "src": "201:2:11" }, - "src": "182:134:16", + "src": "182:134:11", "visibility": "internal" } ], - "scope": 1766, - "src": "152:166:16" + "scope": 1736, + "src": "152:166:11" } ], - "src": "0:319:16" + "src": "0:319:11" }, "compiler": { "name": "solc", @@ -475,5 +475,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.093Z" + "updatedAt": "2018-09-26T08:32:07.644Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/SignatureValidator.json b/safe-contracts/build/contracts/SignatureDecoder.json similarity index 76% rename from safe-contracts/build/contracts/SignatureValidator.json rename to safe-contracts/build/contracts/SignatureDecoder.json index 9c2ff63c..17b0a204 100644 --- a/safe-contracts/build/contracts/SignatureValidator.json +++ b/safe-contracts/build/contracts/SignatureDecoder.json @@ -1,61 +1,61 @@ { - "contractName": "SignatureValidator", + "contractName": "SignatureDecoder", "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058200cdb9454422435d516dbae78d0a22b0e1372e2fd7734828c7dc1343365c85cd50029", - "deployedBytecode": "0x6080604052600080fd00a165627a7a723058200cdb9454422435d516dbae78d0a22b0e1372e2fd7734828c7dc1343365c85cd50029", - "sourceMap": "221:1679:17:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;221:1679:17;;;;;;;", - "deployedSourceMap": "221:1679:17:-;;;;;", - "source": "pragma solidity 0.4.24;\n\n\n/// @title SignatureValidator - recovers a sender from a signature \n/// @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n/// @author Richard Meissner - \ncontract SignatureValidator {\n \n /// @dev Recovers address who signed the message \n /// @param txHash operation ethereum signed message hash\n /// @param messageSignature message `txHash` signature\n /// @param pos which signature to read\n function recoverKey (\n bytes32 txHash, \n bytes messageSignature,\n uint256 pos\n )\n pure\n internal\n returns (address) \n {\n uint8 v;\n bytes32 r;\n bytes32 s;\n (v, r, s) = signatureSplit(messageSignature, pos);\n return ecrecover(txHash, v, r, s);\n }\n\n /// @dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`\n /// @param pos which signature to read\n /// @param signatures concatenated rsv signatures\n function signatureSplit(bytes signatures, uint256 pos)\n pure\n internal\n returns (uint8 v, bytes32 r, bytes32 s)\n {\n // The signature format is a compact form of:\n // {bytes32 r}{bytes32 s}{uint8 v}\n // Compact means, uint8 is not padded to 32 bytes.\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let signaturePos := mul(0x41, pos)\n r := mload(add(signatures, add(signaturePos, 0x20)))\n s := mload(add(signatures, add(signaturePos, 0x40)))\n // Here we are loading the last 32 bytes, including 31 bytes\n // of 's'. There is no 'mload8' to do this.\n //\n // 'byte' is not working due to the Solidity parser, so lets\n // use the second best option, 'and'\n v := and(mload(add(signatures, add(signaturePos, 0x41))), 0xff)\n }\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", + "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820d9ee3caf094740365f7393d3f6ba692eb56aac36a91a228ffd64563a0a424d7e0029", + "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820d9ee3caf094740365f7393d3f6ba692eb56aac36a91a228ffd64563a0a424d7e0029", + "sourceMap": "226:1692:12:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;226:1692:12;;;;;;;", + "deployedSourceMap": "226:1692:12:-;;;;;", + "source": "pragma solidity 0.4.24;\n\n\n/// @title SignatureDecoder - Decodes signatures that a encoded as bytes\n/// @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n/// @author Richard Meissner - \ncontract SignatureDecoder {\n \n /// @dev Recovers address who signed the message \n /// @param messageHash operation ethereum signed message hash\n /// @param messageSignature message `txHash` signature\n /// @param pos which signature to read\n function recoverKey (\n bytes32 messageHash, \n bytes messageSignature,\n uint256 pos\n )\n internal\n pure\n returns (address) \n {\n uint8 v;\n bytes32 r;\n bytes32 s;\n (v, r, s) = signatureSplit(messageSignature, pos);\n return ecrecover(messageHash, v, r, s);\n }\n\n /// @dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`\n /// @param pos which signature to read\n /// @param signatures concatenated rsv signatures\n function signatureSplit(bytes signatures, uint256 pos)\n internal\n pure\n returns (uint8 v, bytes32 r, bytes32 s)\n {\n // The signature format is a compact form of:\n // {bytes32 r}{bytes32 s}{uint8 v}\n // Compact means, uint8 is not padded to 32 bytes.\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let signaturePos := mul(0x41, pos)\n r := mload(add(signatures, add(signaturePos, 0x20)))\n s := mload(add(signatures, add(signaturePos, 0x40)))\n // Here we are loading the last 32 bytes, including 31 bytes\n // of 's'. There is no 'mload8' to do this.\n //\n // 'byte' is not working due to the Solidity parser, so lets\n // use the second best option, 'and'\n v := and(mload(add(signatures, add(signaturePos, 0x41))), 0xff)\n }\n }\n}\n", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", "exportedSymbols": { - "SignatureValidator": [ - 1821 + "SignatureDecoder": [ + 1791 ] }, - "id": 1822, + "id": 1792, "nodeType": "SourceUnit", "nodes": [ { - "id": 1767, + "id": 1737, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:17" + "src": "0:23:12" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", - "documentation": "@title SignatureValidator - recovers a sender from a signature \n @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n @author Richard Meissner - ", + "documentation": "@title SignatureDecoder - Decodes signatures that a encoded as bytes\n @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1821, + "id": 1791, "linearizedBaseContracts": [ - 1821 + 1791 ], - "name": "SignatureValidator", + "name": "SignatureDecoder", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1804, + "id": 1774, "nodeType": "Block", - "src": "643:164:17", + "src": "656:169:12", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 1779, + "id": 1749, "name": "v", "nodeType": "VariableDeclaration", - "scope": 1805, - "src": "653:7:17", + "scope": 1775, + "src": "666:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -63,10 +63,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1778, + "id": 1748, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "653:5:17", + "src": "666:5:12", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -76,21 +76,21 @@ "visibility": "internal" } ], - "id": 1780, + "id": 1750, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "653:7:17" + "src": "666:7:12" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 1782, + "id": 1752, "name": "r", "nodeType": "VariableDeclaration", - "scope": 1805, - "src": "670:9:17", + "scope": 1775, + "src": "683:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -98,10 +98,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1781, + "id": 1751, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "670:7:17", + "src": "683:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -111,21 +111,21 @@ "visibility": "internal" } ], - "id": 1783, + "id": 1753, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "670:9:17" + "src": "683:9:12" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 1785, + "id": 1755, "name": "s", "nodeType": "VariableDeclaration", - "scope": 1805, - "src": "689:9:17", + "scope": 1775, + "src": "702:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -133,10 +133,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1784, + "id": 1754, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "689:7:17", + "src": "702:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -146,15 +146,15 @@ "visibility": "internal" } ], - "id": 1786, + "id": 1756, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "689:9:17" + "src": "702:9:12" }, { "expression": { "argumentTypes": null, - "id": 1795, + "id": 1765, "isConstant": false, "isLValue": false, "isPure": false, @@ -164,12 +164,12 @@ "components": [ { "argumentTypes": null, - "id": 1787, + "id": 1757, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1779, - "src": "709:1:17", + "referencedDeclaration": 1749, + "src": "722:1:12", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -177,12 +177,12 @@ }, { "argumentTypes": null, - "id": 1788, + "id": 1758, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1782, - "src": "712:1:17", + "referencedDeclaration": 1752, + "src": "725:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -190,26 +190,26 @@ }, { "argumentTypes": null, - "id": 1789, + "id": 1759, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1785, - "src": "715:1:17", + "referencedDeclaration": 1755, + "src": "728:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 1790, + "id": 1760, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", - "src": "708:9:17", + "src": "721:9:12", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(uint8,bytes32,bytes32)" @@ -222,12 +222,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1792, + "id": 1762, "name": "messageSignature", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1771, - "src": "735:16:17", + "referencedDeclaration": 1741, + "src": "748:16:12", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -235,12 +235,12 @@ }, { "argumentTypes": null, - "id": 1793, + "id": 1763, "name": "pos", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1773, - "src": "753:3:17", + "referencedDeclaration": 1743, + "src": "766:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -258,18 +258,18 @@ "typeString": "uint256" } ], - "id": 1791, + "id": 1761, "name": "signatureSplit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1820, - "src": "720:14:17", + "referencedDeclaration": 1790, + "src": "733:14:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)" } }, - "id": 1794, + "id": 1764, "isConstant": false, "isLValue": false, "isPure": false, @@ -277,21 +277,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "720:37:17", + "src": "733:37:12", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(uint8,bytes32,bytes32)" } }, - "src": "708:49:17", + "src": "721:49:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1796, + "id": 1766, "nodeType": "ExpressionStatement", - "src": "708:49:17" + "src": "721:49:12" }, { "expression": { @@ -299,12 +299,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1798, - "name": "txHash", + "id": 1768, + "name": "messageHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1769, - "src": "784:6:17", + "referencedDeclaration": 1739, + "src": "797:11:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -312,12 +312,12 @@ }, { "argumentTypes": null, - "id": 1799, + "id": 1769, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1779, - "src": "792:1:17", + "referencedDeclaration": 1749, + "src": "810:1:12", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -325,12 +325,12 @@ }, { "argumentTypes": null, - "id": 1800, + "id": 1770, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1782, - "src": "795:1:17", + "referencedDeclaration": 1752, + "src": "813:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -338,12 +338,12 @@ }, { "argumentTypes": null, - "id": 1801, + "id": 1771, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1785, - "src": "798:1:17", + "referencedDeclaration": 1755, + "src": "816:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -369,18 +369,18 @@ "typeString": "bytes32" } ], - "id": 1797, + "id": 1767, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3820, - "src": "774:9:17", + "referencedDeclaration": 4483, + "src": "787:9:12", "typeDescriptions": { "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" } }, - "id": 1802, + "id": 1772, "isConstant": false, "isLValue": false, "isPure": false, @@ -388,21 +388,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "774:26:17", + "src": "787:31:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1777, - "id": 1803, + "functionReturnParameters": 1747, + "id": 1773, "nodeType": "Return", - "src": "767:33:17" + "src": "780:38:12" } ] }, - "documentation": "@dev Recovers address who signed the message \n @param txHash operation ethereum signed message hash\n @param messageSignature message `txHash` signature\n @param pos which signature to read", - "id": 1805, + "documentation": "@dev Recovers address who signed the message \n @param messageHash operation ethereum signed message hash\n @param messageSignature message `txHash` signature\n @param pos which signature to read", + "id": 1775, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -410,16 +410,16 @@ "name": "recoverKey", "nodeType": "FunctionDefinition", "parameters": { - "id": 1774, + "id": 1744, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1769, - "name": "txHash", + "id": 1739, + "name": "messageHash", "nodeType": "VariableDeclaration", - "scope": 1805, - "src": "507:14:17", + "scope": 1775, + "src": "515:19:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -427,10 +427,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1768, + "id": 1738, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "507:7:17", + "src": "515:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -441,11 +441,11 @@ }, { "constant": false, - "id": 1771, + "id": 1741, "name": "messageSignature", "nodeType": "VariableDeclaration", - "scope": 1805, - "src": "532:22:17", + "scope": 1775, + "src": "545:22:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -453,10 +453,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1770, + "id": 1740, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "532:5:17", + "src": "545:5:12", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -467,11 +467,11 @@ }, { "constant": false, - "id": 1773, + "id": 1743, "name": "pos", "nodeType": "VariableDeclaration", - "scope": 1805, - "src": "564:11:17", + "scope": 1775, + "src": "577:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -479,10 +479,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1772, + "id": 1742, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "564:7:17", + "src": "577:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -492,20 +492,20 @@ "visibility": "internal" } ], - "src": "497:84:17" + "src": "505:89:12" }, "payable": false, "returnParameters": { - "id": 1777, + "id": 1747, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1776, + "id": 1746, "name": "", "nodeType": "VariableDeclaration", - "scope": 1805, - "src": "629:7:17", + "scope": 1775, + "src": "642:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -513,10 +513,10 @@ "typeString": "address" }, "typeName": { - "id": 1775, + "id": 1745, "name": "address", "nodeType": "ElementaryTypeName", - "src": "629:7:17", + "src": "642:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -526,95 +526,95 @@ "visibility": "internal" } ], - "src": "628:9:17" + "src": "641:9:12" }, - "scope": 1821, - "src": "477:330:17", + "scope": 1791, + "src": "485:340:12", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1819, + "id": 1789, "nodeType": "Block", - "src": "1121:777:17", + "src": "1139:777:12", "statements": [ { "externalReferences": [ { "r": { - "declaration": 1814, + "declaration": 1784, "isOffset": false, "isSlot": false, - "src": "1423:1:17", + "src": "1441:1:12", "valueSize": 1 } }, { "pos": { - "declaration": 1809, + "declaration": 1779, "isOffset": false, "isSlot": false, - "src": "1406:3:17", + "src": "1424:3:12", "valueSize": 1 } }, { "signatures": { - "declaration": 1807, + "declaration": 1777, "isOffset": false, "isSlot": false, - "src": "1438:10:17", + "src": "1456:10:12", "valueSize": 1 } }, { "s": { - "declaration": 1816, + "declaration": 1786, "isOffset": false, "isSlot": false, - "src": "1488:1:17", + "src": "1506:1:12", "valueSize": 1 } }, { "signatures": { - "declaration": 1807, + "declaration": 1777, "isOffset": false, "isSlot": false, - "src": "1503:10:17", + "src": "1521:10:12", "valueSize": 1 } }, { "v": { - "declaration": 1812, + "declaration": 1782, "isOffset": false, "isSlot": false, - "src": "1819:1:17", + "src": "1837:1:12", "valueSize": 1 } }, { "signatures": { - "declaration": 1807, + "declaration": 1777, "isOffset": false, "isSlot": false, - "src": "1838:10:17", + "src": "1856:10:12", "valueSize": 1 } } ], - "id": 1818, + "id": 1788, "nodeType": "InlineAssembly", "operations": "{\n let signaturePos := mul(0x41, pos)\n r := mload(add(signatures, add(signaturePos, 0x20)))\n s := mload(add(signatures, add(signaturePos, 0x40)))\n v := and(mload(add(signatures, add(signaturePos, 0x41))), 0xff)\n}", - "src": "1353:545:17" + "src": "1371:545:12" } ] }, "documentation": "@dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`\n @param pos which signature to read\n @param signatures concatenated rsv signatures", - "id": 1820, + "id": 1790, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -622,16 +622,16 @@ "name": "signatureSplit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1810, + "id": 1780, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1807, + "id": 1777, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 1820, - "src": "1008:16:17", + "scope": 1790, + "src": "1026:16:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -639,10 +639,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1806, + "id": 1776, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1008:5:17", + "src": "1026:5:12", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -653,11 +653,11 @@ }, { "constant": false, - "id": 1809, + "id": 1779, "name": "pos", "nodeType": "VariableDeclaration", - "scope": 1820, - "src": "1026:11:17", + "scope": 1790, + "src": "1044:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -665,10 +665,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1808, + "id": 1778, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1026:7:17", + "src": "1044:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -678,20 +678,20 @@ "visibility": "internal" } ], - "src": "1007:31:17" + "src": "1025:31:12" }, "payable": false, "returnParameters": { - "id": 1817, + "id": 1787, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1812, + "id": 1782, "name": "v", "nodeType": "VariableDeclaration", - "scope": 1820, - "src": "1086:7:17", + "scope": 1790, + "src": "1104:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -699,10 +699,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1811, + "id": 1781, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1086:5:17", + "src": "1104:5:12", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -713,11 +713,11 @@ }, { "constant": false, - "id": 1814, + "id": 1784, "name": "r", "nodeType": "VariableDeclaration", - "scope": 1820, - "src": "1095:9:17", + "scope": 1790, + "src": "1113:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -725,10 +725,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1813, + "id": 1783, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1095:7:17", + "src": "1113:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -739,11 +739,11 @@ }, { "constant": false, - "id": 1816, + "id": 1786, "name": "s", "nodeType": "VariableDeclaration", - "scope": 1820, - "src": "1106:9:17", + "scope": 1790, + "src": "1124:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -751,10 +751,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1815, + "id": 1785, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1106:7:17", + "src": "1124:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -764,70 +764,70 @@ "visibility": "internal" } ], - "src": "1085:31:17" + "src": "1103:31:12" }, - "scope": 1821, - "src": "984:914:17", + "scope": 1791, + "src": "1002:914:12", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 1822, - "src": "221:1679:17" + "scope": 1792, + "src": "226:1692:12" } ], - "src": "0:1901:17" + "src": "0:1919:12" }, "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", "exportedSymbols": { - "SignatureValidator": [ - 1821 + "SignatureDecoder": [ + 1791 ] }, - "id": 1822, + "id": 1792, "nodeType": "SourceUnit", "nodes": [ { - "id": 1767, + "id": 1737, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:17" + "src": "0:23:12" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", - "documentation": "@title SignatureValidator - recovers a sender from a signature \n @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n @author Richard Meissner - ", + "documentation": "@title SignatureDecoder - Decodes signatures that a encoded as bytes\n @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1821, + "id": 1791, "linearizedBaseContracts": [ - 1821 + 1791 ], - "name": "SignatureValidator", + "name": "SignatureDecoder", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1804, + "id": 1774, "nodeType": "Block", - "src": "643:164:17", + "src": "656:169:12", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 1779, + "id": 1749, "name": "v", "nodeType": "VariableDeclaration", - "scope": 1805, - "src": "653:7:17", + "scope": 1775, + "src": "666:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -835,10 +835,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1778, + "id": 1748, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "653:5:17", + "src": "666:5:12", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -848,21 +848,21 @@ "visibility": "internal" } ], - "id": 1780, + "id": 1750, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "653:7:17" + "src": "666:7:12" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 1782, + "id": 1752, "name": "r", "nodeType": "VariableDeclaration", - "scope": 1805, - "src": "670:9:17", + "scope": 1775, + "src": "683:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -870,10 +870,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1781, + "id": 1751, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "670:7:17", + "src": "683:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -883,21 +883,21 @@ "visibility": "internal" } ], - "id": 1783, + "id": 1753, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "670:9:17" + "src": "683:9:12" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 1785, + "id": 1755, "name": "s", "nodeType": "VariableDeclaration", - "scope": 1805, - "src": "689:9:17", + "scope": 1775, + "src": "702:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -905,10 +905,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1784, + "id": 1754, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "689:7:17", + "src": "702:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -918,15 +918,15 @@ "visibility": "internal" } ], - "id": 1786, + "id": 1756, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "689:9:17" + "src": "702:9:12" }, { "expression": { "argumentTypes": null, - "id": 1795, + "id": 1765, "isConstant": false, "isLValue": false, "isPure": false, @@ -936,12 +936,12 @@ "components": [ { "argumentTypes": null, - "id": 1787, + "id": 1757, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1779, - "src": "709:1:17", + "referencedDeclaration": 1749, + "src": "722:1:12", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -949,12 +949,12 @@ }, { "argumentTypes": null, - "id": 1788, + "id": 1758, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1782, - "src": "712:1:17", + "referencedDeclaration": 1752, + "src": "725:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -962,26 +962,26 @@ }, { "argumentTypes": null, - "id": 1789, + "id": 1759, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1785, - "src": "715:1:17", + "referencedDeclaration": 1755, + "src": "728:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 1790, + "id": 1760, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", - "src": "708:9:17", + "src": "721:9:12", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(uint8,bytes32,bytes32)" @@ -994,12 +994,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1792, + "id": 1762, "name": "messageSignature", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1771, - "src": "735:16:17", + "referencedDeclaration": 1741, + "src": "748:16:12", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1007,12 +1007,12 @@ }, { "argumentTypes": null, - "id": 1793, + "id": 1763, "name": "pos", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1773, - "src": "753:3:17", + "referencedDeclaration": 1743, + "src": "766:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1030,18 +1030,18 @@ "typeString": "uint256" } ], - "id": 1791, + "id": 1761, "name": "signatureSplit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1820, - "src": "720:14:17", + "referencedDeclaration": 1790, + "src": "733:14:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)" } }, - "id": 1794, + "id": 1764, "isConstant": false, "isLValue": false, "isPure": false, @@ -1049,21 +1049,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "720:37:17", + "src": "733:37:12", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(uint8,bytes32,bytes32)" } }, - "src": "708:49:17", + "src": "721:49:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1796, + "id": 1766, "nodeType": "ExpressionStatement", - "src": "708:49:17" + "src": "721:49:12" }, { "expression": { @@ -1071,12 +1071,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1798, - "name": "txHash", + "id": 1768, + "name": "messageHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1769, - "src": "784:6:17", + "referencedDeclaration": 1739, + "src": "797:11:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1084,12 +1084,12 @@ }, { "argumentTypes": null, - "id": 1799, + "id": 1769, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1779, - "src": "792:1:17", + "referencedDeclaration": 1749, + "src": "810:1:12", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1097,12 +1097,12 @@ }, { "argumentTypes": null, - "id": 1800, + "id": 1770, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1782, - "src": "795:1:17", + "referencedDeclaration": 1752, + "src": "813:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1110,12 +1110,12 @@ }, { "argumentTypes": null, - "id": 1801, + "id": 1771, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1785, - "src": "798:1:17", + "referencedDeclaration": 1755, + "src": "816:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1141,18 +1141,18 @@ "typeString": "bytes32" } ], - "id": 1797, + "id": 1767, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3820, - "src": "774:9:17", + "referencedDeclaration": 4483, + "src": "787:9:12", "typeDescriptions": { "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" } }, - "id": 1802, + "id": 1772, "isConstant": false, "isLValue": false, "isPure": false, @@ -1160,21 +1160,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "774:26:17", + "src": "787:31:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1777, - "id": 1803, + "functionReturnParameters": 1747, + "id": 1773, "nodeType": "Return", - "src": "767:33:17" + "src": "780:38:12" } ] }, - "documentation": "@dev Recovers address who signed the message \n @param txHash operation ethereum signed message hash\n @param messageSignature message `txHash` signature\n @param pos which signature to read", - "id": 1805, + "documentation": "@dev Recovers address who signed the message \n @param messageHash operation ethereum signed message hash\n @param messageSignature message `txHash` signature\n @param pos which signature to read", + "id": 1775, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1182,16 +1182,16 @@ "name": "recoverKey", "nodeType": "FunctionDefinition", "parameters": { - "id": 1774, + "id": 1744, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1769, - "name": "txHash", + "id": 1739, + "name": "messageHash", "nodeType": "VariableDeclaration", - "scope": 1805, - "src": "507:14:17", + "scope": 1775, + "src": "515:19:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1199,10 +1199,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1768, + "id": 1738, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "507:7:17", + "src": "515:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1213,11 +1213,11 @@ }, { "constant": false, - "id": 1771, + "id": 1741, "name": "messageSignature", "nodeType": "VariableDeclaration", - "scope": 1805, - "src": "532:22:17", + "scope": 1775, + "src": "545:22:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1225,10 +1225,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1770, + "id": 1740, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "532:5:17", + "src": "545:5:12", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1239,11 +1239,11 @@ }, { "constant": false, - "id": 1773, + "id": 1743, "name": "pos", "nodeType": "VariableDeclaration", - "scope": 1805, - "src": "564:11:17", + "scope": 1775, + "src": "577:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1251,10 +1251,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1772, + "id": 1742, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "564:7:17", + "src": "577:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1264,20 +1264,20 @@ "visibility": "internal" } ], - "src": "497:84:17" + "src": "505:89:12" }, "payable": false, "returnParameters": { - "id": 1777, + "id": 1747, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1776, + "id": 1746, "name": "", "nodeType": "VariableDeclaration", - "scope": 1805, - "src": "629:7:17", + "scope": 1775, + "src": "642:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1285,10 +1285,10 @@ "typeString": "address" }, "typeName": { - "id": 1775, + "id": 1745, "name": "address", "nodeType": "ElementaryTypeName", - "src": "629:7:17", + "src": "642:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1298,95 +1298,95 @@ "visibility": "internal" } ], - "src": "628:9:17" + "src": "641:9:12" }, - "scope": 1821, - "src": "477:330:17", + "scope": 1791, + "src": "485:340:12", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1819, + "id": 1789, "nodeType": "Block", - "src": "1121:777:17", + "src": "1139:777:12", "statements": [ { "externalReferences": [ { "r": { - "declaration": 1814, + "declaration": 1784, "isOffset": false, "isSlot": false, - "src": "1423:1:17", + "src": "1441:1:12", "valueSize": 1 } }, { "pos": { - "declaration": 1809, + "declaration": 1779, "isOffset": false, "isSlot": false, - "src": "1406:3:17", + "src": "1424:3:12", "valueSize": 1 } }, { "signatures": { - "declaration": 1807, + "declaration": 1777, "isOffset": false, "isSlot": false, - "src": "1438:10:17", + "src": "1456:10:12", "valueSize": 1 } }, { "s": { - "declaration": 1816, + "declaration": 1786, "isOffset": false, "isSlot": false, - "src": "1488:1:17", + "src": "1506:1:12", "valueSize": 1 } }, { "signatures": { - "declaration": 1807, + "declaration": 1777, "isOffset": false, "isSlot": false, - "src": "1503:10:17", + "src": "1521:10:12", "valueSize": 1 } }, { "v": { - "declaration": 1812, + "declaration": 1782, "isOffset": false, "isSlot": false, - "src": "1819:1:17", + "src": "1837:1:12", "valueSize": 1 } }, { "signatures": { - "declaration": 1807, + "declaration": 1777, "isOffset": false, "isSlot": false, - "src": "1838:10:17", + "src": "1856:10:12", "valueSize": 1 } } ], - "id": 1818, + "id": 1788, "nodeType": "InlineAssembly", "operations": "{\n let signaturePos := mul(0x41, pos)\n r := mload(add(signatures, add(signaturePos, 0x20)))\n s := mload(add(signatures, add(signaturePos, 0x40)))\n v := and(mload(add(signatures, add(signaturePos, 0x41))), 0xff)\n}", - "src": "1353:545:17" + "src": "1371:545:12" } ] }, "documentation": "@dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`\n @param pos which signature to read\n @param signatures concatenated rsv signatures", - "id": 1820, + "id": 1790, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1394,16 +1394,16 @@ "name": "signatureSplit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1810, + "id": 1780, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1807, + "id": 1777, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 1820, - "src": "1008:16:17", + "scope": 1790, + "src": "1026:16:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1411,10 +1411,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1806, + "id": 1776, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1008:5:17", + "src": "1026:5:12", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1425,11 +1425,11 @@ }, { "constant": false, - "id": 1809, + "id": 1779, "name": "pos", "nodeType": "VariableDeclaration", - "scope": 1820, - "src": "1026:11:17", + "scope": 1790, + "src": "1044:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1437,10 +1437,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1808, + "id": 1778, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1026:7:17", + "src": "1044:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1450,20 +1450,20 @@ "visibility": "internal" } ], - "src": "1007:31:17" + "src": "1025:31:12" }, "payable": false, "returnParameters": { - "id": 1817, + "id": 1787, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1812, + "id": 1782, "name": "v", "nodeType": "VariableDeclaration", - "scope": 1820, - "src": "1086:7:17", + "scope": 1790, + "src": "1104:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1471,10 +1471,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1811, + "id": 1781, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1086:5:17", + "src": "1104:5:12", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1485,11 +1485,11 @@ }, { "constant": false, - "id": 1814, + "id": 1784, "name": "r", "nodeType": "VariableDeclaration", - "scope": 1820, - "src": "1095:9:17", + "scope": 1790, + "src": "1113:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1497,10 +1497,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1813, + "id": 1783, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1095:7:17", + "src": "1113:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1511,11 +1511,11 @@ }, { "constant": false, - "id": 1816, + "id": 1786, "name": "s", "nodeType": "VariableDeclaration", - "scope": 1820, - "src": "1106:9:17", + "scope": 1790, + "src": "1124:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1523,10 +1523,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1815, + "id": 1785, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1106:7:17", + "src": "1124:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1536,20 +1536,20 @@ "visibility": "internal" } ], - "src": "1085:31:17" + "src": "1103:31:12" }, - "scope": 1821, - "src": "984:914:17", + "scope": 1791, + "src": "1002:914:12", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 1822, - "src": "221:1679:17" + "scope": 1792, + "src": "226:1692:12" } ], - "src": "0:1901:17" + "src": "0:1919:12" }, "compiler": { "name": "solc", @@ -1557,5 +1557,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.093Z" + "updatedAt": "2018-09-26T08:32:07.644Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/SocialRecoveryModule.json b/safe-contracts/build/contracts/SocialRecoveryModule.json index d37449b3..34abee6a 100644 --- a/safe-contracts/build/contracts/SocialRecoveryModule.json +++ b/safe-contracts/build/contracts/SocialRecoveryModule.json @@ -244,73 +244,73 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611790806100206000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342cde4e8146100d5578063481c6a75146101005780634ab884271461015757806368125a1b146101c757806377231eaa1461022257806379716e43146102a55780637de7edef146102d65780639ca89d0d14610319578063a3f4df7e14610362578063ae68b056146103f2578063b79ffaff14610477578063ce146828146104e0578063e52cb36a1461054d578063ffa1ad7414610596575b600080fd5b3480156100e157600080fd5b506100ea610626565b6040518082815260200191505060405180910390f35b34801561010c57600080fd5b5061011561062c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016357600080fd5b506101c56004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610652565b005b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099d565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b506102a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b005b3480156102b157600080fd5b506102d46004803603810190808035600019169060200190929190505050610f6e565b005b3480156102e257600080fd5b50610317600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611167565b005b34801561032557600080fd5b50610348600480360381019080803560001916906020019092919050505061134a565b604051808215151515815260200191505060405180910390f35b34801561036e57600080fd5b50610377611439565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b757808201518184015260208101905061039c565b50505050905090810190601f1680156103e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103fe57600080fd5b50610459600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611472565b60405180826000191660001916815260200191505060405180910390f35b34801561048357600080fd5b506104c66004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114de565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b5061050b6004803603810190808035906020019092919050505061150d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055957600080fd5b5061057c600480360381019080803560001916906020019092919050505061154b565b604051808215151515815260200191505060405180910390f35b3480156105a257600080fd5b506105ab61156b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105eb5780820151818401526020810190506105d0565b50505050905090810190601f1680156106185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080835183111515156106f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5468726573686f6c642063616e6e6f742065786365656420667269656e64732081526020017f636f756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002831015151561076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107756115a4565b600091505b835182101561097957838281518110151561079157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610914576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4475706c696361746520667269656e6420616464726573732070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818060010192505061077a565b836003908051906020019061098f929190611697565b508260028190555050505050565b60046020528060005260406000206000915054906101000a900460ff1681565b60606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509150610bd582611472565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610c7e8161134a565b1515610d18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6181526020017f74696f6e7300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e2957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610eb857600080fd5b505af1158015610ecc573d6000803e3d6000fd5b505050506040513d6020811015610ee257600080fd5b81019080805190602001909291905050501515610f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611055576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60038054905081101561142d57600660008560001916600019168152602001908152602001600020600060038381548110151561138c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561140d5781806001019250505b6002548214156114205760019250611432565b8080600101915050611353565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b6020831015156114aa5780518252602082019150602081019050602083039250611485565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60038181548110151561151c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611710579160200282015b8281111561170f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906116b7565b5b50905061171d9190611721565b5090565b61176191905b8082111561175d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611727565b5090565b905600a165627a7a7230582008c4d43808ed663a7c594dd38d6f82ee8ff1a4fa8159d72089ac0f7854fa496a0029", - "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342cde4e8146100d5578063481c6a75146101005780634ab884271461015757806368125a1b146101c757806377231eaa1461022257806379716e43146102a55780637de7edef146102d65780639ca89d0d14610319578063a3f4df7e14610362578063ae68b056146103f2578063b79ffaff14610477578063ce146828146104e0578063e52cb36a1461054d578063ffa1ad7414610596575b600080fd5b3480156100e157600080fd5b506100ea610626565b6040518082815260200191505060405180910390f35b34801561010c57600080fd5b5061011561062c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016357600080fd5b506101c56004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610652565b005b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099d565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b506102a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b005b3480156102b157600080fd5b506102d46004803603810190808035600019169060200190929190505050610f6e565b005b3480156102e257600080fd5b50610317600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611167565b005b34801561032557600080fd5b50610348600480360381019080803560001916906020019092919050505061134a565b604051808215151515815260200191505060405180910390f35b34801561036e57600080fd5b50610377611439565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b757808201518184015260208101905061039c565b50505050905090810190601f1680156103e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103fe57600080fd5b50610459600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611472565b60405180826000191660001916815260200191505060405180910390f35b34801561048357600080fd5b506104c66004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114de565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b5061050b6004803603810190808035906020019092919050505061150d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055957600080fd5b5061057c600480360381019080803560001916906020019092919050505061154b565b604051808215151515815260200191505060405180910390f35b3480156105a257600080fd5b506105ab61156b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105eb5780820151818401526020810190506105d0565b50505050905090810190601f1680156106185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080835183111515156106f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5468726573686f6c642063616e6e6f742065786365656420667269656e64732081526020017f636f756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002831015151561076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107756115a4565b600091505b835182101561097957838281518110151561079157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610914576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4475706c696361746520667269656e6420616464726573732070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818060010192505061077a565b836003908051906020019061098f929190611697565b508260028190555050505050565b60046020528060005260406000206000915054906101000a900460ff1681565b60606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509150610bd582611472565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610c7e8161134a565b1515610d18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6181526020017f74696f6e7300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e2957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610eb857600080fd5b505af1158015610ecc573d6000803e3d6000fd5b505050506040513d6020811015610ee257600080fd5b81019080805190602001909291905050501515610f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611055576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60038054905081101561142d57600660008560001916600019168152602001908152602001600020600060038381548110151561138c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561140d5781806001019250505b6002548214156114205760019250611432565b8080600101915050611353565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b6020831015156114aa5780518252602082019150602081019050602083039250611485565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60038181548110151561151c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611710579160200282015b8281111561170f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906116b7565b5b50905061171d9190611721565b5090565b61176191905b8082111561175d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611727565b5090565b905600a165627a7a7230582008c4d43808ed663a7c594dd38d6f82ee8ff1a4fa8159d72089ac0f7854fa496a0029", - "sourceMap": "306:3660:21:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;306:3660:21;;;;;;;", - "deployedSourceMap": "306:3660:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;460:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;460:24:21;;;;;;;;;;;;;;;;;;;;;;;262:28:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1218:640:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1218:640:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;585:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;585:41:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2514:625;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2514:625:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1971:210;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1971:210:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;3300:405:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3300:405:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;353:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:54:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;353:54:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3834:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3834:130:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;829:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;829:65:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;490:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;490:24:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;694:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;694:43:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;413:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;413:40:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;413:40:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;460:24;;;;:::o;262:28:9:-;;;;;;;;;;;;;:::o;1218:640:21:-;1515:9;1570:14;1324:8;:15;1310:10;:29;;1302:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1413:1;1399:10;:15;;1391:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1456:12;:10;:12::i;:::-;1527:1;1515:13;;1510:282;1534:8;:15;1530:1;:19;1510:282;;;1587:8;1596:1;1587:11;;;;;;;;;;;;;;;;;;1570:28;;1630:1;1620:6;:11;;;;1612:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1690:8;:16;1699:6;1690:16;;;;;;;;;;;;;;;;;;;;;;;;;1689:17;1681:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1777:4;1758:8;:16;1767:6;1758:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;1551:3;;;;;;;1510:282;;;1811:8;1801:7;:18;;;;;;;;;;;;:::i;:::-;;1841:10;1829:9;:22;;;;1218:640;;;;:::o;585:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;2514:625::-;2640:17;2762:16;941:8;:20;950:10;941:20;;;;;;;;;;;;;;;;;;;;;;;;;933:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2722:9;2733:8;2743;2660:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2660:92:21;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2660:92:21;2640:112;;2781:17;2793:4;2781:11;:17::i;:::-;2762:36;;2817:10;:20;2828:8;2817:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2816:21;2808:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2885:38;2914:8;2885:28;:38::i;:::-;2877:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2998:4;2975:10;:20;2986:8;2975:20;;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3020:7;;;;;;;;;;;:33;;;3062:7;;;;;;;;;;;3072:1;3075:4;3081:19;3020:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3020:81:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3020:81:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3020:81:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3020:81:21;;;;;;;;;;;;;;;;3012:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2514:625;;;;;:::o;1971:210::-;941:8;:20;950:10;941:20;;;;;;;;;;;;;;;;;;;;;;;;;933:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:10;:20;2085:8;2074:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2073:21;2065:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2170:4;2134:11;:21;2146:8;2134:21;;;;;;;;;;;;;;;;;:33;2156:10;2134:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1971:210;:::o;626:248:7:-;359:7:9;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:7;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;3300:405:21:-;3401:4;3421:25;3461:9;3473:1;3461:13;;3456:221;3480:7;:14;;;;3476:1;:18;3456:221;;;3519:11;:21;3531:8;3519:21;;;;;;;;;;;;;;;;;:33;3541:7;3549:1;3541:10;;;;;;;;;;;;;;;;;;;;;;;;;;;3519:33;;;;;;;;;;;;;;;;;;;;;;;;;3515:74;;;3570:19;;;;;;;3515:74;3628:9;;3607:17;:30;3603:63;;;3662:4;3655:11;;;;3603:63;3496:3;;;;;;;3456:221;;;3693:5;3686:12;;3300:405;;;;;;:::o;353:54::-;;;;;;;;;;;;;;;;;;;;:::o;3834:130::-;3912:7;3952:4;3942:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3942:15:21;;;;;;;;;;;;;;;;3935:22;;3834:130;;;:::o;829:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;490:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;694:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;413:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:9:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o;306:3660:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"../Enum.sol\";\nimport \"../Module.sol\";\nimport \"../ModuleManager.sol\";\nimport \"../OwnerManager.sol\";\n\n\n/// @title Social Recovery Module - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n/// @author Stefan George - \ncontract SocialRecoveryModule is Module {\n\n string public constant NAME = \"Social Recovery Module\";\n string public constant VERSION = \"0.0.1\";\n\n uint256 public threshold;\n address[] public friends;\n\n // isFriend mapping maps friend's address to friend status.\n mapping (address => bool) public isFriend;\n // isExecuted mapping maps data hash to execution status.\n mapping (bytes32 => bool) public isExecuted;\n // isConfirmed mapping maps data hash to friend's address to confirmation status.\n mapping (bytes32 => mapping (address => bool)) public isConfirmed;\n\n modifier onlyFriend() {\n require(isFriend[msg.sender], \"Method can only be called by a friend\");\n _;\n }\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _friends List of friends' addresses.\n /// @param _threshold Required number of friends to confirm replacement.\n function setup(address[] _friends, uint256 _threshold)\n public\n {\n require(_threshold <= _friends.length, \"Threshold cannot exceed friends count\");\n require(_threshold >= 2, \"At least 2 friends required\");\n setManager();\n // Set allowed friends.\n for (uint256 i = 0; i < _friends.length; i++) {\n address friend = _friends[i];\n require(friend != 0, \"Invalid friend address provided\");\n require(!isFriend[friend], \"Duplicate friend address provided\");\n isFriend[friend] = true;\n }\n friends = _friends;\n threshold = _threshold;\n }\n\n /// @dev Allows a friend to confirm a Safe transaction.\n /// @param dataHash Safe transaction hash.\n function confirmTransaction(bytes32 dataHash)\n public\n onlyFriend\n {\n require(!isExecuted[dataHash], \"Recovery already executed\");\n isConfirmed[dataHash][msg.sender] = true;\n }\n\n /// @dev Returns if Safe transaction is a valid owner replacement transaction.\n /// @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n /// @param oldOwner Owner address to be replaced.\n /// @param newOwner New owner address.\n /// @return Returns if transaction can be executed.\n function recoverAccess(address prevOwner, address oldOwner, address newOwner)\n public\n onlyFriend\n {\n bytes memory data = abi.encodeWithSignature(\"swapOwner(address,address,address)\", prevOwner, oldOwner, newOwner);\n bytes32 dataHash = getDataHash(data);\n require(!isExecuted[dataHash], \"Recovery already executed\");\n require(isConfirmedByRequiredFriends(dataHash), \"Recovery has not enough confirmations\");\n isExecuted[dataHash] = true;\n require(manager.execTransactionFromModule(address(manager), 0, data, Enum.Operation.Call), \"Could not execute recovery\");\n }\n\n /// @dev Returns if Safe transaction is a valid owner replacement transaction.\n /// @param dataHash Data hash.\n /// @return Confirmation status.\n function isConfirmedByRequiredFriends(bytes32 dataHash)\n public\n view\n returns (bool)\n {\n uint256 confirmationCount;\n for (uint256 i = 0; i < friends.length; i++) {\n if (isConfirmed[dataHash][friends[i]])\n confirmationCount++;\n if (confirmationCount == threshold)\n return true;\n }\n return false;\n }\n\n /// @dev Returns hash of data encoding owner replacement.\n /// @param data Data payload.\n /// @return Data hash.\n function getDataHash(bytes data)\n public\n pure\n returns (bytes32)\n {\n return keccak256(data);\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50611790806100206000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342cde4e8146100d5578063481c6a75146101005780634ab884271461015757806368125a1b146101c757806377231eaa1461022257806379716e43146102a55780637de7edef146102d65780639ca89d0d14610319578063a3f4df7e14610362578063ae68b056146103f2578063b79ffaff14610477578063ce146828146104e0578063e52cb36a1461054d578063ffa1ad7414610596575b600080fd5b3480156100e157600080fd5b506100ea610626565b6040518082815260200191505060405180910390f35b34801561010c57600080fd5b5061011561062c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016357600080fd5b506101c56004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610652565b005b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099d565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b506102a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b005b3480156102b157600080fd5b506102d46004803603810190808035600019169060200190929190505050610f6e565b005b3480156102e257600080fd5b50610317600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611167565b005b34801561032557600080fd5b50610348600480360381019080803560001916906020019092919050505061134a565b604051808215151515815260200191505060405180910390f35b34801561036e57600080fd5b50610377611439565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b757808201518184015260208101905061039c565b50505050905090810190601f1680156103e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103fe57600080fd5b50610459600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611472565b60405180826000191660001916815260200191505060405180910390f35b34801561048357600080fd5b506104c66004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114de565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b5061050b6004803603810190808035906020019092919050505061150d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055957600080fd5b5061057c600480360381019080803560001916906020019092919050505061154b565b604051808215151515815260200191505060405180910390f35b3480156105a257600080fd5b506105ab61156b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105eb5780820151818401526020810190506105d0565b50505050905090810190601f1680156106185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080835183111515156106f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5468726573686f6c642063616e6e6f742065786365656420667269656e64732081526020017f636f756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002831015151561076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107756115a4565b600091505b835182101561097957838281518110151561079157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610914576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4475706c696361746520667269656e6420616464726573732070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818060010192505061077a565b836003908051906020019061098f929190611697565b508260028190555050505050565b60046020528060005260406000206000915054906101000a900460ff1681565b60606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509150610bd582611472565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610c7e8161134a565b1515610d18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6181526020017f74696f6e7300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e2957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610eb857600080fd5b505af1158015610ecc573d6000803e3d6000fd5b505050506040513d6020811015610ee257600080fd5b81019080805190602001909291905050501515610f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611055576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60038054905081101561142d57600660008560001916600019168152602001908152602001600020600060038381548110151561138c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561140d5781806001019250505b6002548214156114205760019250611432565b8080600101915050611353565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b6020831015156114aa5780518252602082019150602081019050602083039250611485565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60038181548110151561151c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611710579160200282015b8281111561170f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906116b7565b5b50905061171d9190611721565b5090565b61176191905b8082111561175d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611727565b5090565b905600a165627a7a7230582056674b0a048c9eb59cf0ed9e3af92ae17e0c455580386c7ab34db9e8f16583b80029", + "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342cde4e8146100d5578063481c6a75146101005780634ab884271461015757806368125a1b146101c757806377231eaa1461022257806379716e43146102a55780637de7edef146102d65780639ca89d0d14610319578063a3f4df7e14610362578063ae68b056146103f2578063b79ffaff14610477578063ce146828146104e0578063e52cb36a1461054d578063ffa1ad7414610596575b600080fd5b3480156100e157600080fd5b506100ea610626565b6040518082815260200191505060405180910390f35b34801561010c57600080fd5b5061011561062c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016357600080fd5b506101c56004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610652565b005b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099d565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b506102a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b005b3480156102b157600080fd5b506102d46004803603810190808035600019169060200190929190505050610f6e565b005b3480156102e257600080fd5b50610317600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611167565b005b34801561032557600080fd5b50610348600480360381019080803560001916906020019092919050505061134a565b604051808215151515815260200191505060405180910390f35b34801561036e57600080fd5b50610377611439565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b757808201518184015260208101905061039c565b50505050905090810190601f1680156103e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103fe57600080fd5b50610459600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611472565b60405180826000191660001916815260200191505060405180910390f35b34801561048357600080fd5b506104c66004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114de565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b5061050b6004803603810190808035906020019092919050505061150d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055957600080fd5b5061057c600480360381019080803560001916906020019092919050505061154b565b604051808215151515815260200191505060405180910390f35b3480156105a257600080fd5b506105ab61156b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105eb5780820151818401526020810190506105d0565b50505050905090810190601f1680156106185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080835183111515156106f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5468726573686f6c642063616e6e6f742065786365656420667269656e64732081526020017f636f756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002831015151561076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107756115a4565b600091505b835182101561097957838281518110151561079157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610914576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4475706c696361746520667269656e6420616464726573732070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818060010192505061077a565b836003908051906020019061098f929190611697565b508260028190555050505050565b60046020528060005260406000206000915054906101000a900460ff1681565b60606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509150610bd582611472565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610c7e8161134a565b1515610d18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6181526020017f74696f6e7300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e2957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610eb857600080fd5b505af1158015610ecc573d6000803e3d6000fd5b505050506040513d6020811015610ee257600080fd5b81019080805190602001909291905050501515610f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611055576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60038054905081101561142d57600660008560001916600019168152602001908152602001600020600060038381548110151561138c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561140d5781806001019250505b6002548214156114205760019250611432565b8080600101915050611353565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b6020831015156114aa5780518252602082019150602081019050602083039250611485565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60038181548110151561151c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611710579160200282015b8281111561170f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906116b7565b5b50905061171d9190611721565b5090565b61176191905b8082111561175d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611727565b5090565b905600a165627a7a7230582056674b0a048c9eb59cf0ed9e3af92ae17e0c455580386c7ab34db9e8f16583b80029", + "sourceMap": "328:3660:18:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;328:3660:18;;;;;;;", + "deployedSourceMap": "328:3660:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;482:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;482:24:18;;;;;;;;;;;;;;;;;;;;;;;270:28:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;270:28:4;;;;;;;;;;;;;;;;;;;;;;;;;;;1240:640:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1240:640:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;607:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;607:41:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:625;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2536:625:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1993:210;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1993:210:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3322:405:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3322:405:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;375:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;375:54:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;375:54:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3856:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3856:130:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;851:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;851:65:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;512:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;512:24:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;716:43:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;435:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;435:40:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;435:40:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;482:24;;;;:::o;270:28:4:-;;;;;;;;;;;;;:::o;1240:640:18:-;1537:9;1592:14;1346:8;:15;1332:10;:29;;1324:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1435:1;1421:10;:15;;1413:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1478:12;:10;:12::i;:::-;1549:1;1537:13;;1532:282;1556:8;:15;1552:1;:19;1532:282;;;1609:8;1618:1;1609:11;;;;;;;;;;;;;;;;;;1592:28;;1652:1;1642:6;:11;;;;1634:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1712:8;:16;1721:6;1712:16;;;;;;;;;;;;;;;;;;;;;;;;;1711:17;1703:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1799:4;1780:8;:16;1789:6;1780:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;1573:3;;;;;;;1532:282;;;1833:8;1823:7;:18;;;;;;;;;;;;:::i;:::-;;1863:10;1851:9;:22;;;;1240:640;;;;:::o;607:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;2536:625::-;2662:17;2784:16;963:8;:20;972:10;963:20;;;;;;;;;;;;;;;;;;;;;;;;;955:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2744:9;2755:8;2765;2682:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2682:92:18;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2682:92:18;2662:112;;2803:17;2815:4;2803:11;:17::i;:::-;2784:36;;2839:10;:20;2850:8;2839:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2838:21;2830:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2907:38;2936:8;2907:28;:38::i;:::-;2899:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3020:4;2997:10;:20;3008:8;2997:20;;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3042:7;;;;;;;;;;;:33;;;3084:7;;;;;;;;;;;3094:1;3097:4;3103:19;3042:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3042:81:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3042:81:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3042:81:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3042:81:18;;;;;;;;;;;;;;;;3034:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:625;;;;;:::o;1993:210::-;963:8;:20;972:10;963:20;;;;;;;;;;;;;;;;;;;;;;;;;955:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2096:10;:20;2107:8;2096:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2095:21;2087:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2192:4;2156:11;:21;2168:8;2156:21;;;;;;;;;;;;;;;;;:33;2178:10;2156:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1993:210;:::o;626:248:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;3322:405:18:-;3423:4;3443:25;3483:9;3495:1;3483:13;;3478:221;3502:7;:14;;;;3498:1;:18;3478:221;;;3541:11;:21;3553:8;3541:21;;;;;;;;;;;;;;;;;:33;3563:7;3571:1;3563:10;;;;;;;;;;;;;;;;;;;;;;;;;;;3541:33;;;;;;;;;;;;;;;;;;;;;;;;;3537:74;;;3592:19;;;;;;;3537:74;3650:9;;3629:17;:30;3625:63;;;3684:4;3677:11;;;;3625:63;3518:3;;;;;;;3478:221;;;3715:5;3708:12;;3322:405;;;;;;:::o;375:54::-;;;;;;;;;;;;;;;;;;;;:::o;3856:130::-;3934:7;3974:4;3964:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3964:15:18;;;;;;;;;;;;;;;;3957:22;;3856:130;;;:::o;851:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;512:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;716:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;435:40::-;;;;;;;;;;;;;;;;;;;;:::o;442:300:4:-;656:1;644:7;;;;;;;;;;;636:21;;;628:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;724:10;700:7;;:35;;;;;;;;;;;;;;;;;;442:300::o;328:3660:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"../base/Module.sol\";\nimport \"../base/ModuleManager.sol\";\nimport \"../base/OwnerManager.sol\";\nimport \"../common/Enum.sol\";\n\n\n/// @title Social Recovery Module - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n/// @author Stefan George - \ncontract SocialRecoveryModule is Module {\n\n string public constant NAME = \"Social Recovery Module\";\n string public constant VERSION = \"0.0.2\";\n\n uint256 public threshold;\n address[] public friends;\n\n // isFriend mapping maps friend's address to friend status.\n mapping (address => bool) public isFriend;\n // isExecuted mapping maps data hash to execution status.\n mapping (bytes32 => bool) public isExecuted;\n // isConfirmed mapping maps data hash to friend's address to confirmation status.\n mapping (bytes32 => mapping (address => bool)) public isConfirmed;\n\n modifier onlyFriend() {\n require(isFriend[msg.sender], \"Method can only be called by a friend\");\n _;\n }\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _friends List of friends' addresses.\n /// @param _threshold Required number of friends to confirm replacement.\n function setup(address[] _friends, uint256 _threshold)\n public\n {\n require(_threshold <= _friends.length, \"Threshold cannot exceed friends count\");\n require(_threshold >= 2, \"At least 2 friends required\");\n setManager();\n // Set allowed friends.\n for (uint256 i = 0; i < _friends.length; i++) {\n address friend = _friends[i];\n require(friend != 0, \"Invalid friend address provided\");\n require(!isFriend[friend], \"Duplicate friend address provided\");\n isFriend[friend] = true;\n }\n friends = _friends;\n threshold = _threshold;\n }\n\n /// @dev Allows a friend to confirm a Safe transaction.\n /// @param dataHash Safe transaction hash.\n function confirmTransaction(bytes32 dataHash)\n public\n onlyFriend\n {\n require(!isExecuted[dataHash], \"Recovery already executed\");\n isConfirmed[dataHash][msg.sender] = true;\n }\n\n /// @dev Returns if Safe transaction is a valid owner replacement transaction.\n /// @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n /// @param oldOwner Owner address to be replaced.\n /// @param newOwner New owner address.\n /// @return Returns if transaction can be executed.\n function recoverAccess(address prevOwner, address oldOwner, address newOwner)\n public\n onlyFriend\n {\n bytes memory data = abi.encodeWithSignature(\"swapOwner(address,address,address)\", prevOwner, oldOwner, newOwner);\n bytes32 dataHash = getDataHash(data);\n require(!isExecuted[dataHash], \"Recovery already executed\");\n require(isConfirmedByRequiredFriends(dataHash), \"Recovery has not enough confirmations\");\n isExecuted[dataHash] = true;\n require(manager.execTransactionFromModule(address(manager), 0, data, Enum.Operation.Call), \"Could not execute recovery\");\n }\n\n /// @dev Returns if Safe transaction is a valid owner replacement transaction.\n /// @param dataHash Data hash.\n /// @return Confirmation status.\n function isConfirmedByRequiredFriends(bytes32 dataHash)\n public\n view\n returns (bool)\n {\n uint256 confirmationCount;\n for (uint256 i = 0; i < friends.length; i++) {\n if (isConfirmed[dataHash][friends[i]])\n confirmationCount++;\n if (confirmationCount == threshold)\n return true;\n }\n return false;\n }\n\n /// @dev Returns hash of data encoding owner replacement.\n /// @param data Data payload.\n /// @return Data hash.\n function getDataHash(bytes data)\n public\n pure\n returns (bytes32)\n {\n return keccak256(data);\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", "exportedSymbols": { "SocialRecoveryModule": [ - 2380 + 2375 ] }, - "id": 2381, + "id": 2376, "nodeType": "SourceUnit", "nodes": [ { - "id": 2117, + "id": 2112, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:21" + "src": "0:23:18" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", - "file": "../Enum.sol", - "id": 2118, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "file": "../base/Module.sol", + "id": 2113, "nodeType": "ImportDirective", - "scope": 2381, - "sourceUnit": 31, - "src": "24:21:21", + "scope": 2376, + "sourceUnit": 936, + "src": "24:28:18", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", - "file": "../Module.sol", - "id": 2119, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "file": "../base/ModuleManager.sol", + "id": 2114, "nodeType": "ImportDirective", - "scope": 2381, - "sourceUnit": 914, - "src": "46:23:21", + "scope": 2376, + "sourceUnit": 1213, + "src": "53:35:18", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", - "file": "../ModuleManager.sol", - "id": 2120, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "file": "../base/OwnerManager.sol", + "id": 2115, "nodeType": "ImportDirective", - "scope": 2381, - "sourceUnit": 1181, - "src": "70:30:21", + "scope": 2376, + "sourceUnit": 1653, + "src": "89:34:18", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", - "file": "../OwnerManager.sol", - "id": 2121, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "file": "../common/Enum.sol", + "id": 2116, "nodeType": "ImportDirective", - "scope": 2381, - "sourceUnit": 1589, - "src": "101:29:21", + "scope": 2376, + "sourceUnit": 1660, + "src": "124:28:18", "symbolAliases": [], "unitAlias": "" }, @@ -320,46 +320,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2122, + "id": 2117, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "339:6:21", + "referencedDeclaration": 935, + "src": "361:6:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, - "id": 2123, + "id": 2118, "nodeType": "InheritanceSpecifier", - "src": "339:6:21" + "src": "361:6:18" } ], "contractDependencies": [ - 813, - 913, - 1765 + 935, + 1693, + 1735 ], "contractKind": "contract", "documentation": "@title Social Recovery Module - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n @author Stefan George - ", "fullyImplemented": true, - "id": 2380, + "id": 2375, "linearizedBaseContracts": [ - 2380, - 913, - 813, - 1765 + 2375, + 935, + 1693, + 1735 ], "name": "SocialRecoveryModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2126, + "id": 2121, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "353:54:21", + "scope": 2375, + "src": "375:54:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -367,10 +367,10 @@ "typeString": "string" }, "typeName": { - "id": 2124, + "id": 2119, "name": "string", "nodeType": "ElementaryTypeName", - "src": "353:6:21", + "src": "375:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -379,14 +379,14 @@ "value": { "argumentTypes": null, "hexValue": "536f6369616c205265636f76657279204d6f64756c65", - "id": 2125, + "id": 2120, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "383:24:21", + "src": "405:24:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8f499aea563eae5544b16c9123d6c7c8537a7d9dd86296aa60c65de194207230", @@ -398,11 +398,11 @@ }, { "constant": true, - "id": 2129, + "id": 2124, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "413:40:21", + "scope": 2375, + "src": "435:40:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -410,10 +410,10 @@ "typeString": "string" }, "typeName": { - "id": 2127, + "id": 2122, "name": "string", "nodeType": "ElementaryTypeName", - "src": "413:6:21", + "src": "435:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -421,31 +421,31 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e31", - "id": 2128, + "hexValue": "302e302e32", + "id": 2123, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "446:7:21", + "src": "468:7:18", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" + "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", + "typeString": "literal_string \"0.0.2\"" }, - "value": "0.0.1" + "value": "0.0.2" }, "visibility": "public" }, { "constant": false, - "id": 2131, + "id": 2126, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "460:24:21", + "scope": 2375, + "src": "482:24:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -453,10 +453,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2130, + "id": 2125, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "460:7:21", + "src": "482:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -467,11 +467,11 @@ }, { "constant": false, - "id": 2134, + "id": 2129, "name": "friends", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "490:24:21", + "scope": 2375, + "src": "512:24:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -480,19 +480,19 @@ }, "typeName": { "baseType": { - "id": 2132, + "id": 2127, "name": "address", "nodeType": "ElementaryTypeName", - "src": "490:7:21", + "src": "512:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2133, + "id": 2128, "length": null, "nodeType": "ArrayTypeName", - "src": "490:9:21", + "src": "512:9:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -503,11 +503,11 @@ }, { "constant": false, - "id": 2138, + "id": 2133, "name": "isFriend", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "585:41:21", + "scope": 2375, + "src": "607:41:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -515,28 +515,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 2137, + "id": 2132, "keyType": { - "id": 2135, + "id": 2130, "name": "address", "nodeType": "ElementaryTypeName", - "src": "594:7:21", + "src": "616:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "585:25:21", + "src": "607:25:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2136, + "id": 2131, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "605:4:21", + "src": "627:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -548,11 +548,11 @@ }, { "constant": false, - "id": 2142, + "id": 2137, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "694:43:21", + "scope": 2375, + "src": "716:43:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -560,28 +560,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 2141, + "id": 2136, "keyType": { - "id": 2139, + "id": 2134, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "703:7:21", + "src": "725:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "694:25:21", + "src": "716:25:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 2140, + "id": 2135, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "714:4:21", + "src": "736:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -593,11 +593,11 @@ }, { "constant": false, - "id": 2148, + "id": 2143, "name": "isConfirmed", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "829:65:21", + "scope": 2375, + "src": "851:65:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -605,46 +605,46 @@ "typeString": "mapping(bytes32 => mapping(address => bool))" }, "typeName": { - "id": 2147, + "id": 2142, "keyType": { - "id": 2143, + "id": 2138, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "838:7:21", + "src": "860:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "829:46:21", + "src": "851:46:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" }, "valueType": { - "id": 2146, + "id": 2141, "keyType": { - "id": 2144, + "id": 2139, "name": "address", "nodeType": "ElementaryTypeName", - "src": "858:7:21", + "src": "880:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "849:25:21", + "src": "871:25:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2145, + "id": 2140, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "869:4:21", + "src": "891:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -657,9 +657,9 @@ }, { "body": { - "id": 2159, + "id": 2154, "nodeType": "Block", - "src": "923:98:21", + "src": "945:98:18", "statements": [ { "expression": { @@ -669,34 +669,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2151, + "id": 2146, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "941:8:21", + "referencedDeclaration": 2133, + "src": "963:8:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2154, + "id": 2149, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2152, + "id": 2147, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "950:3:21", + "referencedDeclaration": 4491, + "src": "972:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2153, + "id": 2148, "isConstant": false, "isLValue": false, "isPure": false, @@ -704,7 +704,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "950:10:21", + "src": "972:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -715,7 +715,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "941:20:21", + "src": "963:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -724,14 +724,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c6564206279206120667269656e64", - "id": 2155, + "id": 2150, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "963:39:21", + "src": "985:39:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a", @@ -751,21 +751,21 @@ "typeString": "literal_string \"Method can only be called by a friend\"" } ], - "id": 2150, + "id": 2145, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "933:7:21", + "referencedDeclaration": 4495, + "src": "955:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2156, + "id": 2151, "isConstant": false, "isLValue": false, "isPure": false, @@ -773,41 +773,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "933:70:21", + "src": "955:70:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2157, + "id": 2152, "nodeType": "ExpressionStatement", - "src": "933:70:21" + "src": "955:70:18" }, { - "id": 2158, + "id": 2153, "nodeType": "PlaceholderStatement", - "src": "1013:1:21" + "src": "1035:1:18" } ] }, "documentation": null, - "id": 2160, + "id": 2155, "name": "onlyFriend", "nodeType": "ModifierDefinition", "parameters": { - "id": 2149, + "id": 2144, "nodeType": "ParameterList", "parameters": [], - "src": "920:2:21" + "src": "942:2:18" }, - "src": "901:120:21", + "src": "923:120:18", "visibility": "internal" }, { "body": { - "id": 2234, + "id": 2229, "nodeType": "Block", - "src": "1292:566:21", + "src": "1314:566:18", "statements": [ { "expression": { @@ -819,19 +819,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2172, + "id": 2167, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2169, + "id": 2164, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "1310:10:21", + "referencedDeclaration": 2160, + "src": "1332:10:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -843,18 +843,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2170, + "id": 2165, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, - "src": "1324:8:21", + "referencedDeclaration": 2158, + "src": "1346:8:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2171, + "id": 2166, "isConstant": false, "isLValue": false, "isPure": false, @@ -862,13 +862,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1324:15:21", + "src": "1346:15:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1310:29:21", + "src": "1332:29:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -877,14 +877,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f742065786365656420667269656e647320636f756e74", - "id": 2173, + "id": 2168, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1341:39:21", + "src": "1363:39:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257", @@ -904,21 +904,21 @@ "typeString": "literal_string \"Threshold cannot exceed friends count\"" } ], - "id": 2168, + "id": 2163, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1302:7:21", + "referencedDeclaration": 4495, + "src": "1324:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2174, + "id": 2169, "isConstant": false, "isLValue": false, "isPure": false, @@ -926,15 +926,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1302:79:21", + "src": "1324:79:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2175, + "id": 2170, "nodeType": "ExpressionStatement", - "src": "1302:79:21" + "src": "1324:79:18" }, { "expression": { @@ -946,19 +946,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2179, + "id": 2174, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2177, + "id": 2172, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "1399:10:21", + "referencedDeclaration": 2160, + "src": "1421:10:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -969,14 +969,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 2178, + "id": 2173, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1413:1:21", + "src": "1435:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -984,7 +984,7 @@ }, "value": "2" }, - "src": "1399:15:21", + "src": "1421:15:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -993,14 +993,14 @@ { "argumentTypes": null, "hexValue": "4174206c65617374203220667269656e6473207265717569726564", - "id": 2180, + "id": 2175, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1416:29:21", + "src": "1438:29:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773", @@ -1020,21 +1020,21 @@ "typeString": "literal_string \"At least 2 friends required\"" } ], - "id": 2176, + "id": 2171, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1391:7:21", + "referencedDeclaration": 4495, + "src": "1413:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2181, + "id": 2176, "isConstant": false, "isLValue": false, "isPure": false, @@ -1042,15 +1042,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1391:55:21", + "src": "1413:55:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2182, + "id": 2177, "nodeType": "ExpressionStatement", - "src": "1391:55:21" + "src": "1413:55:18" }, { "expression": { @@ -1058,18 +1058,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2183, + "id": 2178, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 912, - "src": "1456:10:21", + "referencedDeclaration": 934, + "src": "1478:10:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2184, + "id": 2179, "isConstant": false, "isLValue": false, "isPure": false, @@ -1077,34 +1077,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1456:12:21", + "src": "1478:12:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2185, + "id": 2180, "nodeType": "ExpressionStatement", - "src": "1456:12:21" + "src": "1478:12:18" }, { "body": { - "id": 2224, + "id": 2219, "nodeType": "Block", - "src": "1556:236:21", + "src": "1578:236:18", "statements": [ { "assignments": [ - 2198 + 2193 ], "declarations": [ { "constant": false, - "id": 2198, + "id": 2193, "name": "friend", "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "1570:14:21", + "scope": 2230, + "src": "1592:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1112,10 +1112,10 @@ "typeString": "address" }, "typeName": { - "id": 2197, + "id": 2192, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1570:7:21", + "src": "1592:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1125,31 +1125,31 @@ "visibility": "internal" } ], - "id": 2202, + "id": 2197, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2199, + "id": 2194, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, - "src": "1587:8:21", + "referencedDeclaration": 2158, + "src": "1609:8:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2201, + "id": 2196, "indexExpression": { "argumentTypes": null, - "id": 2200, + "id": 2195, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2187, - "src": "1596:1:21", + "referencedDeclaration": 2182, + "src": "1618:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1160,14 +1160,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1587:11:21", + "src": "1609:11:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1570:28:21" + "src": "1592:28:18" }, { "expression": { @@ -1179,19 +1179,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2206, + "id": 2201, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2204, + "id": 2199, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2198, - "src": "1620:6:21", + "referencedDeclaration": 2193, + "src": "1642:6:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1202,14 +1202,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2205, + "id": 2200, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1630:1:21", + "src": "1652:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1217,7 +1217,7 @@ }, "value": "0" }, - "src": "1620:11:21", + "src": "1642:11:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1226,14 +1226,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420667269656e6420616464726573732070726f7669646564", - "id": 2207, + "id": 2202, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1633:33:21", + "src": "1655:33:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55", @@ -1253,21 +1253,21 @@ "typeString": "literal_string \"Invalid friend address provided\"" } ], - "id": 2203, + "id": 2198, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1612:7:21", + "referencedDeclaration": 4495, + "src": "1634:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2208, + "id": 2203, "isConstant": false, "isLValue": false, "isPure": false, @@ -1275,15 +1275,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1612:55:21", + "src": "1634:55:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2209, + "id": 2204, "nodeType": "ExpressionStatement", - "src": "1612:55:21" + "src": "1634:55:18" }, { "expression": { @@ -1291,7 +1291,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2214, + "id": 2209, "isConstant": false, "isLValue": false, "isPure": false, @@ -1299,31 +1299,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1689:17:21", + "src": "1711:17:18", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2211, + "id": 2206, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "1690:8:21", + "referencedDeclaration": 2133, + "src": "1712:8:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2213, + "id": 2208, "indexExpression": { "argumentTypes": null, - "id": 2212, + "id": 2207, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2198, - "src": "1699:6:21", + "referencedDeclaration": 2193, + "src": "1721:6:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1334,7 +1334,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1690:16:21", + "src": "1712:16:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1348,14 +1348,14 @@ { "argumentTypes": null, "hexValue": "4475706c696361746520667269656e6420616464726573732070726f7669646564", - "id": 2215, + "id": 2210, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1708:35:21", + "src": "1730:35:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3", @@ -1375,21 +1375,21 @@ "typeString": "literal_string \"Duplicate friend address provided\"" } ], - "id": 2210, + "id": 2205, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1681:7:21", + "referencedDeclaration": 4495, + "src": "1703:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2216, + "id": 2211, "isConstant": false, "isLValue": false, "isPure": false, @@ -1397,20 +1397,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1681:63:21", + "src": "1703:63:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2217, + "id": 2212, "nodeType": "ExpressionStatement", - "src": "1681:63:21" + "src": "1703:63:18" }, { "expression": { "argumentTypes": null, - "id": 2222, + "id": 2217, "isConstant": false, "isLValue": false, "isPure": false, @@ -1419,26 +1419,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2218, + "id": 2213, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "1758:8:21", + "referencedDeclaration": 2133, + "src": "1780:8:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2220, + "id": 2215, "indexExpression": { "argumentTypes": null, - "id": 2219, + "id": 2214, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2198, - "src": "1767:6:21", + "referencedDeclaration": 2193, + "src": "1789:6:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1449,7 +1449,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1758:16:21", + "src": "1780:16:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1460,14 +1460,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2221, + "id": 2216, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1777:4:21", + "src": "1799:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1475,15 +1475,15 @@ }, "value": "true" }, - "src": "1758:23:21", + "src": "1780:23:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2223, + "id": 2218, "nodeType": "ExpressionStatement", - "src": "1758:23:21" + "src": "1780:23:18" } ] }, @@ -1493,19 +1493,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2193, + "id": 2188, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2190, + "id": 2185, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2187, - "src": "1530:1:21", + "referencedDeclaration": 2182, + "src": "1552:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1517,18 +1517,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2191, + "id": 2186, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, - "src": "1534:8:21", + "referencedDeclaration": 2158, + "src": "1556:8:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2192, + "id": 2187, "isConstant": false, "isLValue": false, "isPure": false, @@ -1536,31 +1536,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1534:15:21", + "src": "1556:15:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1530:19:21", + "src": "1552:19:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2225, + "id": 2220, "initializationExpression": { "assignments": [ - 2187 + 2182 ], "declarations": [ { "constant": false, - "id": 2187, + "id": 2182, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "1515:9:21", + "scope": 2230, + "src": "1537:9:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1568,10 +1568,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2186, + "id": 2181, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1515:7:21", + "src": "1537:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1581,18 +1581,18 @@ "visibility": "internal" } ], - "id": 2189, + "id": 2184, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2188, + "id": 2183, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1527:1:21", + "src": "1549:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1601,12 +1601,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1515:13:21" + "src": "1537:13:18" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2195, + "id": 2190, "isConstant": false, "isLValue": false, "isPure": false, @@ -1614,15 +1614,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1551:3:21", + "src": "1573:3:18", "subExpression": { "argumentTypes": null, - "id": 2194, + "id": 2189, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2187, - "src": "1551:1:21", + "referencedDeclaration": 2182, + "src": "1573:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1633,29 +1633,29 @@ "typeString": "uint256" } }, - "id": 2196, + "id": 2191, "nodeType": "ExpressionStatement", - "src": "1551:3:21" + "src": "1573:3:18" }, "nodeType": "ForStatement", - "src": "1510:282:21" + "src": "1532:282:18" }, { "expression": { "argumentTypes": null, - "id": 2228, + "id": 2223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2226, + "id": 2221, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "1801:7:21", + "referencedDeclaration": 2129, + "src": "1823:7:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" @@ -1665,43 +1665,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2227, + "id": 2222, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, - "src": "1811:8:21", + "referencedDeclaration": 2158, + "src": "1833:8:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "src": "1801:18:21", + "src": "1823:18:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2229, + "id": 2224, "nodeType": "ExpressionStatement", - "src": "1801:18:21" + "src": "1823:18:18" }, { "expression": { "argumentTypes": null, - "id": 2232, + "id": 2227, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2230, + "id": 2225, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "1829:9:21", + "referencedDeclaration": 2126, + "src": "1851:9:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1711,31 +1711,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2231, + "id": 2226, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "1841:10:21", + "referencedDeclaration": 2160, + "src": "1863:10:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1829:22:21", + "src": "1851:22:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2233, + "id": 2228, "nodeType": "ExpressionStatement", - "src": "1829:22:21" + "src": "1851:22:18" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param _friends List of friends' addresses.\n @param _threshold Required number of friends to confirm replacement.", - "id": 2235, + "id": 2230, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1743,16 +1743,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2166, + "id": 2161, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2163, + "id": 2158, "name": "_friends", "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "1233:18:21", + "scope": 2230, + "src": "1255:18:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1761,19 +1761,19 @@ }, "typeName": { "baseType": { - "id": 2161, + "id": 2156, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1233:7:21", + "src": "1255:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2162, + "id": 2157, "length": null, "nodeType": "ArrayTypeName", - "src": "1233:9:21", + "src": "1255:9:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1784,11 +1784,11 @@ }, { "constant": false, - "id": 2165, + "id": 2160, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "1253:18:21", + "scope": 2230, + "src": "1275:18:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1796,10 +1796,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2164, + "id": 2159, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1253:7:21", + "src": "1275:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1809,26 +1809,26 @@ "visibility": "internal" } ], - "src": "1232:40:21" + "src": "1254:40:18" }, "payable": false, "returnParameters": { - "id": 2167, + "id": 2162, "nodeType": "ParameterList", "parameters": [], - "src": "1292:0:21" + "src": "1314:0:18" }, - "scope": 2380, - "src": "1218:640:21", + "scope": 2375, + "src": "1240:640:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2259, + "id": 2254, "nodeType": "Block", - "src": "2055:126:21", + "src": "2077:126:18", "statements": [ { "expression": { @@ -1836,7 +1836,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2246, + "id": 2241, "isConstant": false, "isLValue": false, "isPure": false, @@ -1844,31 +1844,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2073:21:21", + "src": "2095:21:18", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2243, + "id": 2238, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2074:10:21", + "referencedDeclaration": 2137, + "src": "2096:10:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2245, + "id": 2240, "indexExpression": { "argumentTypes": null, - "id": 2244, + "id": 2239, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2237, - "src": "2085:8:21", + "referencedDeclaration": 2232, + "src": "2107:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1879,7 +1879,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2074:20:21", + "src": "2096:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1893,14 +1893,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2247, + "id": 2242, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2096:27:21", + "src": "2118:27:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", @@ -1920,21 +1920,21 @@ "typeString": "literal_string \"Recovery already executed\"" } ], - "id": 2242, + "id": 2237, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2065:7:21", + "referencedDeclaration": 4495, + "src": "2087:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2248, + "id": 2243, "isConstant": false, "isLValue": false, "isPure": false, @@ -1942,20 +1942,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2065:59:21", + "src": "2087:59:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2249, + "id": 2244, "nodeType": "ExpressionStatement", - "src": "2065:59:21" + "src": "2087:59:18" }, { "expression": { "argumentTypes": null, - "id": 2257, + "id": 2252, "isConstant": false, "isLValue": false, "isPure": false, @@ -1966,26 +1966,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2250, + "id": 2245, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2148, - "src": "2134:11:21", + "referencedDeclaration": 2143, + "src": "2156:11:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 2254, + "id": 2249, "indexExpression": { "argumentTypes": null, - "id": 2251, + "id": 2246, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2237, - "src": "2146:8:21", + "referencedDeclaration": 2232, + "src": "2168:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1996,29 +1996,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2134:21:21", + "src": "2156:21:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2255, + "id": 2250, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2252, + "id": 2247, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2156:3:21", + "referencedDeclaration": 4491, + "src": "2178:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2253, + "id": 2248, "isConstant": false, "isLValue": false, "isPure": false, @@ -2026,7 +2026,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2156:10:21", + "src": "2178:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2037,7 +2037,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2134:33:21", + "src": "2156:33:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2048,14 +2048,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2256, + "id": 2251, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2170:4:21", + "src": "2192:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2063,57 +2063,57 @@ }, "value": "true" }, - "src": "2134:40:21", + "src": "2156:40:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2258, + "id": 2253, "nodeType": "ExpressionStatement", - "src": "2134:40:21" + "src": "2156:40:18" } ] }, "documentation": "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash.", - "id": 2260, + "id": 2255, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2240, + "id": 2235, "modifierName": { "argumentTypes": null, - "id": 2239, + "id": 2234, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "2040:10:21", + "referencedDeclaration": 2155, + "src": "2062:10:18", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2040:10:21" + "src": "2062:10:18" } ], "name": "confirmTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 2238, + "id": 2233, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2237, + "id": 2232, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2260, - "src": "1999:16:21", + "scope": 2255, + "src": "2021:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2121,10 +2121,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2236, + "id": 2231, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1999:7:21", + "src": "2021:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2134,39 +2134,39 @@ "visibility": "internal" } ], - "src": "1998:18:21" + "src": "2020:18:18" }, "payable": false, "returnParameters": { - "id": 2241, + "id": 2236, "nodeType": "ParameterList", "parameters": [], - "src": "2055:0:21" + "src": "2077:0:18" }, - "scope": 2380, - "src": "1971:210:21", + "scope": 2375, + "src": "1993:210:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2323, + "id": 2318, "nodeType": "Block", - "src": "2630:509:21", + "src": "2652:509:18", "statements": [ { "assignments": [ - 2272 + 2267 ], "declarations": [ { "constant": false, - "id": 2272, + "id": 2267, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "2640:17:21", + "scope": 2319, + "src": "2662:17:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2174,10 +2174,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2271, + "id": 2266, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2640:5:21", + "src": "2662:5:18", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2187,21 +2187,21 @@ "visibility": "internal" } ], - "id": 2280, + "id": 2275, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "737761704f776e657228616464726573732c616464726573732c6164647265737329", - "id": 2275, + "id": 2270, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2684:36:21", + "src": "2706:36:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", @@ -2211,12 +2211,12 @@ }, { "argumentTypes": null, - "id": 2276, + "id": 2271, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2262, - "src": "2722:9:21", + "referencedDeclaration": 2257, + "src": "2744:9:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2224,12 +2224,12 @@ }, { "argumentTypes": null, - "id": 2277, + "id": 2272, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2264, - "src": "2733:8:21", + "referencedDeclaration": 2259, + "src": "2755:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2237,12 +2237,12 @@ }, { "argumentTypes": null, - "id": 2278, + "id": 2273, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "2743:8:21", + "referencedDeclaration": 2261, + "src": "2765:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2270,18 +2270,18 @@ ], "expression": { "argumentTypes": null, - "id": 2273, + "id": 2268, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "2660:3:21", + "referencedDeclaration": 4478, + "src": "2682:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 2274, + "id": 2269, "isConstant": false, "isLValue": false, "isPure": true, @@ -2289,13 +2289,13 @@ "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2660:23:21", + "src": "2682:23:18", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 2279, + "id": 2274, "isConstant": false, "isLValue": false, "isPure": false, @@ -2303,27 +2303,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2660:92:21", + "src": "2682:92:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2640:112:21" + "src": "2662:112:18" }, { "assignments": [ - 2282 + 2277 ], "declarations": [ { "constant": false, - "id": 2282, + "id": 2277, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "2762:16:21", + "scope": 2319, + "src": "2784:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2331,10 +2331,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2281, + "id": 2276, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2762:7:21", + "src": "2784:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2344,18 +2344,18 @@ "visibility": "internal" } ], - "id": 2286, + "id": 2281, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2284, + "id": 2279, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2272, - "src": "2793:4:21", + "referencedDeclaration": 2267, + "src": "2815:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2369,18 +2369,18 @@ "typeString": "bytes memory" } ], - "id": 2283, + "id": 2278, "name": "getDataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2379, - "src": "2781:11:21", + "referencedDeclaration": 2374, + "src": "2803:11:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2285, + "id": 2280, "isConstant": false, "isLValue": false, "isPure": false, @@ -2388,14 +2388,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2781:17:21", + "src": "2803:17:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2762:36:21" + "src": "2784:36:18" }, { "expression": { @@ -2403,7 +2403,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2291, + "id": 2286, "isConstant": false, "isLValue": false, "isPure": false, @@ -2411,31 +2411,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2816:21:21", + "src": "2838:21:18", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2288, + "id": 2283, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2817:10:21", + "referencedDeclaration": 2137, + "src": "2839:10:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2290, + "id": 2285, "indexExpression": { "argumentTypes": null, - "id": 2289, + "id": 2284, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2282, - "src": "2828:8:21", + "referencedDeclaration": 2277, + "src": "2850:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2446,7 +2446,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2817:20:21", + "src": "2839:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2460,14 +2460,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2292, + "id": 2287, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2839:27:21", + "src": "2861:27:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", @@ -2487,21 +2487,21 @@ "typeString": "literal_string \"Recovery already executed\"" } ], - "id": 2287, + "id": 2282, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2808:7:21", + "referencedDeclaration": 4495, + "src": "2830:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2293, + "id": 2288, "isConstant": false, "isLValue": false, "isPure": false, @@ -2509,15 +2509,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2808:59:21", + "src": "2830:59:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2294, + "id": 2289, "nodeType": "ExpressionStatement", - "src": "2808:59:21" + "src": "2830:59:18" }, { "expression": { @@ -2528,12 +2528,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2297, + "id": 2292, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2282, - "src": "2914:8:21", + "referencedDeclaration": 2277, + "src": "2936:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2547,18 +2547,18 @@ "typeString": "bytes32" } ], - "id": 2296, + "id": 2291, "name": "isConfirmedByRequiredFriends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "2885:28:21", + "referencedDeclaration": 2362, + "src": "2907:28:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 2298, + "id": 2293, "isConstant": false, "isLValue": false, "isPure": false, @@ -2566,7 +2566,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2885:38:21", + "src": "2907:38:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2575,14 +2575,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 2299, + "id": 2294, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2925:39:21", + "src": "2947:39:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8", @@ -2602,21 +2602,21 @@ "typeString": "literal_string \"Recovery has not enough confirmations\"" } ], - "id": 2295, + "id": 2290, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2877:7:21", + "referencedDeclaration": 4495, + "src": "2899:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2300, + "id": 2295, "isConstant": false, "isLValue": false, "isPure": false, @@ -2624,20 +2624,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2877:88:21", + "src": "2899:88:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2301, + "id": 2296, "nodeType": "ExpressionStatement", - "src": "2877:88:21" + "src": "2899:88:18" }, { "expression": { "argumentTypes": null, - "id": 2306, + "id": 2301, "isConstant": false, "isLValue": false, "isPure": false, @@ -2646,26 +2646,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2302, + "id": 2297, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2975:10:21", + "referencedDeclaration": 2137, + "src": "2997:10:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2304, + "id": 2299, "indexExpression": { "argumentTypes": null, - "id": 2303, + "id": 2298, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2282, - "src": "2986:8:21", + "referencedDeclaration": 2277, + "src": "3008:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2676,7 +2676,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2975:20:21", + "src": "2997:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2687,14 +2687,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2305, + "id": 2300, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2998:4:21", + "src": "3020:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2702,15 +2702,15 @@ }, "value": "true" }, - "src": "2975:27:21", + "src": "2997:27:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2307, + "id": 2302, "nodeType": "ExpressionStatement", - "src": "2975:27:21" + "src": "2997:27:18" }, { "expression": { @@ -2724,14 +2724,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2312, + "id": 2307, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "3062:7:21", + "referencedDeclaration": 900, + "src": "3084:7:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } } @@ -2739,24 +2739,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } ], - "id": 2311, + "id": 2306, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3054:7:21", + "src": "3076:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2313, + "id": 2308, "isConstant": false, "isLValue": false, "isPure": false, @@ -2764,7 +2764,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3054:16:21", + "src": "3076:16:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2773,14 +2773,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2314, + "id": 2309, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3072:1:21", + "src": "3094:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2790,12 +2790,12 @@ }, { "argumentTypes": null, - "id": 2315, + "id": 2310, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2272, - "src": "3075:4:21", + "referencedDeclaration": 2267, + "src": "3097:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2807,32 +2807,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2316, + "id": 2311, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "3081:4:21", + "referencedDeclaration": 1659, + "src": "3103:4:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", "typeString": "type(contract Enum)" } }, - "id": 2317, + "id": 2312, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "3081:14:21", + "referencedDeclaration": 1658, + "src": "3103:14:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2318, + "id": 2313, "isConstant": false, "isLValue": false, "isPure": true, @@ -2840,9 +2840,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3081:19:21", + "src": "3103:19:18", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } } @@ -2862,38 +2862,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2309, + "id": 2304, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "3020:7:21", + "referencedDeclaration": 900, + "src": "3042:7:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, - "id": 2310, + "id": 2305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1106, - "src": "3020:33:21", + "referencedDeclaration": 1138, + "src": "3042:33:18", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2319, + "id": 2314, "isConstant": false, "isLValue": false, "isPure": false, @@ -2901,7 +2901,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3020:81:21", + "src": "3042:81:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2910,14 +2910,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207265636f76657279", - "id": 2320, + "id": 2315, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3103:28:21", + "src": "3125:28:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1", @@ -2937,21 +2937,21 @@ "typeString": "literal_string \"Could not execute recovery\"" } ], - "id": 2308, + "id": 2303, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "3012:7:21", + "referencedDeclaration": 4495, + "src": "3034:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2321, + "id": 2316, "isConstant": false, "isLValue": false, "isPure": false, @@ -2959,57 +2959,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3012:120:21", + "src": "3034:120:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2322, + "id": 2317, "nodeType": "ExpressionStatement", - "src": "3012:120:21" + "src": "3034:120:18" } ] }, "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.\n @return Returns if transaction can be executed.", - "id": 2324, + "id": 2319, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2269, + "id": 2264, "modifierName": { "argumentTypes": null, - "id": 2268, + "id": 2263, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "2615:10:21", + "referencedDeclaration": 2155, + "src": "2637:10:18", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2615:10:21" + "src": "2637:10:18" } ], "name": "recoverAccess", "nodeType": "FunctionDefinition", "parameters": { - "id": 2267, + "id": 2262, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2262, + "id": 2257, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "2537:17:21", + "scope": 2319, + "src": "2559:17:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3017,10 +3017,10 @@ "typeString": "address" }, "typeName": { - "id": 2261, + "id": 2256, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2537:7:21", + "src": "2559:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3031,11 +3031,11 @@ }, { "constant": false, - "id": 2264, + "id": 2259, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "2556:16:21", + "scope": 2319, + "src": "2578:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3043,10 +3043,10 @@ "typeString": "address" }, "typeName": { - "id": 2263, + "id": 2258, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2556:7:21", + "src": "2578:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3057,11 +3057,11 @@ }, { "constant": false, - "id": 2266, + "id": 2261, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "2574:16:21", + "scope": 2319, + "src": "2596:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3069,10 +3069,10 @@ "typeString": "address" }, "typeName": { - "id": 2265, + "id": 2260, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2574:7:21", + "src": "2596:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3082,37 +3082,37 @@ "visibility": "internal" } ], - "src": "2536:55:21" + "src": "2558:55:18" }, "payable": false, "returnParameters": { - "id": 2270, + "id": 2265, "nodeType": "ParameterList", "parameters": [], - "src": "2630:0:21" + "src": "2652:0:18" }, - "scope": 2380, - "src": "2514:625:21", + "scope": 2375, + "src": "2536:625:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2366, + "id": 2361, "nodeType": "Block", - "src": "3411:294:21", + "src": "3433:294:18", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 2332, + "id": 2327, "name": "confirmationCount", "nodeType": "VariableDeclaration", - "scope": 2367, - "src": "3421:25:21", + "scope": 2362, + "src": "3443:25:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3120,10 +3120,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2331, + "id": 2326, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3421:7:21", + "src": "3443:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3133,16 +3133,16 @@ "visibility": "internal" } ], - "id": 2333, + "id": 2328, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3421:25:21" + "src": "3443:25:18" }, { "body": { - "id": 2362, + "id": 2357, "nodeType": "Block", - "src": "3501:176:21", + "src": "3523:176:18", "statements": [ { "condition": { @@ -3151,26 +3151,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2345, + "id": 2340, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2148, - "src": "3519:11:21", + "referencedDeclaration": 2143, + "src": "3541:11:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 2347, + "id": 2342, "indexExpression": { "argumentTypes": null, - "id": 2346, + "id": 2341, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "3531:8:21", + "referencedDeclaration": 2321, + "src": "3553:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3181,37 +3181,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3519:21:21", + "src": "3541:21:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2351, + "id": 2346, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2348, + "id": 2343, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "3541:7:21", + "referencedDeclaration": 2129, + "src": "3563:7:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2350, + "id": 2345, "indexExpression": { "argumentTypes": null, - "id": 2349, + "id": 2344, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2335, - "src": "3549:1:21", + "referencedDeclaration": 2330, + "src": "3571:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3222,7 +3222,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3541:10:21", + "src": "3563:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3233,20 +3233,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3519:33:21", + "src": "3541:33:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2355, + "id": 2350, "nodeType": "IfStatement", - "src": "3515:74:21", + "src": "3537:74:18", "trueBody": { "expression": { "argumentTypes": null, - "id": 2353, + "id": 2348, "isConstant": false, "isLValue": false, "isPure": false, @@ -3254,15 +3254,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3570:19:21", + "src": "3592:19:18", "subExpression": { "argumentTypes": null, - "id": 2352, + "id": 2347, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2332, - "src": "3570:17:21", + "referencedDeclaration": 2327, + "src": "3592:17:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3273,9 +3273,9 @@ "typeString": "uint256" } }, - "id": 2354, + "id": 2349, "nodeType": "ExpressionStatement", - "src": "3570:19:21" + "src": "3592:19:18" } }, { @@ -3285,19 +3285,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2358, + "id": 2353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2356, + "id": 2351, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2332, - "src": "3607:17:21", + "referencedDeclaration": 2327, + "src": "3629:17:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3307,39 +3307,39 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2357, + "id": 2352, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "3628:9:21", + "referencedDeclaration": 2126, + "src": "3650:9:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3607:30:21", + "src": "3629:30:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2361, + "id": 2356, "nodeType": "IfStatement", - "src": "3603:63:21", + "src": "3625:63:18", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2359, + "id": 2354, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3662:4:21", + "src": "3684:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3347,10 +3347,10 @@ }, "value": "true" }, - "functionReturnParameters": 2330, - "id": 2360, + "functionReturnParameters": 2325, + "id": 2355, "nodeType": "Return", - "src": "3655:11:21" + "src": "3677:11:18" } } ] @@ -3361,19 +3361,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2341, + "id": 2336, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2338, + "id": 2333, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2335, - "src": "3476:1:21", + "referencedDeclaration": 2330, + "src": "3498:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3385,18 +3385,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2339, + "id": 2334, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "3480:7:21", + "referencedDeclaration": 2129, + "src": "3502:7:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2340, + "id": 2335, "isConstant": false, "isLValue": true, "isPure": false, @@ -3404,31 +3404,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3480:14:21", + "src": "3502:14:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3476:18:21", + "src": "3498:18:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2363, + "id": 2358, "initializationExpression": { "assignments": [ - 2335 + 2330 ], "declarations": [ { "constant": false, - "id": 2335, + "id": 2330, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2367, - "src": "3461:9:21", + "scope": 2362, + "src": "3483:9:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3436,10 +3436,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2334, + "id": 2329, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3461:7:21", + "src": "3483:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3449,18 +3449,18 @@ "visibility": "internal" } ], - "id": 2337, + "id": 2332, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2336, + "id": 2331, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3473:1:21", + "src": "3495:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3469,12 +3469,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3461:13:21" + "src": "3483:13:18" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2343, + "id": 2338, "isConstant": false, "isLValue": false, "isPure": false, @@ -3482,15 +3482,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3496:3:21", + "src": "3518:3:18", "subExpression": { "argumentTypes": null, - "id": 2342, + "id": 2337, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2335, - "src": "3496:1:21", + "referencedDeclaration": 2330, + "src": "3518:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3501,25 +3501,25 @@ "typeString": "uint256" } }, - "id": 2344, + "id": 2339, "nodeType": "ExpressionStatement", - "src": "3496:3:21" + "src": "3518:3:18" }, "nodeType": "ForStatement", - "src": "3456:221:21" + "src": "3478:221:18" }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2364, + "id": 2359, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3693:5:21", + "src": "3715:5:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3527,15 +3527,15 @@ }, "value": "false" }, - "functionReturnParameters": 2330, - "id": 2365, + "functionReturnParameters": 2325, + "id": 2360, "nodeType": "Return", - "src": "3686:12:21" + "src": "3708:12:18" } ] }, "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param dataHash Data hash.\n @return Confirmation status.", - "id": 2367, + "id": 2362, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3543,16 +3543,16 @@ "name": "isConfirmedByRequiredFriends", "nodeType": "FunctionDefinition", "parameters": { - "id": 2327, + "id": 2322, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2326, + "id": 2321, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2367, - "src": "3338:16:21", + "scope": 2362, + "src": "3360:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3560,10 +3560,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2325, + "id": 2320, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3338:7:21", + "src": "3360:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3573,20 +3573,20 @@ "visibility": "internal" } ], - "src": "3337:18:21" + "src": "3359:18:18" }, "payable": false, "returnParameters": { - "id": 2330, + "id": 2325, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2329, + "id": 2324, "name": "", "nodeType": "VariableDeclaration", - "scope": 2367, - "src": "3401:4:21", + "scope": 2362, + "src": "3423:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3594,10 +3594,10 @@ "typeString": "bool" }, "typeName": { - "id": 2328, + "id": 2323, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3401:4:21", + "src": "3423:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3607,19 +3607,19 @@ "visibility": "internal" } ], - "src": "3400:6:21" + "src": "3422:6:18" }, - "scope": 2380, - "src": "3300:405:21", + "scope": 2375, + "src": "3322:405:18", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2378, + "id": 2373, "nodeType": "Block", - "src": "3925:39:21", + "src": "3947:39:18", "statements": [ { "expression": { @@ -3627,12 +3627,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2375, + "id": 2370, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2369, - "src": "3952:4:21", + "referencedDeclaration": 2364, + "src": "3974:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3646,18 +3646,18 @@ "typeString": "bytes memory" } ], - "id": 2374, + "id": 2369, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "3942:9:21", + "referencedDeclaration": 4485, + "src": "3964:9:18", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 2376, + "id": 2371, "isConstant": false, "isLValue": false, "isPure": false, @@ -3665,21 +3665,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3942:15:21", + "src": "3964:15:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 2373, - "id": 2377, + "functionReturnParameters": 2368, + "id": 2372, "nodeType": "Return", - "src": "3935:22:21" + "src": "3957:22:18" } ] }, "documentation": "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash.", - "id": 2379, + "id": 2374, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3687,16 +3687,16 @@ "name": "getDataHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2370, + "id": 2365, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2369, + "id": 2364, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2379, - "src": "3855:10:21", + "scope": 2374, + "src": "3877:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3704,10 +3704,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2368, + "id": 2363, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3855:5:21", + "src": "3877:5:18", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3717,20 +3717,20 @@ "visibility": "internal" } ], - "src": "3854:12:21" + "src": "3876:12:18" }, "payable": false, "returnParameters": { - "id": 2373, + "id": 2368, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2372, + "id": 2367, "name": "", "nodeType": "VariableDeclaration", - "scope": 2379, - "src": "3912:7:21", + "scope": 2374, + "src": "3934:7:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3738,10 +3738,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2371, + "id": 2366, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3912:7:21", + "src": "3934:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3751,82 +3751,82 @@ "visibility": "internal" } ], - "src": "3911:9:21" + "src": "3933:9:18" }, - "scope": 2380, - "src": "3834:130:21", + "scope": 2375, + "src": "3856:130:18", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 2381, - "src": "306:3660:21" + "scope": 2376, + "src": "328:3660:18" } ], - "src": "0:3967:21" + "src": "0:3989:18" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", "exportedSymbols": { "SocialRecoveryModule": [ - 2380 + 2375 ] }, - "id": 2381, + "id": 2376, "nodeType": "SourceUnit", "nodes": [ { - "id": 2117, + "id": 2112, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:21" + "src": "0:23:18" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", - "file": "../Enum.sol", - "id": 2118, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "file": "../base/Module.sol", + "id": 2113, "nodeType": "ImportDirective", - "scope": 2381, - "sourceUnit": 31, - "src": "24:21:21", + "scope": 2376, + "sourceUnit": 936, + "src": "24:28:18", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", - "file": "../Module.sol", - "id": 2119, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "file": "../base/ModuleManager.sol", + "id": 2114, "nodeType": "ImportDirective", - "scope": 2381, - "sourceUnit": 914, - "src": "46:23:21", + "scope": 2376, + "sourceUnit": 1213, + "src": "53:35:18", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", - "file": "../ModuleManager.sol", - "id": 2120, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "file": "../base/OwnerManager.sol", + "id": 2115, "nodeType": "ImportDirective", - "scope": 2381, - "sourceUnit": 1181, - "src": "70:30:21", + "scope": 2376, + "sourceUnit": 1653, + "src": "89:34:18", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", - "file": "../OwnerManager.sol", - "id": 2121, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "file": "../common/Enum.sol", + "id": 2116, "nodeType": "ImportDirective", - "scope": 2381, - "sourceUnit": 1589, - "src": "101:29:21", + "scope": 2376, + "sourceUnit": 1660, + "src": "124:28:18", "symbolAliases": [], "unitAlias": "" }, @@ -3836,46 +3836,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2122, + "id": 2117, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "339:6:21", + "referencedDeclaration": 935, + "src": "361:6:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, - "id": 2123, + "id": 2118, "nodeType": "InheritanceSpecifier", - "src": "339:6:21" + "src": "361:6:18" } ], "contractDependencies": [ - 813, - 913, - 1765 + 935, + 1693, + 1735 ], "contractKind": "contract", "documentation": "@title Social Recovery Module - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n @author Stefan George - ", "fullyImplemented": true, - "id": 2380, + "id": 2375, "linearizedBaseContracts": [ - 2380, - 913, - 813, - 1765 + 2375, + 935, + 1693, + 1735 ], "name": "SocialRecoveryModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2126, + "id": 2121, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "353:54:21", + "scope": 2375, + "src": "375:54:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3883,10 +3883,10 @@ "typeString": "string" }, "typeName": { - "id": 2124, + "id": 2119, "name": "string", "nodeType": "ElementaryTypeName", - "src": "353:6:21", + "src": "375:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3895,14 +3895,14 @@ "value": { "argumentTypes": null, "hexValue": "536f6369616c205265636f76657279204d6f64756c65", - "id": 2125, + "id": 2120, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "383:24:21", + "src": "405:24:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8f499aea563eae5544b16c9123d6c7c8537a7d9dd86296aa60c65de194207230", @@ -3914,11 +3914,11 @@ }, { "constant": true, - "id": 2129, + "id": 2124, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "413:40:21", + "scope": 2375, + "src": "435:40:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3926,10 +3926,10 @@ "typeString": "string" }, "typeName": { - "id": 2127, + "id": 2122, "name": "string", "nodeType": "ElementaryTypeName", - "src": "413:6:21", + "src": "435:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3937,31 +3937,31 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e31", - "id": 2128, + "hexValue": "302e302e32", + "id": 2123, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "446:7:21", + "src": "468:7:18", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" + "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", + "typeString": "literal_string \"0.0.2\"" }, - "value": "0.0.1" + "value": "0.0.2" }, "visibility": "public" }, { "constant": false, - "id": 2131, + "id": 2126, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "460:24:21", + "scope": 2375, + "src": "482:24:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3969,10 +3969,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2130, + "id": 2125, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "460:7:21", + "src": "482:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3983,11 +3983,11 @@ }, { "constant": false, - "id": 2134, + "id": 2129, "name": "friends", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "490:24:21", + "scope": 2375, + "src": "512:24:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3996,19 +3996,19 @@ }, "typeName": { "baseType": { - "id": 2132, + "id": 2127, "name": "address", "nodeType": "ElementaryTypeName", - "src": "490:7:21", + "src": "512:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2133, + "id": 2128, "length": null, "nodeType": "ArrayTypeName", - "src": "490:9:21", + "src": "512:9:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -4019,11 +4019,11 @@ }, { "constant": false, - "id": 2138, + "id": 2133, "name": "isFriend", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "585:41:21", + "scope": 2375, + "src": "607:41:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4031,28 +4031,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 2137, + "id": 2132, "keyType": { - "id": 2135, + "id": 2130, "name": "address", "nodeType": "ElementaryTypeName", - "src": "594:7:21", + "src": "616:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "585:25:21", + "src": "607:25:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2136, + "id": 2131, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "605:4:21", + "src": "627:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4064,11 +4064,11 @@ }, { "constant": false, - "id": 2142, + "id": 2137, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "694:43:21", + "scope": 2375, + "src": "716:43:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4076,28 +4076,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 2141, + "id": 2136, "keyType": { - "id": 2139, + "id": 2134, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "703:7:21", + "src": "725:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "694:25:21", + "src": "716:25:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 2140, + "id": 2135, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "714:4:21", + "src": "736:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4109,11 +4109,11 @@ }, { "constant": false, - "id": 2148, + "id": 2143, "name": "isConfirmed", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "829:65:21", + "scope": 2375, + "src": "851:65:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4121,46 +4121,46 @@ "typeString": "mapping(bytes32 => mapping(address => bool))" }, "typeName": { - "id": 2147, + "id": 2142, "keyType": { - "id": 2143, + "id": 2138, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "838:7:21", + "src": "860:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "829:46:21", + "src": "851:46:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" }, "valueType": { - "id": 2146, + "id": 2141, "keyType": { - "id": 2144, + "id": 2139, "name": "address", "nodeType": "ElementaryTypeName", - "src": "858:7:21", + "src": "880:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "849:25:21", + "src": "871:25:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2145, + "id": 2140, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "869:4:21", + "src": "891:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4173,9 +4173,9 @@ }, { "body": { - "id": 2159, + "id": 2154, "nodeType": "Block", - "src": "923:98:21", + "src": "945:98:18", "statements": [ { "expression": { @@ -4185,34 +4185,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2151, + "id": 2146, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "941:8:21", + "referencedDeclaration": 2133, + "src": "963:8:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2154, + "id": 2149, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2152, + "id": 2147, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "950:3:21", + "referencedDeclaration": 4491, + "src": "972:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2153, + "id": 2148, "isConstant": false, "isLValue": false, "isPure": false, @@ -4220,7 +4220,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "950:10:21", + "src": "972:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4231,7 +4231,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "941:20:21", + "src": "963:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4240,14 +4240,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c6564206279206120667269656e64", - "id": 2155, + "id": 2150, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "963:39:21", + "src": "985:39:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a", @@ -4267,21 +4267,21 @@ "typeString": "literal_string \"Method can only be called by a friend\"" } ], - "id": 2150, + "id": 2145, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "933:7:21", + "referencedDeclaration": 4495, + "src": "955:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2156, + "id": 2151, "isConstant": false, "isLValue": false, "isPure": false, @@ -4289,41 +4289,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "933:70:21", + "src": "955:70:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2157, + "id": 2152, "nodeType": "ExpressionStatement", - "src": "933:70:21" + "src": "955:70:18" }, { - "id": 2158, + "id": 2153, "nodeType": "PlaceholderStatement", - "src": "1013:1:21" + "src": "1035:1:18" } ] }, "documentation": null, - "id": 2160, + "id": 2155, "name": "onlyFriend", "nodeType": "ModifierDefinition", "parameters": { - "id": 2149, + "id": 2144, "nodeType": "ParameterList", "parameters": [], - "src": "920:2:21" + "src": "942:2:18" }, - "src": "901:120:21", + "src": "923:120:18", "visibility": "internal" }, { "body": { - "id": 2234, + "id": 2229, "nodeType": "Block", - "src": "1292:566:21", + "src": "1314:566:18", "statements": [ { "expression": { @@ -4335,19 +4335,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2172, + "id": 2167, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2169, + "id": 2164, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "1310:10:21", + "referencedDeclaration": 2160, + "src": "1332:10:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4359,18 +4359,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2170, + "id": 2165, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, - "src": "1324:8:21", + "referencedDeclaration": 2158, + "src": "1346:8:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2171, + "id": 2166, "isConstant": false, "isLValue": false, "isPure": false, @@ -4378,13 +4378,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1324:15:21", + "src": "1346:15:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1310:29:21", + "src": "1332:29:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4393,14 +4393,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f742065786365656420667269656e647320636f756e74", - "id": 2173, + "id": 2168, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1341:39:21", + "src": "1363:39:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257", @@ -4420,21 +4420,21 @@ "typeString": "literal_string \"Threshold cannot exceed friends count\"" } ], - "id": 2168, + "id": 2163, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1302:7:21", + "referencedDeclaration": 4495, + "src": "1324:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2174, + "id": 2169, "isConstant": false, "isLValue": false, "isPure": false, @@ -4442,15 +4442,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1302:79:21", + "src": "1324:79:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2175, + "id": 2170, "nodeType": "ExpressionStatement", - "src": "1302:79:21" + "src": "1324:79:18" }, { "expression": { @@ -4462,19 +4462,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2179, + "id": 2174, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2177, + "id": 2172, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "1399:10:21", + "referencedDeclaration": 2160, + "src": "1421:10:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4485,14 +4485,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 2178, + "id": 2173, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1413:1:21", + "src": "1435:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -4500,7 +4500,7 @@ }, "value": "2" }, - "src": "1399:15:21", + "src": "1421:15:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4509,14 +4509,14 @@ { "argumentTypes": null, "hexValue": "4174206c65617374203220667269656e6473207265717569726564", - "id": 2180, + "id": 2175, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1416:29:21", + "src": "1438:29:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773", @@ -4536,21 +4536,21 @@ "typeString": "literal_string \"At least 2 friends required\"" } ], - "id": 2176, + "id": 2171, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1391:7:21", + "referencedDeclaration": 4495, + "src": "1413:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2181, + "id": 2176, "isConstant": false, "isLValue": false, "isPure": false, @@ -4558,15 +4558,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1391:55:21", + "src": "1413:55:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2182, + "id": 2177, "nodeType": "ExpressionStatement", - "src": "1391:55:21" + "src": "1413:55:18" }, { "expression": { @@ -4574,18 +4574,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2183, + "id": 2178, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 912, - "src": "1456:10:21", + "referencedDeclaration": 934, + "src": "1478:10:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2184, + "id": 2179, "isConstant": false, "isLValue": false, "isPure": false, @@ -4593,34 +4593,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1456:12:21", + "src": "1478:12:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2185, + "id": 2180, "nodeType": "ExpressionStatement", - "src": "1456:12:21" + "src": "1478:12:18" }, { "body": { - "id": 2224, + "id": 2219, "nodeType": "Block", - "src": "1556:236:21", + "src": "1578:236:18", "statements": [ { "assignments": [ - 2198 + 2193 ], "declarations": [ { "constant": false, - "id": 2198, + "id": 2193, "name": "friend", "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "1570:14:21", + "scope": 2230, + "src": "1592:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4628,10 +4628,10 @@ "typeString": "address" }, "typeName": { - "id": 2197, + "id": 2192, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1570:7:21", + "src": "1592:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4641,31 +4641,31 @@ "visibility": "internal" } ], - "id": 2202, + "id": 2197, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2199, + "id": 2194, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, - "src": "1587:8:21", + "referencedDeclaration": 2158, + "src": "1609:8:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2201, + "id": 2196, "indexExpression": { "argumentTypes": null, - "id": 2200, + "id": 2195, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2187, - "src": "1596:1:21", + "referencedDeclaration": 2182, + "src": "1618:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4676,14 +4676,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1587:11:21", + "src": "1609:11:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1570:28:21" + "src": "1592:28:18" }, { "expression": { @@ -4695,19 +4695,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2206, + "id": 2201, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2204, + "id": 2199, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2198, - "src": "1620:6:21", + "referencedDeclaration": 2193, + "src": "1642:6:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4718,14 +4718,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2205, + "id": 2200, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1630:1:21", + "src": "1652:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4733,7 +4733,7 @@ }, "value": "0" }, - "src": "1620:11:21", + "src": "1642:11:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4742,14 +4742,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420667269656e6420616464726573732070726f7669646564", - "id": 2207, + "id": 2202, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1633:33:21", + "src": "1655:33:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55", @@ -4769,21 +4769,21 @@ "typeString": "literal_string \"Invalid friend address provided\"" } ], - "id": 2203, + "id": 2198, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1612:7:21", + "referencedDeclaration": 4495, + "src": "1634:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2208, + "id": 2203, "isConstant": false, "isLValue": false, "isPure": false, @@ -4791,15 +4791,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1612:55:21", + "src": "1634:55:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2209, + "id": 2204, "nodeType": "ExpressionStatement", - "src": "1612:55:21" + "src": "1634:55:18" }, { "expression": { @@ -4807,7 +4807,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2214, + "id": 2209, "isConstant": false, "isLValue": false, "isPure": false, @@ -4815,31 +4815,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1689:17:21", + "src": "1711:17:18", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2211, + "id": 2206, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "1690:8:21", + "referencedDeclaration": 2133, + "src": "1712:8:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2213, + "id": 2208, "indexExpression": { "argumentTypes": null, - "id": 2212, + "id": 2207, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2198, - "src": "1699:6:21", + "referencedDeclaration": 2193, + "src": "1721:6:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4850,7 +4850,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1690:16:21", + "src": "1712:16:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4864,14 +4864,14 @@ { "argumentTypes": null, "hexValue": "4475706c696361746520667269656e6420616464726573732070726f7669646564", - "id": 2215, + "id": 2210, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1708:35:21", + "src": "1730:35:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3", @@ -4891,21 +4891,21 @@ "typeString": "literal_string \"Duplicate friend address provided\"" } ], - "id": 2210, + "id": 2205, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1681:7:21", + "referencedDeclaration": 4495, + "src": "1703:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2216, + "id": 2211, "isConstant": false, "isLValue": false, "isPure": false, @@ -4913,20 +4913,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1681:63:21", + "src": "1703:63:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2217, + "id": 2212, "nodeType": "ExpressionStatement", - "src": "1681:63:21" + "src": "1703:63:18" }, { "expression": { "argumentTypes": null, - "id": 2222, + "id": 2217, "isConstant": false, "isLValue": false, "isPure": false, @@ -4935,26 +4935,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2218, + "id": 2213, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "1758:8:21", + "referencedDeclaration": 2133, + "src": "1780:8:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2220, + "id": 2215, "indexExpression": { "argumentTypes": null, - "id": 2219, + "id": 2214, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2198, - "src": "1767:6:21", + "referencedDeclaration": 2193, + "src": "1789:6:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4965,7 +4965,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1758:16:21", + "src": "1780:16:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4976,14 +4976,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2221, + "id": 2216, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1777:4:21", + "src": "1799:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4991,15 +4991,15 @@ }, "value": "true" }, - "src": "1758:23:21", + "src": "1780:23:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2223, + "id": 2218, "nodeType": "ExpressionStatement", - "src": "1758:23:21" + "src": "1780:23:18" } ] }, @@ -5009,19 +5009,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2193, + "id": 2188, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2190, + "id": 2185, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2187, - "src": "1530:1:21", + "referencedDeclaration": 2182, + "src": "1552:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5033,18 +5033,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2191, + "id": 2186, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, - "src": "1534:8:21", + "referencedDeclaration": 2158, + "src": "1556:8:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2192, + "id": 2187, "isConstant": false, "isLValue": false, "isPure": false, @@ -5052,31 +5052,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1534:15:21", + "src": "1556:15:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1530:19:21", + "src": "1552:19:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2225, + "id": 2220, "initializationExpression": { "assignments": [ - 2187 + 2182 ], "declarations": [ { "constant": false, - "id": 2187, + "id": 2182, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "1515:9:21", + "scope": 2230, + "src": "1537:9:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5084,10 +5084,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2186, + "id": 2181, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1515:7:21", + "src": "1537:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5097,18 +5097,18 @@ "visibility": "internal" } ], - "id": 2189, + "id": 2184, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2188, + "id": 2183, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1527:1:21", + "src": "1549:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5117,12 +5117,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1515:13:21" + "src": "1537:13:18" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2195, + "id": 2190, "isConstant": false, "isLValue": false, "isPure": false, @@ -5130,15 +5130,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1551:3:21", + "src": "1573:3:18", "subExpression": { "argumentTypes": null, - "id": 2194, + "id": 2189, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2187, - "src": "1551:1:21", + "referencedDeclaration": 2182, + "src": "1573:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5149,29 +5149,29 @@ "typeString": "uint256" } }, - "id": 2196, + "id": 2191, "nodeType": "ExpressionStatement", - "src": "1551:3:21" + "src": "1573:3:18" }, "nodeType": "ForStatement", - "src": "1510:282:21" + "src": "1532:282:18" }, { "expression": { "argumentTypes": null, - "id": 2228, + "id": 2223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2226, + "id": 2221, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "1801:7:21", + "referencedDeclaration": 2129, + "src": "1823:7:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" @@ -5181,43 +5181,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2227, + "id": 2222, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, - "src": "1811:8:21", + "referencedDeclaration": 2158, + "src": "1833:8:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "src": "1801:18:21", + "src": "1823:18:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2229, + "id": 2224, "nodeType": "ExpressionStatement", - "src": "1801:18:21" + "src": "1823:18:18" }, { "expression": { "argumentTypes": null, - "id": 2232, + "id": 2227, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2230, + "id": 2225, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "1829:9:21", + "referencedDeclaration": 2126, + "src": "1851:9:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5227,31 +5227,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2231, + "id": 2226, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "1841:10:21", + "referencedDeclaration": 2160, + "src": "1863:10:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1829:22:21", + "src": "1851:22:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2233, + "id": 2228, "nodeType": "ExpressionStatement", - "src": "1829:22:21" + "src": "1851:22:18" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param _friends List of friends' addresses.\n @param _threshold Required number of friends to confirm replacement.", - "id": 2235, + "id": 2230, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5259,16 +5259,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2166, + "id": 2161, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2163, + "id": 2158, "name": "_friends", "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "1233:18:21", + "scope": 2230, + "src": "1255:18:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5277,19 +5277,19 @@ }, "typeName": { "baseType": { - "id": 2161, + "id": 2156, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1233:7:21", + "src": "1255:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2162, + "id": 2157, "length": null, "nodeType": "ArrayTypeName", - "src": "1233:9:21", + "src": "1255:9:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -5300,11 +5300,11 @@ }, { "constant": false, - "id": 2165, + "id": 2160, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "1253:18:21", + "scope": 2230, + "src": "1275:18:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5312,10 +5312,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2164, + "id": 2159, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1253:7:21", + "src": "1275:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5325,26 +5325,26 @@ "visibility": "internal" } ], - "src": "1232:40:21" + "src": "1254:40:18" }, "payable": false, "returnParameters": { - "id": 2167, + "id": 2162, "nodeType": "ParameterList", "parameters": [], - "src": "1292:0:21" + "src": "1314:0:18" }, - "scope": 2380, - "src": "1218:640:21", + "scope": 2375, + "src": "1240:640:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2259, + "id": 2254, "nodeType": "Block", - "src": "2055:126:21", + "src": "2077:126:18", "statements": [ { "expression": { @@ -5352,7 +5352,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2246, + "id": 2241, "isConstant": false, "isLValue": false, "isPure": false, @@ -5360,31 +5360,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2073:21:21", + "src": "2095:21:18", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2243, + "id": 2238, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2074:10:21", + "referencedDeclaration": 2137, + "src": "2096:10:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2245, + "id": 2240, "indexExpression": { "argumentTypes": null, - "id": 2244, + "id": 2239, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2237, - "src": "2085:8:21", + "referencedDeclaration": 2232, + "src": "2107:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5395,7 +5395,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2074:20:21", + "src": "2096:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5409,14 +5409,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2247, + "id": 2242, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2096:27:21", + "src": "2118:27:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", @@ -5436,21 +5436,21 @@ "typeString": "literal_string \"Recovery already executed\"" } ], - "id": 2242, + "id": 2237, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2065:7:21", + "referencedDeclaration": 4495, + "src": "2087:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2248, + "id": 2243, "isConstant": false, "isLValue": false, "isPure": false, @@ -5458,20 +5458,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2065:59:21", + "src": "2087:59:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2249, + "id": 2244, "nodeType": "ExpressionStatement", - "src": "2065:59:21" + "src": "2087:59:18" }, { "expression": { "argumentTypes": null, - "id": 2257, + "id": 2252, "isConstant": false, "isLValue": false, "isPure": false, @@ -5482,26 +5482,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2250, + "id": 2245, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2148, - "src": "2134:11:21", + "referencedDeclaration": 2143, + "src": "2156:11:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 2254, + "id": 2249, "indexExpression": { "argumentTypes": null, - "id": 2251, + "id": 2246, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2237, - "src": "2146:8:21", + "referencedDeclaration": 2232, + "src": "2168:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5512,29 +5512,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2134:21:21", + "src": "2156:21:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2255, + "id": 2250, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2252, + "id": 2247, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2156:3:21", + "referencedDeclaration": 4491, + "src": "2178:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2253, + "id": 2248, "isConstant": false, "isLValue": false, "isPure": false, @@ -5542,7 +5542,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2156:10:21", + "src": "2178:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5553,7 +5553,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2134:33:21", + "src": "2156:33:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5564,14 +5564,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2256, + "id": 2251, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2170:4:21", + "src": "2192:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5579,57 +5579,57 @@ }, "value": "true" }, - "src": "2134:40:21", + "src": "2156:40:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2258, + "id": 2253, "nodeType": "ExpressionStatement", - "src": "2134:40:21" + "src": "2156:40:18" } ] }, "documentation": "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash.", - "id": 2260, + "id": 2255, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2240, + "id": 2235, "modifierName": { "argumentTypes": null, - "id": 2239, + "id": 2234, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "2040:10:21", + "referencedDeclaration": 2155, + "src": "2062:10:18", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2040:10:21" + "src": "2062:10:18" } ], "name": "confirmTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 2238, + "id": 2233, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2237, + "id": 2232, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2260, - "src": "1999:16:21", + "scope": 2255, + "src": "2021:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5637,10 +5637,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2236, + "id": 2231, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1999:7:21", + "src": "2021:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5650,39 +5650,39 @@ "visibility": "internal" } ], - "src": "1998:18:21" + "src": "2020:18:18" }, "payable": false, "returnParameters": { - "id": 2241, + "id": 2236, "nodeType": "ParameterList", "parameters": [], - "src": "2055:0:21" + "src": "2077:0:18" }, - "scope": 2380, - "src": "1971:210:21", + "scope": 2375, + "src": "1993:210:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2323, + "id": 2318, "nodeType": "Block", - "src": "2630:509:21", + "src": "2652:509:18", "statements": [ { "assignments": [ - 2272 + 2267 ], "declarations": [ { "constant": false, - "id": 2272, + "id": 2267, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "2640:17:21", + "scope": 2319, + "src": "2662:17:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5690,10 +5690,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2271, + "id": 2266, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2640:5:21", + "src": "2662:5:18", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5703,21 +5703,21 @@ "visibility": "internal" } ], - "id": 2280, + "id": 2275, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "737761704f776e657228616464726573732c616464726573732c6164647265737329", - "id": 2275, + "id": 2270, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2684:36:21", + "src": "2706:36:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", @@ -5727,12 +5727,12 @@ }, { "argumentTypes": null, - "id": 2276, + "id": 2271, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2262, - "src": "2722:9:21", + "referencedDeclaration": 2257, + "src": "2744:9:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5740,12 +5740,12 @@ }, { "argumentTypes": null, - "id": 2277, + "id": 2272, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2264, - "src": "2733:8:21", + "referencedDeclaration": 2259, + "src": "2755:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5753,12 +5753,12 @@ }, { "argumentTypes": null, - "id": 2278, + "id": 2273, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "2743:8:21", + "referencedDeclaration": 2261, + "src": "2765:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5786,18 +5786,18 @@ ], "expression": { "argumentTypes": null, - "id": 2273, + "id": 2268, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "2660:3:21", + "referencedDeclaration": 4478, + "src": "2682:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 2274, + "id": 2269, "isConstant": false, "isLValue": false, "isPure": true, @@ -5805,13 +5805,13 @@ "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2660:23:21", + "src": "2682:23:18", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 2279, + "id": 2274, "isConstant": false, "isLValue": false, "isPure": false, @@ -5819,27 +5819,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2660:92:21", + "src": "2682:92:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2640:112:21" + "src": "2662:112:18" }, { "assignments": [ - 2282 + 2277 ], "declarations": [ { "constant": false, - "id": 2282, + "id": 2277, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "2762:16:21", + "scope": 2319, + "src": "2784:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5847,10 +5847,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2281, + "id": 2276, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2762:7:21", + "src": "2784:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5860,18 +5860,18 @@ "visibility": "internal" } ], - "id": 2286, + "id": 2281, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2284, + "id": 2279, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2272, - "src": "2793:4:21", + "referencedDeclaration": 2267, + "src": "2815:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5885,18 +5885,18 @@ "typeString": "bytes memory" } ], - "id": 2283, + "id": 2278, "name": "getDataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2379, - "src": "2781:11:21", + "referencedDeclaration": 2374, + "src": "2803:11:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2285, + "id": 2280, "isConstant": false, "isLValue": false, "isPure": false, @@ -5904,14 +5904,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2781:17:21", + "src": "2803:17:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2762:36:21" + "src": "2784:36:18" }, { "expression": { @@ -5919,7 +5919,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2291, + "id": 2286, "isConstant": false, "isLValue": false, "isPure": false, @@ -5927,31 +5927,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2816:21:21", + "src": "2838:21:18", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2288, + "id": 2283, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2817:10:21", + "referencedDeclaration": 2137, + "src": "2839:10:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2290, + "id": 2285, "indexExpression": { "argumentTypes": null, - "id": 2289, + "id": 2284, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2282, - "src": "2828:8:21", + "referencedDeclaration": 2277, + "src": "2850:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5962,7 +5962,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2817:20:21", + "src": "2839:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5976,14 +5976,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2292, + "id": 2287, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2839:27:21", + "src": "2861:27:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", @@ -6003,21 +6003,21 @@ "typeString": "literal_string \"Recovery already executed\"" } ], - "id": 2287, + "id": 2282, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2808:7:21", + "referencedDeclaration": 4495, + "src": "2830:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2293, + "id": 2288, "isConstant": false, "isLValue": false, "isPure": false, @@ -6025,15 +6025,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2808:59:21", + "src": "2830:59:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2294, + "id": 2289, "nodeType": "ExpressionStatement", - "src": "2808:59:21" + "src": "2830:59:18" }, { "expression": { @@ -6044,12 +6044,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2297, + "id": 2292, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2282, - "src": "2914:8:21", + "referencedDeclaration": 2277, + "src": "2936:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6063,18 +6063,18 @@ "typeString": "bytes32" } ], - "id": 2296, + "id": 2291, "name": "isConfirmedByRequiredFriends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "2885:28:21", + "referencedDeclaration": 2362, + "src": "2907:28:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 2298, + "id": 2293, "isConstant": false, "isLValue": false, "isPure": false, @@ -6082,7 +6082,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2885:38:21", + "src": "2907:38:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6091,14 +6091,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 2299, + "id": 2294, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2925:39:21", + "src": "2947:39:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8", @@ -6118,21 +6118,21 @@ "typeString": "literal_string \"Recovery has not enough confirmations\"" } ], - "id": 2295, + "id": 2290, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2877:7:21", + "referencedDeclaration": 4495, + "src": "2899:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2300, + "id": 2295, "isConstant": false, "isLValue": false, "isPure": false, @@ -6140,20 +6140,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2877:88:21", + "src": "2899:88:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2301, + "id": 2296, "nodeType": "ExpressionStatement", - "src": "2877:88:21" + "src": "2899:88:18" }, { "expression": { "argumentTypes": null, - "id": 2306, + "id": 2301, "isConstant": false, "isLValue": false, "isPure": false, @@ -6162,26 +6162,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2302, + "id": 2297, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2975:10:21", + "referencedDeclaration": 2137, + "src": "2997:10:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2304, + "id": 2299, "indexExpression": { "argumentTypes": null, - "id": 2303, + "id": 2298, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2282, - "src": "2986:8:21", + "referencedDeclaration": 2277, + "src": "3008:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6192,7 +6192,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2975:20:21", + "src": "2997:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6203,14 +6203,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2305, + "id": 2300, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2998:4:21", + "src": "3020:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6218,15 +6218,15 @@ }, "value": "true" }, - "src": "2975:27:21", + "src": "2997:27:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2307, + "id": 2302, "nodeType": "ExpressionStatement", - "src": "2975:27:21" + "src": "2997:27:18" }, { "expression": { @@ -6240,14 +6240,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2312, + "id": 2307, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "3062:7:21", + "referencedDeclaration": 900, + "src": "3084:7:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } } @@ -6255,24 +6255,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } ], - "id": 2311, + "id": 2306, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3054:7:21", + "src": "3076:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2313, + "id": 2308, "isConstant": false, "isLValue": false, "isPure": false, @@ -6280,7 +6280,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3054:16:21", + "src": "3076:16:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6289,14 +6289,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2314, + "id": 2309, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3072:1:21", + "src": "3094:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6306,12 +6306,12 @@ }, { "argumentTypes": null, - "id": 2315, + "id": 2310, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2272, - "src": "3075:4:21", + "referencedDeclaration": 2267, + "src": "3097:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6323,32 +6323,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2316, + "id": 2311, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "3081:4:21", + "referencedDeclaration": 1659, + "src": "3103:4:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", "typeString": "type(contract Enum)" } }, - "id": 2317, + "id": 2312, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "3081:14:21", + "referencedDeclaration": 1658, + "src": "3103:14:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2318, + "id": 2313, "isConstant": false, "isLValue": false, "isPure": true, @@ -6356,9 +6356,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3081:19:21", + "src": "3103:19:18", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } } @@ -6378,38 +6378,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2309, + "id": 2304, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "3020:7:21", + "referencedDeclaration": 900, + "src": "3042:7:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, - "id": 2310, + "id": 2305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1106, - "src": "3020:33:21", + "referencedDeclaration": 1138, + "src": "3042:33:18", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2319, + "id": 2314, "isConstant": false, "isLValue": false, "isPure": false, @@ -6417,7 +6417,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3020:81:21", + "src": "3042:81:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6426,14 +6426,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207265636f76657279", - "id": 2320, + "id": 2315, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3103:28:21", + "src": "3125:28:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1", @@ -6453,21 +6453,21 @@ "typeString": "literal_string \"Could not execute recovery\"" } ], - "id": 2308, + "id": 2303, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "3012:7:21", + "referencedDeclaration": 4495, + "src": "3034:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2321, + "id": 2316, "isConstant": false, "isLValue": false, "isPure": false, @@ -6475,57 +6475,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3012:120:21", + "src": "3034:120:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2322, + "id": 2317, "nodeType": "ExpressionStatement", - "src": "3012:120:21" + "src": "3034:120:18" } ] }, "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.\n @return Returns if transaction can be executed.", - "id": 2324, + "id": 2319, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2269, + "id": 2264, "modifierName": { "argumentTypes": null, - "id": 2268, + "id": 2263, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "2615:10:21", + "referencedDeclaration": 2155, + "src": "2637:10:18", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2615:10:21" + "src": "2637:10:18" } ], "name": "recoverAccess", "nodeType": "FunctionDefinition", "parameters": { - "id": 2267, + "id": 2262, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2262, + "id": 2257, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "2537:17:21", + "scope": 2319, + "src": "2559:17:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6533,10 +6533,10 @@ "typeString": "address" }, "typeName": { - "id": 2261, + "id": 2256, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2537:7:21", + "src": "2559:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6547,11 +6547,11 @@ }, { "constant": false, - "id": 2264, + "id": 2259, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "2556:16:21", + "scope": 2319, + "src": "2578:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6559,10 +6559,10 @@ "typeString": "address" }, "typeName": { - "id": 2263, + "id": 2258, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2556:7:21", + "src": "2578:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6573,11 +6573,11 @@ }, { "constant": false, - "id": 2266, + "id": 2261, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "2574:16:21", + "scope": 2319, + "src": "2596:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6585,10 +6585,10 @@ "typeString": "address" }, "typeName": { - "id": 2265, + "id": 2260, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2574:7:21", + "src": "2596:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6598,37 +6598,37 @@ "visibility": "internal" } ], - "src": "2536:55:21" + "src": "2558:55:18" }, "payable": false, "returnParameters": { - "id": 2270, + "id": 2265, "nodeType": "ParameterList", "parameters": [], - "src": "2630:0:21" + "src": "2652:0:18" }, - "scope": 2380, - "src": "2514:625:21", + "scope": 2375, + "src": "2536:625:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2366, + "id": 2361, "nodeType": "Block", - "src": "3411:294:21", + "src": "3433:294:18", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 2332, + "id": 2327, "name": "confirmationCount", "nodeType": "VariableDeclaration", - "scope": 2367, - "src": "3421:25:21", + "scope": 2362, + "src": "3443:25:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6636,10 +6636,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2331, + "id": 2326, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3421:7:21", + "src": "3443:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6649,16 +6649,16 @@ "visibility": "internal" } ], - "id": 2333, + "id": 2328, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3421:25:21" + "src": "3443:25:18" }, { "body": { - "id": 2362, + "id": 2357, "nodeType": "Block", - "src": "3501:176:21", + "src": "3523:176:18", "statements": [ { "condition": { @@ -6667,26 +6667,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2345, + "id": 2340, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2148, - "src": "3519:11:21", + "referencedDeclaration": 2143, + "src": "3541:11:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 2347, + "id": 2342, "indexExpression": { "argumentTypes": null, - "id": 2346, + "id": 2341, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "3531:8:21", + "referencedDeclaration": 2321, + "src": "3553:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6697,37 +6697,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3519:21:21", + "src": "3541:21:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2351, + "id": 2346, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2348, + "id": 2343, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "3541:7:21", + "referencedDeclaration": 2129, + "src": "3563:7:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2350, + "id": 2345, "indexExpression": { "argumentTypes": null, - "id": 2349, + "id": 2344, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2335, - "src": "3549:1:21", + "referencedDeclaration": 2330, + "src": "3571:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6738,7 +6738,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3541:10:21", + "src": "3563:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6749,20 +6749,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3519:33:21", + "src": "3541:33:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2355, + "id": 2350, "nodeType": "IfStatement", - "src": "3515:74:21", + "src": "3537:74:18", "trueBody": { "expression": { "argumentTypes": null, - "id": 2353, + "id": 2348, "isConstant": false, "isLValue": false, "isPure": false, @@ -6770,15 +6770,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3570:19:21", + "src": "3592:19:18", "subExpression": { "argumentTypes": null, - "id": 2352, + "id": 2347, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2332, - "src": "3570:17:21", + "referencedDeclaration": 2327, + "src": "3592:17:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6789,9 +6789,9 @@ "typeString": "uint256" } }, - "id": 2354, + "id": 2349, "nodeType": "ExpressionStatement", - "src": "3570:19:21" + "src": "3592:19:18" } }, { @@ -6801,19 +6801,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2358, + "id": 2353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2356, + "id": 2351, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2332, - "src": "3607:17:21", + "referencedDeclaration": 2327, + "src": "3629:17:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6823,39 +6823,39 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2357, + "id": 2352, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "3628:9:21", + "referencedDeclaration": 2126, + "src": "3650:9:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3607:30:21", + "src": "3629:30:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2361, + "id": 2356, "nodeType": "IfStatement", - "src": "3603:63:21", + "src": "3625:63:18", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2359, + "id": 2354, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3662:4:21", + "src": "3684:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6863,10 +6863,10 @@ }, "value": "true" }, - "functionReturnParameters": 2330, - "id": 2360, + "functionReturnParameters": 2325, + "id": 2355, "nodeType": "Return", - "src": "3655:11:21" + "src": "3677:11:18" } } ] @@ -6877,19 +6877,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2341, + "id": 2336, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2338, + "id": 2333, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2335, - "src": "3476:1:21", + "referencedDeclaration": 2330, + "src": "3498:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6901,18 +6901,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2339, + "id": 2334, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "3480:7:21", + "referencedDeclaration": 2129, + "src": "3502:7:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2340, + "id": 2335, "isConstant": false, "isLValue": true, "isPure": false, @@ -6920,31 +6920,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3480:14:21", + "src": "3502:14:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3476:18:21", + "src": "3498:18:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2363, + "id": 2358, "initializationExpression": { "assignments": [ - 2335 + 2330 ], "declarations": [ { "constant": false, - "id": 2335, + "id": 2330, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2367, - "src": "3461:9:21", + "scope": 2362, + "src": "3483:9:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6952,10 +6952,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2334, + "id": 2329, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3461:7:21", + "src": "3483:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6965,18 +6965,18 @@ "visibility": "internal" } ], - "id": 2337, + "id": 2332, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2336, + "id": 2331, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3473:1:21", + "src": "3495:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6985,12 +6985,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3461:13:21" + "src": "3483:13:18" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2343, + "id": 2338, "isConstant": false, "isLValue": false, "isPure": false, @@ -6998,15 +6998,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3496:3:21", + "src": "3518:3:18", "subExpression": { "argumentTypes": null, - "id": 2342, + "id": 2337, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2335, - "src": "3496:1:21", + "referencedDeclaration": 2330, + "src": "3518:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7017,25 +7017,25 @@ "typeString": "uint256" } }, - "id": 2344, + "id": 2339, "nodeType": "ExpressionStatement", - "src": "3496:3:21" + "src": "3518:3:18" }, "nodeType": "ForStatement", - "src": "3456:221:21" + "src": "3478:221:18" }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2364, + "id": 2359, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3693:5:21", + "src": "3715:5:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7043,15 +7043,15 @@ }, "value": "false" }, - "functionReturnParameters": 2330, - "id": 2365, + "functionReturnParameters": 2325, + "id": 2360, "nodeType": "Return", - "src": "3686:12:21" + "src": "3708:12:18" } ] }, "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param dataHash Data hash.\n @return Confirmation status.", - "id": 2367, + "id": 2362, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7059,16 +7059,16 @@ "name": "isConfirmedByRequiredFriends", "nodeType": "FunctionDefinition", "parameters": { - "id": 2327, + "id": 2322, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2326, + "id": 2321, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2367, - "src": "3338:16:21", + "scope": 2362, + "src": "3360:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7076,10 +7076,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2325, + "id": 2320, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3338:7:21", + "src": "3360:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7089,20 +7089,20 @@ "visibility": "internal" } ], - "src": "3337:18:21" + "src": "3359:18:18" }, "payable": false, "returnParameters": { - "id": 2330, + "id": 2325, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2329, + "id": 2324, "name": "", "nodeType": "VariableDeclaration", - "scope": 2367, - "src": "3401:4:21", + "scope": 2362, + "src": "3423:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7110,10 +7110,10 @@ "typeString": "bool" }, "typeName": { - "id": 2328, + "id": 2323, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3401:4:21", + "src": "3423:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7123,19 +7123,19 @@ "visibility": "internal" } ], - "src": "3400:6:21" + "src": "3422:6:18" }, - "scope": 2380, - "src": "3300:405:21", + "scope": 2375, + "src": "3322:405:18", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2378, + "id": 2373, "nodeType": "Block", - "src": "3925:39:21", + "src": "3947:39:18", "statements": [ { "expression": { @@ -7143,12 +7143,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2375, + "id": 2370, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2369, - "src": "3952:4:21", + "referencedDeclaration": 2364, + "src": "3974:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -7162,18 +7162,18 @@ "typeString": "bytes memory" } ], - "id": 2374, + "id": 2369, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "3942:9:21", + "referencedDeclaration": 4485, + "src": "3964:9:18", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 2376, + "id": 2371, "isConstant": false, "isLValue": false, "isPure": false, @@ -7181,21 +7181,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3942:15:21", + "src": "3964:15:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 2373, - "id": 2377, + "functionReturnParameters": 2368, + "id": 2372, "nodeType": "Return", - "src": "3935:22:21" + "src": "3957:22:18" } ] }, "documentation": "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash.", - "id": 2379, + "id": 2374, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7203,16 +7203,16 @@ "name": "getDataHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2370, + "id": 2365, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2369, + "id": 2364, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2379, - "src": "3855:10:21", + "scope": 2374, + "src": "3877:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7220,10 +7220,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2368, + "id": 2363, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3855:5:21", + "src": "3877:5:18", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7233,20 +7233,20 @@ "visibility": "internal" } ], - "src": "3854:12:21" + "src": "3876:12:18" }, "payable": false, "returnParameters": { - "id": 2373, + "id": 2368, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2372, + "id": 2367, "name": "", "nodeType": "VariableDeclaration", - "scope": 2379, - "src": "3912:7:21", + "scope": 2374, + "src": "3934:7:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7254,10 +7254,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2371, + "id": 2366, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3912:7:21", + "src": "3934:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7267,20 +7267,20 @@ "visibility": "internal" } ], - "src": "3911:9:21" + "src": "3933:9:18" }, - "scope": 2380, - "src": "3834:130:21", + "scope": 2375, + "src": "3856:130:18", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 2381, - "src": "306:3660:21" + "scope": 2376, + "src": "328:3660:18" } ], - "src": "0:3967:21" + "src": "0:3989:18" }, "compiler": { "name": "solc", @@ -7290,16 +7290,10 @@ "4": { "events": {}, "links": {}, - "address": "0x5a115fcbe29dd3f82484ea4d2561d14b91545e60", - "transactionHash": "0xd3cc68dfd19f3f6bd65bb7fb8ce55efb5d33e7404c33cc1a09c6c79627430687" - }, - "1534750848541": { - "events": {}, - "links": {}, - "address": "0x86072cbff48da3c1f01824a6761a03f105bcc697", - "transactionHash": "0x3ea564482a8f392a363a7d84b1519ed000ae0491c24a848901af99fbfe96baae" + "address": "0xefa8938e615a8188b94523cc8b3de02454077715", + "transactionHash": "0x0a75701ead1faf11206be9dc47f5bf1e0364234af2b86103a476b1ce9a4142f4" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:50:29.699Z" + "updatedAt": "2018-09-26T08:56:03.727Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/StateChannelModule.json b/safe-contracts/build/contracts/StateChannelModule.json index 0bc0efc0..e78f88dd 100644 --- a/safe-contracts/build/contracts/StateChannelModule.json +++ b/safe-contracts/build/contracts/StateChannelModule.json @@ -155,62 +155,62 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061117e806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632b50004114610093578063481c6a75146101595780637de7edef146101b0578063a3f4df7e146101f3578063ba0bba4014610283578063e52cb36a1461029a578063f6cc15d0146102df578063ffa1ad74146103cf575b600080fd5b34801561009f57600080fd5b5061013b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061045f565b60405180826000191660001916815260200191505060405180910390f35b34801561016557600080fd5b5061016e6106e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101bc57600080fd5b506101f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061070d565b005b3480156101ff57600080fd5b506102086108f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028f57600080fd5b50610298610929565b005b3480156102a657600080fd5b506102c96004803603810190808035600019169060200190929190505050610933565b6040518082815260200191505060405180910390f35b3480156102eb57600080fd5b506103cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061094b565b005b3480156103db57600080fd5b506103e4610c1a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610424578082015181840152602081019050610409565b50505050905090810190601f1680156104515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561060357805182526020820191506020810190506020830392506105de565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561063157fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156106af578051825260208201915060208101905060208303925061068a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610931610c53565b565b60026020528060005260406000206000915090505481565b600061095a878787878761045f565b90506000600260008360001916600019168152602001908152602001600020541415156109ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b6109f98183610d46565b600160026000836000191660001916815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ad357fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610b13578082015181840152602081019050610af8565b50505050905090810190601f168015610b405780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b505050506040513d6020811015610b8c57600080fd5b81019080805190602001909291905050501515610c11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610dd657600080fd5b505af1158015610dea573d6000803e3d6000fd5b505050506040513d6020811015610e0057600080fd5b81019080805190602001909291905050509050600091505b8082101561107257610e2b86868461107a565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610eea57600080fd5b505af1158015610efe573d6000803e3d6000fd5b505050506040513d6020811015610f1457600080fd5b81019080805190602001909291905050501515610f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293508180600101925050610e18565b505050505050565b60008060008061108a8686611123565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561110d573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a723058204ca002f64369c9c5c575e5a73140dc4461359a6d5cfd60fb502adfb4edbf6eae0029", - "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632b50004114610093578063481c6a75146101595780637de7edef146101b0578063a3f4df7e146101f3578063ba0bba4014610283578063e52cb36a1461029a578063f6cc15d0146102df578063ffa1ad74146103cf575b600080fd5b34801561009f57600080fd5b5061013b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061045f565b60405180826000191660001916815260200191505060405180910390f35b34801561016557600080fd5b5061016e6106e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101bc57600080fd5b506101f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061070d565b005b3480156101ff57600080fd5b506102086108f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028f57600080fd5b50610298610929565b005b3480156102a657600080fd5b506102c96004803603810190808035600019169060200190929190505050610933565b6040518082815260200191505060405180910390f35b3480156102eb57600080fd5b506103cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061094b565b005b3480156103db57600080fd5b506103e4610c1a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610424578082015181840152602081019050610409565b50505050905090810190601f1680156104515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561060357805182526020820191506020810190506020830392506105de565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561063157fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156106af578051825260208201915060208101905060208303925061068a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610931610c53565b565b60026020528060005260406000206000915090505481565b600061095a878787878761045f565b90506000600260008360001916600019168152602001908152602001600020541415156109ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b6109f98183610d46565b600160026000836000191660001916815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ad357fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610b13578082015181840152602081019050610af8565b50505050905090810190601f168015610b405780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b505050506040513d6020811015610b8c57600080fd5b81019080805190602001909291905050501515610c11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610dd657600080fd5b505af1158015610dea573d6000803e3d6000fd5b505050506040513d6020811015610e0057600080fd5b81019080805190602001909291905050509050600091505b8082101561107257610e2b86868461107a565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610eea57600080fd5b505af1158015610efe573d6000803e3d6000fd5b505050506040513d6020811015610f1457600080fd5b81019080805190602001909291905050501515610f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293508180600101925050610e18565b505050505050565b60008060008061108a8686611123565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561110d573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a723058204ca002f64369c9c5c575e5a73140dc4461359a6d5cfd60fb502adfb4edbf6eae0029", - "sourceMap": "305:2842:22:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;305:2842:22;;;;;;;", - "deployedSourceMap": "305:2842:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2816:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2816:329:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:9;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;370:52:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;370:52:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;370:52:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;660:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;660:65:22;;;;;;566:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;566:46:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1190:634;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1190:634:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;428:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;428:40:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;428:40:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2816:329;3019:7;3081:4;3076:10;;3093:1;3088:7;;3097:4;3103:2;3107:5;3114:4;3120:9;3131:5;3059:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3059:78:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3059:78:22;;;3049:89;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3049:89:22;;;;;;;;;;;;;;;;3042:96;;2816:329;;;;;;;:::o;262:28:9:-;;;;;;;;;;;;;:::o;626:248:7:-;359:7:9;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:7;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;370:52:22:-;;;;;;;;;;;;;;;;;;;;:::o;660:65::-;706:12;:10;:12::i;:::-;660:65::o;566:46::-;;;;;;;;;;;;;;;;;:::o;1190:634::-;1400:23;1426:53;1445:2;1449:5;1456:4;1462:9;1473:5;1426:18;:53::i;:::-;1400:79;;1528:1;1497:10;:27;1508:15;1497:27;;;;;;;;;;;;;;;;;;:32;1489:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1572:38;1582:15;1599:10;1572:9;:38::i;:::-;1703:1;1673:10;:27;1684:15;1673:27;;;;;;;;;;;;;;;;;:31;;;;1722:7;;;;;;;;;;;:33;;;1756:2;1760:5;1767:4;1773:9;1722:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1722:61:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1722:61:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1722:61:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1722:61:22;;;;;;;;;;;;;;;;1714:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1190:634;;;;;;;:::o;428:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:9:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o;1830:708:22:-;1988:17;2028:20;2058:9;2077:17;2016:1;1988:30;;2110:7;;;;;;;;;;;2097:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2097:36:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2097:36:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2097:36:22;;;;;;;;;;;;;;;;2077:56;;2194:1;2190:5;;2185:347;2201:9;2197:1;:13;2185:347;;;2246:42;2257:15;2274:10;2286:1;2246:10;:42::i;:::-;2231:57;;2323:7;;;;;;;;;;;2310:29;;;2340:12;2310:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2310:43:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2310:43:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2310:43:22;;;;;;;;;;;;;;;;2302:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2426:9;2411:24;;:12;:24;;;2403:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2509:12;2497:24;;2212:3;;;;;;;2185:347;;;1830:708;;;;;;:::o;477:330:17:-;629:7;653;670:9;689;720:37;735:16;753:3;720:14;:37::i;:::-;708:49;;;;;;;;;;;;774:26;784:6;792:1;795;798;774:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;774:26:17;;;;;;;;767:33;;477:330;;;;;;;;:::o;984:914::-;1086:7;1095:9;1106;1406:3;1400:4;1396:14;1468:4;1454:12;1450:23;1438:10;1434:40;1428:47;1423:52;;1533:4;1519:12;1515:23;1503:10;1499:40;1493:47;1488:52;;1877:4;1868;1854:12;1850:23;1838:10;1834:40;1828:47;1824:58;1819:63;;1362:530;;;;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"../Module.sol\";\nimport \"../OwnerManager.sol\";\nimport \"../SignatureValidator.sol\";\n\n\n/// @title Gnosis Safe State Module - A module that allows interaction with statechannels.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract StateChannelModule is Module, SignatureValidator {\n\n string public constant NAME = \"State Channel Module\";\n string public constant VERSION = \"0.0.1\";\n\n // isExecuted mapping allows to check if a transaction (by hash) was already executed.\n mapping (bytes32 => uint256) public isExecuted;\n\n /// @dev Setup function sets manager\n function setup()\n public\n {\n setManager();\n }\n\n /// @dev Allows to execute a Safe transaction confirmed by required number of owners.\n /// @param to Destination address of Safe transaction.\n /// @param value Ether value of Safe transaction.\n /// @param data Data payload of Safe transaction.\n /// @param operation Operation type of Safe transaction.\n /// @param nonce Nonce used for this Safe transaction.\n /// @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})\n function execTransaction(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce,\n bytes signatures\n )\n public\n {\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n require(isExecuted[transactionHash] == 0, \"Transaction already executed\");\n checkHash(transactionHash, signatures);\n // Mark as executed and execute transaction.\n isExecuted[transactionHash] = 1;\n require(manager.execTransactionFromModule(to, value, data, operation), \"Could not execute transaction\");\n }\n\n function checkHash(bytes32 transactionHash, bytes signatures)\n internal\n view\n {\n // There cannot be an owner with address 0.\n address lastOwner = address(0);\n address currentOwner;\n uint256 i;\n uint256 threshold = OwnerManager(manager).getThreshold();\n // Validate threshold is reached.\n for (i = 0; i < threshold; i++) {\n currentOwner = recoverKey(transactionHash, signatures, i);\n require(OwnerManager(manager).isOwner(currentOwner), \"Signature not provided by owner\");\n require(currentOwner > lastOwner, \"Signatures are not ordered by owner address\");\n lastOwner = currentOwner;\n }\n }\n\n /// @dev Returns hash to be signed by owners.\n /// @param to Destination address.\n /// @param value Ether value.\n /// @param data Data payload.\n /// @param operation Operation type.\n /// @param nonce Transaction nonce.\n /// @return Transaction hash.\n function getTransactionHash(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n view\n returns (bytes32)\n {\n return keccak256(abi.encodePacked(byte(0x19), byte(0), this, to, value, data, operation, nonce));\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b5061117e806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632b50004114610093578063481c6a75146101595780637de7edef146101b0578063a3f4df7e146101f3578063ba0bba4014610283578063e52cb36a1461029a578063f6cc15d0146102df578063ffa1ad74146103cf575b600080fd5b34801561009f57600080fd5b5061013b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061045f565b60405180826000191660001916815260200191505060405180910390f35b34801561016557600080fd5b5061016e6106e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101bc57600080fd5b506101f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061070d565b005b3480156101ff57600080fd5b506102086108f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028f57600080fd5b50610298610929565b005b3480156102a657600080fd5b506102c96004803603810190808035600019169060200190929190505050610933565b6040518082815260200191505060405180910390f35b3480156102eb57600080fd5b506103cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061094b565b005b3480156103db57600080fd5b506103e4610c1a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610424578082015181840152602081019050610409565b50505050905090810190601f1680156104515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561060357805182526020820191506020810190506020830392506105de565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561063157fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156106af578051825260208201915060208101905060208303925061068a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610931610c53565b565b60026020528060005260406000206000915090505481565b600061095a878787878761045f565b90506000600260008360001916600019168152602001908152602001600020541415156109ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b6109f98183610d46565b600160026000836000191660001916815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ad357fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610b13578082015181840152602081019050610af8565b50505050905090810190601f168015610b405780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b505050506040513d6020811015610b8c57600080fd5b81019080805190602001909291905050501515610c11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610dd657600080fd5b505af1158015610dea573d6000803e3d6000fd5b505050506040513d6020811015610e0057600080fd5b81019080805190602001909291905050509050600091505b8082101561107257610e2b86868461107a565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610eea57600080fd5b505af1158015610efe573d6000803e3d6000fd5b505050506040513d6020811015610f1457600080fd5b81019080805190602001909291905050501515610f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293508180600101925050610e18565b505050505050565b60008060008061108a8686611123565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561110d573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a72305820a48bbf0ad2bc336bfcfefa06097ad1574518b511dc1e366dc303d515890088810029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632b50004114610093578063481c6a75146101595780637de7edef146101b0578063a3f4df7e146101f3578063ba0bba4014610283578063e52cb36a1461029a578063f6cc15d0146102df578063ffa1ad74146103cf575b600080fd5b34801561009f57600080fd5b5061013b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061045f565b60405180826000191660001916815260200191505060405180910390f35b34801561016557600080fd5b5061016e6106e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101bc57600080fd5b506101f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061070d565b005b3480156101ff57600080fd5b506102086108f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028f57600080fd5b50610298610929565b005b3480156102a657600080fd5b506102c96004803603810190808035600019169060200190929190505050610933565b6040518082815260200191505060405180910390f35b3480156102eb57600080fd5b506103cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061094b565b005b3480156103db57600080fd5b506103e4610c1a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610424578082015181840152602081019050610409565b50505050905090810190601f1680156104515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561060357805182526020820191506020810190506020830392506105de565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561063157fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156106af578051825260208201915060208101905060208303925061068a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610931610c53565b565b60026020528060005260406000206000915090505481565b600061095a878787878761045f565b90506000600260008360001916600019168152602001908152602001600020541415156109ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b6109f98183610d46565b600160026000836000191660001916815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ad357fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610b13578082015181840152602081019050610af8565b50505050905090810190601f168015610b405780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b505050506040513d6020811015610b8c57600080fd5b81019080805190602001909291905050501515610c11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610dd657600080fd5b505af1158015610dea573d6000803e3d6000fd5b505050506040513d6020811015610e0057600080fd5b81019080805190602001909291905050509050600091505b8082101561107257610e2b86868461107a565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610eea57600080fd5b505af1158015610efe573d6000803e3d6000fd5b505050506040513d6020811015610f1457600080fd5b81019080805190602001909291905050501515610f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293508180600101925050610e18565b505050505050565b60008060008061108a8686611123565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561110d573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a72305820a48bbf0ad2bc336bfcfefa06097ad1574518b511dc1e366dc303d515890088810029", + "sourceMap": "320:2840:19:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;320:2840:19;;;;;;;", + "deployedSourceMap": "320:2840:19:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2829:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2829:329:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:28:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;270:28:4;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;383:52:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;383:52:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;383:52:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;673:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;673:65:19;;;;;;579:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;579:46:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1203:634;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1203:634:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;441:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;441:40:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;441:40:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2829:329;3032:7;3094:4;3089:10;;3106:1;3101:7;;3110:4;3116:2;3120:5;3127:4;3133:9;3144:5;3072:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3072:78:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3072:78:19;;;3062:89;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3062:89:19;;;;;;;;;;;;;;;;3055:96;;2829:329;;;;;;;:::o;270:28:4:-;;;;;;;;;;;;;:::o;626:248:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;383:52:19:-;;;;;;;;;;;;;;;;;;;;:::o;673:65::-;719:12;:10;:12::i;:::-;673:65::o;579:46::-;;;;;;;;;;;;;;;;;:::o;1203:634::-;1413:23;1439:53;1458:2;1462:5;1469:4;1475:9;1486:5;1439:18;:53::i;:::-;1413:79;;1541:1;1510:10;:27;1521:15;1510:27;;;;;;;;;;;;;;;;;;:32;1502:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1585:38;1595:15;1612:10;1585:9;:38::i;:::-;1716:1;1686:10;:27;1697:15;1686:27;;;;;;;;;;;;;;;;;:31;;;;1735:7;;;;;;;;;;;:33;;;1769:2;1773:5;1780:4;1786:9;1735:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1735:61:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1735:61:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1735:61:19;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1735:61:19;;;;;;;;;;;;;;;;1727:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1203:634;;;;;;;:::o;441:40::-;;;;;;;;;;;;;;;;;;;;:::o;442:300:4:-;656:1;644:7;;;;;;;;;;;636:21;;;628:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;724:10;700:7;;:35;;;;;;;;;;;;;;;;;;442:300::o;1843:708:19:-;2001:17;2041:20;2071:9;2090:17;2029:1;2001:30;;2123:7;;;;;;;;;;;2110:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2110:36:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2110:36:19;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2110:36:19;;;;;;;;;;;;;;;;2090:56;;2207:1;2203:5;;2198:347;2214:9;2210:1;:13;2198:347;;;2259:42;2270:15;2287:10;2299:1;2259:10;:42::i;:::-;2244:57;;2336:7;;;;;;;;;;;2323:29;;;2353:12;2323:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2323:43:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2323:43:19;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2323:43:19;;;;;;;;;;;;;;;;2315:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2439:9;2424:24;;:12;:24;;;2416:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2522:12;2510:24;;2225:3;;;;;;;2198:347;;;1843:708;;;;;;:::o;485:340:12:-;642:7;666;683:9;702;733:37;748:16;766:3;733:14;:37::i;:::-;721:49;;;;;;;;;;;;787:31;797:11;810:1;813;816;787:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;787:31:12;;;;;;;;780:38;;485:340;;;;;;;;:::o;1002:914::-;1104:7;1113:9;1124;1424:3;1418:4;1414:14;1486:4;1472:12;1468:23;1456:10;1452:40;1446:47;1441:52;;1551:4;1537:12;1533:23;1521:10;1517:40;1511:47;1506:52;;1895:4;1886;1872:12;1868:23;1856:10;1852:40;1846:47;1842:58;1837:63;;1380:530;;;;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"../base/Module.sol\";\nimport \"../base/OwnerManager.sol\";\nimport \"../common/SignatureDecoder.sol\";\n\n\n/// @title Gnosis Safe State Module - A module that allows interaction with statechannels.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract StateChannelModule is Module, SignatureDecoder {\n\n string public constant NAME = \"State Channel Module\";\n string public constant VERSION = \"0.0.2\";\n\n // isExecuted mapping allows to check if a transaction (by hash) was already executed.\n mapping (bytes32 => uint256) public isExecuted;\n\n /// @dev Setup function sets manager\n function setup()\n public\n {\n setManager();\n }\n\n /// @dev Allows to execute a Safe transaction confirmed by required number of owners.\n /// @param to Destination address of Safe transaction.\n /// @param value Ether value of Safe transaction.\n /// @param data Data payload of Safe transaction.\n /// @param operation Operation type of Safe transaction.\n /// @param nonce Nonce used for this Safe transaction.\n /// @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})\n function execTransaction(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce,\n bytes signatures\n )\n public\n {\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n require(isExecuted[transactionHash] == 0, \"Transaction already executed\");\n checkHash(transactionHash, signatures);\n // Mark as executed and execute transaction.\n isExecuted[transactionHash] = 1;\n require(manager.execTransactionFromModule(to, value, data, operation), \"Could not execute transaction\");\n }\n\n function checkHash(bytes32 transactionHash, bytes signatures)\n internal\n view\n {\n // There cannot be an owner with address 0.\n address lastOwner = address(0);\n address currentOwner;\n uint256 i;\n uint256 threshold = OwnerManager(manager).getThreshold();\n // Validate threshold is reached.\n for (i = 0; i < threshold; i++) {\n currentOwner = recoverKey(transactionHash, signatures, i);\n require(OwnerManager(manager).isOwner(currentOwner), \"Signature not provided by owner\");\n require(currentOwner > lastOwner, \"Signatures are not ordered by owner address\");\n lastOwner = currentOwner;\n }\n }\n\n /// @dev Returns hash to be signed by owners.\n /// @param to Destination address.\n /// @param value Ether value.\n /// @param data Data payload.\n /// @param operation Operation type.\n /// @param nonce Transaction nonce.\n /// @return Transaction hash.\n function getTransactionHash(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n view\n returns (bytes32)\n {\n return keccak256(abi.encodePacked(byte(0x19), byte(0), this, to, value, data, operation, nonce));\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", "exportedSymbols": { "StateChannelModule": [ - 2567 + 2562 ] }, - "id": 2568, + "id": 2563, "nodeType": "SourceUnit", "nodes": [ { - "id": 2382, + "id": 2377, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:22" + "src": "0:23:19" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", - "file": "../Module.sol", - "id": 2383, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "file": "../base/Module.sol", + "id": 2378, "nodeType": "ImportDirective", - "scope": 2568, - "sourceUnit": 914, - "src": "24:23:22", + "scope": 2563, + "sourceUnit": 936, + "src": "24:28:19", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", - "file": "../OwnerManager.sol", - "id": 2384, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "file": "../base/OwnerManager.sol", + "id": 2379, "nodeType": "ImportDirective", - "scope": 2568, - "sourceUnit": 1589, - "src": "48:29:22", + "scope": 2563, + "sourceUnit": 1653, + "src": "53:34:19", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", - "file": "../SignatureValidator.sol", - "id": 2385, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", + "file": "../common/SignatureDecoder.sol", + "id": 2380, "nodeType": "ImportDirective", - "scope": 2568, - "sourceUnit": 1822, - "src": "78:35:22", + "scope": 2563, + "sourceUnit": 1792, + "src": "88:40:19", "symbolAliases": [], "unitAlias": "" }, @@ -220,66 +220,66 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2386, + "id": 2381, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "336:6:22", + "referencedDeclaration": 935, + "src": "351:6:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, - "id": 2387, + "id": 2382, "nodeType": "InheritanceSpecifier", - "src": "336:6:22" + "src": "351:6:19" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2388, - "name": "SignatureValidator", + "id": 2383, + "name": "SignatureDecoder", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1821, - "src": "344:18:22", + "referencedDeclaration": 1791, + "src": "359:16:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureValidator_$1821", - "typeString": "contract SignatureValidator" + "typeIdentifier": "t_contract$_SignatureDecoder_$1791", + "typeString": "contract SignatureDecoder" } }, - "id": 2389, + "id": 2384, "nodeType": "InheritanceSpecifier", - "src": "344:18:22" + "src": "359:16:19" } ], "contractDependencies": [ - 813, - 913, - 1765, - 1821 + 935, + 1693, + 1735, + 1791 ], "contractKind": "contract", "documentation": "@title Gnosis Safe State Module - A module that allows interaction with statechannels.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 2567, + "id": 2562, "linearizedBaseContracts": [ - 2567, - 1821, - 913, - 813, - 1765 + 2562, + 1791, + 935, + 1693, + 1735 ], "name": "StateChannelModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2392, + "id": 2387, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2567, - "src": "370:52:22", + "scope": 2562, + "src": "383:52:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -287,10 +287,10 @@ "typeString": "string" }, "typeName": { - "id": 2390, + "id": 2385, "name": "string", "nodeType": "ElementaryTypeName", - "src": "370:6:22", + "src": "383:6:19", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -299,14 +299,14 @@ "value": { "argumentTypes": null, "hexValue": "5374617465204368616e6e656c204d6f64756c65", - "id": 2391, + "id": 2386, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "400:22:22", + "src": "413:22:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e66fa361bdba11103aaf2321b03707a79b393abf1f410f3f609398777fd3a713", @@ -318,11 +318,11 @@ }, { "constant": true, - "id": 2395, + "id": 2390, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2567, - "src": "428:40:22", + "scope": 2562, + "src": "441:40:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -330,10 +330,10 @@ "typeString": "string" }, "typeName": { - "id": 2393, + "id": 2388, "name": "string", "nodeType": "ElementaryTypeName", - "src": "428:6:22", + "src": "441:6:19", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -341,31 +341,31 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e31", - "id": 2394, + "hexValue": "302e302e32", + "id": 2389, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "461:7:22", + "src": "474:7:19", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" + "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", + "typeString": "literal_string \"0.0.2\"" }, - "value": "0.0.1" + "value": "0.0.2" }, "visibility": "public" }, { "constant": false, - "id": 2399, + "id": 2394, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 2567, - "src": "566:46:22", + "scope": 2562, + "src": "579:46:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -373,28 +373,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 2398, + "id": 2393, "keyType": { - "id": 2396, + "id": 2391, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "575:7:22", + "src": "588:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "566:28:22", + "src": "579:28:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 2397, + "id": 2392, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "586:7:22", + "src": "599:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -406,9 +406,9 @@ }, { "body": { - "id": 2405, + "id": 2400, "nodeType": "Block", - "src": "696:29:22", + "src": "709:29:19", "statements": [ { "expression": { @@ -416,18 +416,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2402, + "id": 2397, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 912, - "src": "706:10:22", + "referencedDeclaration": 934, + "src": "719:10:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2403, + "id": 2398, "isConstant": false, "isLValue": false, "isPure": false, @@ -435,20 +435,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "706:12:22", + "src": "719:12:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2404, + "id": 2399, "nodeType": "ExpressionStatement", - "src": "706:12:22" + "src": "719:12:19" } ] }, "documentation": "@dev Setup function sets manager", - "id": 2406, + "id": 2401, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -456,42 +456,42 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2400, + "id": 2395, "nodeType": "ParameterList", "parameters": [], - "src": "674:2:22" + "src": "687:2:19" }, "payable": false, "returnParameters": { - "id": 2401, + "id": 2396, "nodeType": "ParameterList", "parameters": [], - "src": "696:0:22" + "src": "709:0:19" }, - "scope": 2567, - "src": "660:65:22", + "scope": 2562, + "src": "673:65:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2462, + "id": 2457, "nodeType": "Block", - "src": "1390:434:22", + "src": "1403:434:19", "statements": [ { "assignments": [ - 2422 + 2417 ], "declarations": [ { "constant": false, - "id": 2422, + "id": 2417, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1400:23:22", + "scope": 2458, + "src": "1413:23:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -499,10 +499,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2421, + "id": 2416, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1400:7:22", + "src": "1413:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -512,18 +512,18 @@ "visibility": "internal" } ], - "id": 2430, + "id": 2425, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2424, + "id": 2419, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2408, - "src": "1445:2:22", + "referencedDeclaration": 2403, + "src": "1458:2:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -531,12 +531,12 @@ }, { "argumentTypes": null, - "id": 2425, + "id": 2420, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2410, - "src": "1449:5:22", + "referencedDeclaration": 2405, + "src": "1462:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -544,12 +544,12 @@ }, { "argumentTypes": null, - "id": 2426, + "id": 2421, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2412, - "src": "1456:4:22", + "referencedDeclaration": 2407, + "src": "1469:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -557,25 +557,25 @@ }, { "argumentTypes": null, - "id": 2427, + "id": 2422, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "1462:9:22", + "referencedDeclaration": 2409, + "src": "1475:9:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 2428, + "id": 2423, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2416, - "src": "1473:5:22", + "referencedDeclaration": 2411, + "src": "1486:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -597,7 +597,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, { @@ -605,18 +605,18 @@ "typeString": "uint256" } ], - "id": 2423, + "id": 2418, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1426:18:22", + "referencedDeclaration": 2561, + "src": "1439:18:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" } }, - "id": 2429, + "id": 2424, "isConstant": false, "isLValue": false, "isPure": false, @@ -624,14 +624,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1426:53:22", + "src": "1439:53:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "1400:79:22" + "src": "1413:79:19" }, { "expression": { @@ -643,7 +643,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2436, + "id": 2431, "isConstant": false, "isLValue": false, "isPure": false, @@ -652,26 +652,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2432, + "id": 2427, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2399, - "src": "1497:10:22", + "referencedDeclaration": 2394, + "src": "1510:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 2434, + "id": 2429, "indexExpression": { "argumentTypes": null, - "id": 2433, + "id": 2428, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "1508:15:22", + "referencedDeclaration": 2417, + "src": "1521:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -682,7 +682,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1497:27:22", + "src": "1510:27:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -693,14 +693,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2435, + "id": 2430, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1528:1:22", + "src": "1541:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -708,7 +708,7 @@ }, "value": "0" }, - "src": "1497:32:22", + "src": "1510:32:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -717,14 +717,14 @@ { "argumentTypes": null, "hexValue": "5472616e73616374696f6e20616c7265616479206578656375746564", - "id": 2437, + "id": 2432, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1531:30:22", + "src": "1544:30:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3c3f7cf602281cf7a98efd78d98ba46309975dadee18bcb57e640145699bd800", @@ -744,21 +744,21 @@ "typeString": "literal_string \"Transaction already executed\"" } ], - "id": 2431, + "id": 2426, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1489:7:22", + "referencedDeclaration": 4495, + "src": "1502:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2438, + "id": 2433, "isConstant": false, "isLValue": false, "isPure": false, @@ -766,15 +766,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1489:73:22", + "src": "1502:73:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2439, + "id": 2434, "nodeType": "ExpressionStatement", - "src": "1489:73:22" + "src": "1502:73:19" }, { "expression": { @@ -782,12 +782,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2441, + "id": 2436, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "1582:15:22", + "referencedDeclaration": 2417, + "src": "1595:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -795,12 +795,12 @@ }, { "argumentTypes": null, - "id": 2442, + "id": 2437, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "1599:10:22", + "referencedDeclaration": 2413, + "src": "1612:10:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -818,18 +818,18 @@ "typeString": "bytes memory" } ], - "id": 2440, + "id": 2435, "name": "checkHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2532, - "src": "1572:9:22", + "referencedDeclaration": 2527, + "src": "1585:9:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes32,bytes memory) view" } }, - "id": 2443, + "id": 2438, "isConstant": false, "isLValue": false, "isPure": false, @@ -837,20 +837,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1572:38:22", + "src": "1585:38:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2444, + "id": 2439, "nodeType": "ExpressionStatement", - "src": "1572:38:22" + "src": "1585:38:19" }, { "expression": { "argumentTypes": null, - "id": 2449, + "id": 2444, "isConstant": false, "isLValue": false, "isPure": false, @@ -859,26 +859,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2445, + "id": 2440, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2399, - "src": "1673:10:22", + "referencedDeclaration": 2394, + "src": "1686:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 2447, + "id": 2442, "indexExpression": { "argumentTypes": null, - "id": 2446, + "id": 2441, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "1684:15:22", + "referencedDeclaration": 2417, + "src": "1697:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -889,7 +889,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1673:27:22", + "src": "1686:27:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -900,14 +900,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 2448, + "id": 2443, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1703:1:22", + "src": "1716:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -915,15 +915,15 @@ }, "value": "1" }, - "src": "1673:31:22", + "src": "1686:31:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2450, + "id": 2445, "nodeType": "ExpressionStatement", - "src": "1673:31:22" + "src": "1686:31:19" }, { "expression": { @@ -934,12 +934,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2454, + "id": 2449, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2408, - "src": "1756:2:22", + "referencedDeclaration": 2403, + "src": "1769:2:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -947,12 +947,12 @@ }, { "argumentTypes": null, - "id": 2455, + "id": 2450, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2410, - "src": "1760:5:22", + "referencedDeclaration": 2405, + "src": "1773:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -960,12 +960,12 @@ }, { "argumentTypes": null, - "id": 2456, + "id": 2451, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2412, - "src": "1767:4:22", + "referencedDeclaration": 2407, + "src": "1780:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -973,14 +973,14 @@ }, { "argumentTypes": null, - "id": 2457, + "id": 2452, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "1773:9:22", + "referencedDeclaration": 2409, + "src": "1786:9:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } } @@ -1000,38 +1000,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2452, + "id": 2447, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "1722:7:22", + "referencedDeclaration": 900, + "src": "1735:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, - "id": 2453, + "id": 2448, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1106, - "src": "1722:33:22", + "referencedDeclaration": 1138, + "src": "1735:33:19", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2458, + "id": 2453, "isConstant": false, "isLValue": false, "isPure": false, @@ -1039,7 +1039,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1722:61:22", + "src": "1735:61:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1048,14 +1048,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 2459, + "id": 2454, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1785:31:22", + "src": "1798:31:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", @@ -1075,21 +1075,21 @@ "typeString": "literal_string \"Could not execute transaction\"" } ], - "id": 2451, + "id": 2446, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1714:7:22", + "referencedDeclaration": 4495, + "src": "1727:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2460, + "id": 2455, "isConstant": false, "isLValue": false, "isPure": false, @@ -1097,20 +1097,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1714:103:22", + "src": "1727:103:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2461, + "id": 2456, "nodeType": "ExpressionStatement", - "src": "1714:103:22" + "src": "1727:103:19" } ] }, "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners.\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @param nonce Nonce used for this Safe transaction.\n @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", - "id": 2463, + "id": 2458, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1118,16 +1118,16 @@ "name": "execTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 2419, + "id": 2414, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2408, + "id": 2403, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1224:10:22", + "scope": 2458, + "src": "1237:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1135,10 +1135,10 @@ "typeString": "address" }, "typeName": { - "id": 2407, + "id": 2402, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1224:7:22", + "src": "1237:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1149,11 +1149,11 @@ }, { "constant": false, - "id": 2410, + "id": 2405, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1245:13:22", + "scope": 2458, + "src": "1258:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1161,10 +1161,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2409, + "id": 2404, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1245:7:22", + "src": "1258:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1175,11 +1175,11 @@ }, { "constant": false, - "id": 2412, + "id": 2407, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1269:10:22", + "scope": 2458, + "src": "1282:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1187,10 +1187,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2411, + "id": 2406, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1269:5:22", + "src": "1282:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1201,26 +1201,26 @@ }, { "constant": false, - "id": 2414, + "id": 2409, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1290:24:22", + "scope": 2458, + "src": "1303:24:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 2413, + "id": 2408, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "1290:14:22", + "referencedDeclaration": 1658, + "src": "1303:14:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, @@ -1229,11 +1229,11 @@ }, { "constant": false, - "id": 2416, + "id": 2411, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1325:13:22", + "scope": 2458, + "src": "1338:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1241,10 +1241,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2415, + "id": 2410, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1325:7:22", + "src": "1338:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1255,11 +1255,11 @@ }, { "constant": false, - "id": 2418, + "id": 2413, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1348:16:22", + "scope": 2458, + "src": "1361:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1267,10 +1267,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2417, + "id": 2412, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1348:5:22", + "src": "1361:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1280,39 +1280,39 @@ "visibility": "internal" } ], - "src": "1214:156:22" + "src": "1227:156:19" }, "payable": false, "returnParameters": { - "id": 2420, + "id": 2415, "nodeType": "ParameterList", "parameters": [], - "src": "1390:0:22" + "src": "1403:0:19" }, - "scope": 2567, - "src": "1190:634:22", + "scope": 2562, + "src": "1203:634:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2531, + "id": 2526, "nodeType": "Block", - "src": "1926:612:22", + "src": "1939:612:19", "statements": [ { "assignments": [ - 2471 + 2466 ], "declarations": [ { "constant": false, - "id": 2471, + "id": 2466, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "1988:17:22", + "scope": 2527, + "src": "2001:17:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1320,10 +1320,10 @@ "typeString": "address" }, "typeName": { - "id": 2470, + "id": 2465, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1988:7:22", + "src": "2001:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1333,21 +1333,21 @@ "visibility": "internal" } ], - "id": 2475, + "id": 2470, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 2473, + "id": 2468, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2016:1:22", + "src": "2029:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1363,20 +1363,20 @@ "typeString": "int_const 0" } ], - "id": 2472, + "id": 2467, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2008:7:22", + "src": "2021:7:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2474, + "id": 2469, "isConstant": false, "isLValue": false, "isPure": true, @@ -1384,25 +1384,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2008:10:22", + "src": "2021:10:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1988:30:22" + "src": "2001:30:19" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 2477, + "id": 2472, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "2028:20:22", + "scope": 2527, + "src": "2041:20:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1410,10 +1410,10 @@ "typeString": "address" }, "typeName": { - "id": 2476, + "id": 2471, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2028:7:22", + "src": "2041:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1423,21 +1423,21 @@ "visibility": "internal" } ], - "id": 2478, + "id": 2473, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "2028:20:22" + "src": "2041:20:19" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 2480, + "id": 2475, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "2058:9:22", + "scope": 2527, + "src": "2071:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1445,10 +1445,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2479, + "id": 2474, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2058:7:22", + "src": "2071:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1458,23 +1458,23 @@ "visibility": "internal" } ], - "id": 2481, + "id": 2476, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "2058:9:22" + "src": "2071:9:19" }, { "assignments": [ - 2483 + 2478 ], "declarations": [ { "constant": false, - "id": 2483, + "id": 2478, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "2077:17:22", + "scope": 2527, + "src": "2090:17:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1482,10 +1482,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2482, + "id": 2477, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2077:7:22", + "src": "2090:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1495,7 +1495,7 @@ "visibility": "internal" } ], - "id": 2489, + "id": 2484, "initialValue": { "argumentTypes": null, "arguments": [], @@ -1506,14 +1506,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2485, + "id": 2480, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "2110:7:22", + "referencedDeclaration": 900, + "src": "2123:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } } @@ -1521,22 +1521,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } ], - "id": 2484, + "id": 2479, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1588, - "src": "2097:12:22", + "referencedDeclaration": 1652, + "src": "2110:12:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1588_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2486, + "id": 2481, "isConstant": false, "isLValue": false, "isPure": false, @@ -1544,27 +1544,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2097:21:22", + "src": "2110:21:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1588", + "typeIdentifier": "t_contract$_OwnerManager_$1652", "typeString": "contract OwnerManager" } }, - "id": 2487, + "id": 2482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getThreshold", "nodeType": "MemberAccess", - "referencedDeclaration": 1524, - "src": "2097:34:22", + "referencedDeclaration": 1588, + "src": "2110:34:19", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 2488, + "id": 2483, "isConstant": false, "isLValue": false, "isPure": false, @@ -1572,37 +1572,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2097:36:22", + "src": "2110:36:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2077:56:22" + "src": "2090:56:19" }, { "body": { - "id": 2529, + "id": 2524, "nodeType": "Block", - "src": "2217:315:22", + "src": "2230:315:19", "statements": [ { "expression": { "argumentTypes": null, - "id": 2506, + "id": 2501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2500, + "id": 2495, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2477, - "src": "2231:12:22", + "referencedDeclaration": 2472, + "src": "2244:12:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1615,12 +1615,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2502, + "id": 2497, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "2257:15:22", + "referencedDeclaration": 2460, + "src": "2270:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1628,12 +1628,12 @@ }, { "argumentTypes": null, - "id": 2503, + "id": 2498, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2467, - "src": "2274:10:22", + "referencedDeclaration": 2462, + "src": "2287:10:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1641,12 +1641,12 @@ }, { "argumentTypes": null, - "id": 2504, + "id": 2499, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2480, - "src": "2286:1:22", + "referencedDeclaration": 2475, + "src": "2299:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1668,18 +1668,18 @@ "typeString": "uint256" } ], - "id": 2501, + "id": 2496, "name": "recoverKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "2246:10:22", + "referencedDeclaration": 1775, + "src": "2259:10:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$", "typeString": "function (bytes32,bytes memory,uint256) pure returns (address)" } }, - "id": 2505, + "id": 2500, "isConstant": false, "isLValue": false, "isPure": false, @@ -1687,21 +1687,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2246:42:22", + "src": "2259:42:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2231:57:22", + "src": "2244:57:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2507, + "id": 2502, "nodeType": "ExpressionStatement", - "src": "2231:57:22" + "src": "2244:57:19" }, { "expression": { @@ -1712,12 +1712,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2513, + "id": 2508, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2477, - "src": "2340:12:22", + "referencedDeclaration": 2472, + "src": "2353:12:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1736,14 +1736,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2510, + "id": 2505, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "2323:7:22", + "referencedDeclaration": 900, + "src": "2336:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } } @@ -1751,22 +1751,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } ], - "id": 2509, + "id": 2504, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1588, - "src": "2310:12:22", + "referencedDeclaration": 1652, + "src": "2323:12:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1588_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2511, + "id": 2506, "isConstant": false, "isLValue": false, "isPure": false, @@ -1774,27 +1774,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2310:21:22", + "src": "2323:21:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1588", + "typeIdentifier": "t_contract$_OwnerManager_$1652", "typeString": "contract OwnerManager" } }, - "id": 2512, + "id": 2507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1538, - "src": "2310:29:22", + "referencedDeclaration": 1602, + "src": "2323:29:19", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 2514, + "id": 2509, "isConstant": false, "isLValue": false, "isPure": false, @@ -1802,7 +1802,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2310:43:22", + "src": "2323:43:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1811,14 +1811,14 @@ { "argumentTypes": null, "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 2515, + "id": 2510, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2355:33:22", + "src": "2368:33:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", @@ -1838,21 +1838,21 @@ "typeString": "literal_string \"Signature not provided by owner\"" } ], - "id": 2508, + "id": 2503, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2302:7:22", + "referencedDeclaration": 4495, + "src": "2315:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2516, + "id": 2511, "isConstant": false, "isLValue": false, "isPure": false, @@ -1860,15 +1860,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2302:87:22", + "src": "2315:87:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2517, + "id": 2512, "nodeType": "ExpressionStatement", - "src": "2302:87:22" + "src": "2315:87:19" }, { "expression": { @@ -1880,19 +1880,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2521, + "id": 2516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2519, + "id": 2514, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2477, - "src": "2411:12:22", + "referencedDeclaration": 2472, + "src": "2424:12:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1902,18 +1902,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 2520, + "id": 2515, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2471, - "src": "2426:9:22", + "referencedDeclaration": 2466, + "src": "2439:9:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2411:24:22", + "src": "2424:24:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1922,14 +1922,14 @@ { "argumentTypes": null, "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 2522, + "id": 2517, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2437:45:22", + "src": "2450:45:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", @@ -1949,21 +1949,21 @@ "typeString": "literal_string \"Signatures are not ordered by owner address\"" } ], - "id": 2518, + "id": 2513, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2403:7:22", + "referencedDeclaration": 4495, + "src": "2416:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2523, + "id": 2518, "isConstant": false, "isLValue": false, "isPure": false, @@ -1971,32 +1971,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2403:80:22", + "src": "2416:80:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2524, + "id": 2519, "nodeType": "ExpressionStatement", - "src": "2403:80:22" + "src": "2416:80:19" }, { "expression": { "argumentTypes": null, - "id": 2527, + "id": 2522, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2525, + "id": 2520, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2471, - "src": "2497:9:22", + "referencedDeclaration": 2466, + "src": "2510:9:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2006,26 +2006,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2526, + "id": 2521, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2477, - "src": "2509:12:22", + "referencedDeclaration": 2472, + "src": "2522:12:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2497:24:22", + "src": "2510:24:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2528, + "id": 2523, "nodeType": "ExpressionStatement", - "src": "2497:24:22" + "src": "2510:24:19" } ] }, @@ -2035,19 +2035,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2496, + "id": 2491, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2494, + "id": 2489, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2480, - "src": "2197:1:22", + "referencedDeclaration": 2475, + "src": "2210:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2057,40 +2057,40 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 2495, + "id": 2490, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2483, - "src": "2201:9:22", + "referencedDeclaration": 2478, + "src": "2214:9:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2197:13:22", + "src": "2210:13:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2530, + "id": 2525, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 2492, + "id": 2487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2490, + "id": 2485, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2480, - "src": "2190:1:22", + "referencedDeclaration": 2475, + "src": "2203:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2101,14 +2101,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2491, + "id": 2486, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2194:1:22", + "src": "2207:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2116,20 +2116,20 @@ }, "value": "0" }, - "src": "2190:5:22", + "src": "2203:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2493, + "id": 2488, "nodeType": "ExpressionStatement", - "src": "2190:5:22" + "src": "2203:5:19" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2498, + "id": 2493, "isConstant": false, "isLValue": false, "isPure": false, @@ -2137,15 +2137,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2212:3:22", + "src": "2225:3:19", "subExpression": { "argumentTypes": null, - "id": 2497, + "id": 2492, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2480, - "src": "2212:1:22", + "referencedDeclaration": 2475, + "src": "2225:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2156,17 +2156,17 @@ "typeString": "uint256" } }, - "id": 2499, + "id": 2494, "nodeType": "ExpressionStatement", - "src": "2212:3:22" + "src": "2225:3:19" }, "nodeType": "ForStatement", - "src": "2185:347:22" + "src": "2198:347:19" } ] }, "documentation": null, - "id": 2532, + "id": 2527, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2174,16 +2174,16 @@ "name": "checkHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2468, + "id": 2463, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2465, + "id": 2460, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "1849:23:22", + "scope": 2527, + "src": "1862:23:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2191,10 +2191,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2464, + "id": 2459, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1849:7:22", + "src": "1862:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2205,11 +2205,11 @@ }, { "constant": false, - "id": 2467, + "id": 2462, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "1874:16:22", + "scope": 2527, + "src": "1887:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2217,10 +2217,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2466, + "id": 2461, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1874:5:22", + "src": "1887:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2230,26 +2230,26 @@ "visibility": "internal" } ], - "src": "1848:43:22" + "src": "1861:43:19" }, "payable": false, "returnParameters": { - "id": 2469, + "id": 2464, "nodeType": "ParameterList", "parameters": [], - "src": "1926:0:22" + "src": "1939:0:19" }, - "scope": 2567, - "src": "1830:708:22", + "scope": 2562, + "src": "1843:708:19", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2565, + "id": 2560, "nodeType": "Block", - "src": "3032:113:22", + "src": "3045:113:19", "statements": [ { "expression": { @@ -2264,14 +2264,14 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 2551, + "id": 2546, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3081:4:22", + "src": "3094:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", @@ -2287,20 +2287,20 @@ "typeString": "int_const 25" } ], - "id": 2550, + "id": 2545, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3076:4:22", + "src": "3089:4:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 2552, + "id": 2547, "isConstant": false, "isLValue": false, "isPure": true, @@ -2308,7 +2308,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3076:10:22", + "src": "3089:10:19", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -2320,14 +2320,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2554, + "id": 2549, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3093:1:22", + "src": "3106:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2343,20 +2343,20 @@ "typeString": "int_const 0" } ], - "id": 2553, + "id": 2548, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3088:4:22", + "src": "3101:4:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 2555, + "id": 2550, "isConstant": false, "isLValue": false, "isPure": true, @@ -2364,7 +2364,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3088:7:22", + "src": "3101:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -2372,25 +2372,25 @@ }, { "argumentTypes": null, - "id": 2556, + "id": 2551, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3885, - "src": "3097:4:22", + "referencedDeclaration": 4544, + "src": "3110:4:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_StateChannelModule_$2567", + "typeIdentifier": "t_contract$_StateChannelModule_$2562", "typeString": "contract StateChannelModule" } }, { "argumentTypes": null, - "id": 2557, + "id": 2552, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2534, - "src": "3103:2:22", + "referencedDeclaration": 2529, + "src": "3116:2:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2398,12 +2398,12 @@ }, { "argumentTypes": null, - "id": 2558, + "id": 2553, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2536, - "src": "3107:5:22", + "referencedDeclaration": 2531, + "src": "3120:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2411,12 +2411,12 @@ }, { "argumentTypes": null, - "id": 2559, + "id": 2554, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2538, - "src": "3114:4:22", + "referencedDeclaration": 2533, + "src": "3127:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2424,25 +2424,25 @@ }, { "argumentTypes": null, - "id": 2560, + "id": 2555, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2540, - "src": "3120:9:22", + "referencedDeclaration": 2535, + "src": "3133:9:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 2561, + "id": 2556, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2542, - "src": "3131:5:22", + "referencedDeclaration": 2537, + "src": "3144:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2460,7 +2460,7 @@ "typeString": "bytes1" }, { - "typeIdentifier": "t_contract$_StateChannelModule_$2567", + "typeIdentifier": "t_contract$_StateChannelModule_$2562", "typeString": "contract StateChannelModule" }, { @@ -2476,7 +2476,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, { @@ -2486,18 +2486,18 @@ ], "expression": { "argumentTypes": null, - "id": 2548, + "id": 2543, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "3059:3:22", + "referencedDeclaration": 4478, + "src": "3072:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 2549, + "id": 2544, "isConstant": false, "isLValue": false, "isPure": true, @@ -2505,13 +2505,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3059:16:22", + "src": "3072:16:19", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2562, + "id": 2557, "isConstant": false, "isLValue": false, "isPure": false, @@ -2519,7 +2519,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3059:78:22", + "src": "3072:78:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2533,18 +2533,18 @@ "typeString": "bytes memory" } ], - "id": 2547, + "id": 2542, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "3049:9:22", + "referencedDeclaration": 4485, + "src": "3062:9:19", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 2563, + "id": 2558, "isConstant": false, "isLValue": false, "isPure": false, @@ -2552,21 +2552,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3049:89:22", + "src": "3062:89:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 2546, - "id": 2564, + "functionReturnParameters": 2541, + "id": 2559, "nodeType": "Return", - "src": "3042:96:22" + "src": "3055:96:19" } ] }, "documentation": "@dev Returns hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param nonce Transaction nonce.\n @return Transaction hash.", - "id": 2566, + "id": 2561, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2574,16 +2574,16 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2543, + "id": 2538, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2534, + "id": 2529, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "2853:10:22", + "scope": 2561, + "src": "2866:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2591,10 +2591,10 @@ "typeString": "address" }, "typeName": { - "id": 2533, + "id": 2528, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2853:7:22", + "src": "2866:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2605,11 +2605,11 @@ }, { "constant": false, - "id": 2536, + "id": 2531, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "2874:13:22", + "scope": 2561, + "src": "2887:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2617,10 +2617,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2535, + "id": 2530, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2874:7:22", + "src": "2887:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2631,11 +2631,11 @@ }, { "constant": false, - "id": 2538, + "id": 2533, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "2898:10:22", + "scope": 2561, + "src": "2911:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2643,10 +2643,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2537, + "id": 2532, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2898:5:22", + "src": "2911:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2657,26 +2657,26 @@ }, { "constant": false, - "id": 2540, + "id": 2535, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "2919:24:22", + "scope": 2561, + "src": "2932:24:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 2539, + "id": 2534, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "2919:14:22", + "referencedDeclaration": 1658, + "src": "2932:14:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, @@ -2685,11 +2685,11 @@ }, { "constant": false, - "id": 2542, + "id": 2537, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "2954:13:22", + "scope": 2561, + "src": "2967:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2697,10 +2697,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2541, + "id": 2536, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2954:7:22", + "src": "2967:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2710,20 +2710,20 @@ "visibility": "internal" } ], - "src": "2843:130:22" + "src": "2856:130:19" }, "payable": false, "returnParameters": { - "id": 2546, + "id": 2541, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2545, + "id": 2540, "name": "", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "3019:7:22", + "scope": 2561, + "src": "3032:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2731,10 +2731,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2544, + "id": 2539, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3019:7:22", + "src": "3032:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2744,71 +2744,71 @@ "visibility": "internal" } ], - "src": "3018:9:22" + "src": "3031:9:19" }, - "scope": 2567, - "src": "2816:329:22", + "scope": 2562, + "src": "2829:329:19", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 2568, - "src": "305:2842:22" + "scope": 2563, + "src": "320:2840:19" } ], - "src": "0:3148:22" + "src": "0:3161:19" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", "exportedSymbols": { "StateChannelModule": [ - 2567 + 2562 ] }, - "id": 2568, + "id": 2563, "nodeType": "SourceUnit", "nodes": [ { - "id": 2382, + "id": 2377, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:22" + "src": "0:23:19" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", - "file": "../Module.sol", - "id": 2383, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "file": "../base/Module.sol", + "id": 2378, "nodeType": "ImportDirective", - "scope": 2568, - "sourceUnit": 914, - "src": "24:23:22", + "scope": 2563, + "sourceUnit": 936, + "src": "24:28:19", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", - "file": "../OwnerManager.sol", - "id": 2384, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "file": "../base/OwnerManager.sol", + "id": 2379, "nodeType": "ImportDirective", - "scope": 2568, - "sourceUnit": 1589, - "src": "48:29:22", + "scope": 2563, + "sourceUnit": 1653, + "src": "53:34:19", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", - "file": "../SignatureValidator.sol", - "id": 2385, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", + "file": "../common/SignatureDecoder.sol", + "id": 2380, "nodeType": "ImportDirective", - "scope": 2568, - "sourceUnit": 1822, - "src": "78:35:22", + "scope": 2563, + "sourceUnit": 1792, + "src": "88:40:19", "symbolAliases": [], "unitAlias": "" }, @@ -2818,66 +2818,66 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2386, + "id": 2381, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "336:6:22", + "referencedDeclaration": 935, + "src": "351:6:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, - "id": 2387, + "id": 2382, "nodeType": "InheritanceSpecifier", - "src": "336:6:22" + "src": "351:6:19" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2388, - "name": "SignatureValidator", + "id": 2383, + "name": "SignatureDecoder", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1821, - "src": "344:18:22", + "referencedDeclaration": 1791, + "src": "359:16:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureValidator_$1821", - "typeString": "contract SignatureValidator" + "typeIdentifier": "t_contract$_SignatureDecoder_$1791", + "typeString": "contract SignatureDecoder" } }, - "id": 2389, + "id": 2384, "nodeType": "InheritanceSpecifier", - "src": "344:18:22" + "src": "359:16:19" } ], "contractDependencies": [ - 813, - 913, - 1765, - 1821 + 935, + 1693, + 1735, + 1791 ], "contractKind": "contract", "documentation": "@title Gnosis Safe State Module - A module that allows interaction with statechannels.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 2567, + "id": 2562, "linearizedBaseContracts": [ - 2567, - 1821, - 913, - 813, - 1765 + 2562, + 1791, + 935, + 1693, + 1735 ], "name": "StateChannelModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2392, + "id": 2387, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2567, - "src": "370:52:22", + "scope": 2562, + "src": "383:52:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2885,10 +2885,10 @@ "typeString": "string" }, "typeName": { - "id": 2390, + "id": 2385, "name": "string", "nodeType": "ElementaryTypeName", - "src": "370:6:22", + "src": "383:6:19", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2897,14 +2897,14 @@ "value": { "argumentTypes": null, "hexValue": "5374617465204368616e6e656c204d6f64756c65", - "id": 2391, + "id": 2386, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "400:22:22", + "src": "413:22:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e66fa361bdba11103aaf2321b03707a79b393abf1f410f3f609398777fd3a713", @@ -2916,11 +2916,11 @@ }, { "constant": true, - "id": 2395, + "id": 2390, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2567, - "src": "428:40:22", + "scope": 2562, + "src": "441:40:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2928,10 +2928,10 @@ "typeString": "string" }, "typeName": { - "id": 2393, + "id": 2388, "name": "string", "nodeType": "ElementaryTypeName", - "src": "428:6:22", + "src": "441:6:19", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2939,31 +2939,31 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e31", - "id": 2394, + "hexValue": "302e302e32", + "id": 2389, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "461:7:22", + "src": "474:7:19", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" + "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", + "typeString": "literal_string \"0.0.2\"" }, - "value": "0.0.1" + "value": "0.0.2" }, "visibility": "public" }, { "constant": false, - "id": 2399, + "id": 2394, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 2567, - "src": "566:46:22", + "scope": 2562, + "src": "579:46:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2971,28 +2971,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 2398, + "id": 2393, "keyType": { - "id": 2396, + "id": 2391, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "575:7:22", + "src": "588:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "566:28:22", + "src": "579:28:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 2397, + "id": 2392, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "586:7:22", + "src": "599:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3004,9 +3004,9 @@ }, { "body": { - "id": 2405, + "id": 2400, "nodeType": "Block", - "src": "696:29:22", + "src": "709:29:19", "statements": [ { "expression": { @@ -3014,18 +3014,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2402, + "id": 2397, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 912, - "src": "706:10:22", + "referencedDeclaration": 934, + "src": "719:10:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2403, + "id": 2398, "isConstant": false, "isLValue": false, "isPure": false, @@ -3033,20 +3033,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "706:12:22", + "src": "719:12:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2404, + "id": 2399, "nodeType": "ExpressionStatement", - "src": "706:12:22" + "src": "719:12:19" } ] }, "documentation": "@dev Setup function sets manager", - "id": 2406, + "id": 2401, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3054,42 +3054,42 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2400, + "id": 2395, "nodeType": "ParameterList", "parameters": [], - "src": "674:2:22" + "src": "687:2:19" }, "payable": false, "returnParameters": { - "id": 2401, + "id": 2396, "nodeType": "ParameterList", "parameters": [], - "src": "696:0:22" + "src": "709:0:19" }, - "scope": 2567, - "src": "660:65:22", + "scope": 2562, + "src": "673:65:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2462, + "id": 2457, "nodeType": "Block", - "src": "1390:434:22", + "src": "1403:434:19", "statements": [ { "assignments": [ - 2422 + 2417 ], "declarations": [ { "constant": false, - "id": 2422, + "id": 2417, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1400:23:22", + "scope": 2458, + "src": "1413:23:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3097,10 +3097,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2421, + "id": 2416, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1400:7:22", + "src": "1413:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3110,18 +3110,18 @@ "visibility": "internal" } ], - "id": 2430, + "id": 2425, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2424, + "id": 2419, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2408, - "src": "1445:2:22", + "referencedDeclaration": 2403, + "src": "1458:2:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3129,12 +3129,12 @@ }, { "argumentTypes": null, - "id": 2425, + "id": 2420, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2410, - "src": "1449:5:22", + "referencedDeclaration": 2405, + "src": "1462:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3142,12 +3142,12 @@ }, { "argumentTypes": null, - "id": 2426, + "id": 2421, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2412, - "src": "1456:4:22", + "referencedDeclaration": 2407, + "src": "1469:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3155,25 +3155,25 @@ }, { "argumentTypes": null, - "id": 2427, + "id": 2422, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "1462:9:22", + "referencedDeclaration": 2409, + "src": "1475:9:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 2428, + "id": 2423, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2416, - "src": "1473:5:22", + "referencedDeclaration": 2411, + "src": "1486:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3195,7 +3195,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, { @@ -3203,18 +3203,18 @@ "typeString": "uint256" } ], - "id": 2423, + "id": 2418, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1426:18:22", + "referencedDeclaration": 2561, + "src": "1439:18:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" } }, - "id": 2429, + "id": 2424, "isConstant": false, "isLValue": false, "isPure": false, @@ -3222,14 +3222,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1426:53:22", + "src": "1439:53:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "1400:79:22" + "src": "1413:79:19" }, { "expression": { @@ -3241,7 +3241,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2436, + "id": 2431, "isConstant": false, "isLValue": false, "isPure": false, @@ -3250,26 +3250,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2432, + "id": 2427, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2399, - "src": "1497:10:22", + "referencedDeclaration": 2394, + "src": "1510:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 2434, + "id": 2429, "indexExpression": { "argumentTypes": null, - "id": 2433, + "id": 2428, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "1508:15:22", + "referencedDeclaration": 2417, + "src": "1521:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3280,7 +3280,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1497:27:22", + "src": "1510:27:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3291,14 +3291,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2435, + "id": 2430, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1528:1:22", + "src": "1541:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3306,7 +3306,7 @@ }, "value": "0" }, - "src": "1497:32:22", + "src": "1510:32:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3315,14 +3315,14 @@ { "argumentTypes": null, "hexValue": "5472616e73616374696f6e20616c7265616479206578656375746564", - "id": 2437, + "id": 2432, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1531:30:22", + "src": "1544:30:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3c3f7cf602281cf7a98efd78d98ba46309975dadee18bcb57e640145699bd800", @@ -3342,21 +3342,21 @@ "typeString": "literal_string \"Transaction already executed\"" } ], - "id": 2431, + "id": 2426, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1489:7:22", + "referencedDeclaration": 4495, + "src": "1502:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2438, + "id": 2433, "isConstant": false, "isLValue": false, "isPure": false, @@ -3364,15 +3364,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1489:73:22", + "src": "1502:73:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2439, + "id": 2434, "nodeType": "ExpressionStatement", - "src": "1489:73:22" + "src": "1502:73:19" }, { "expression": { @@ -3380,12 +3380,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2441, + "id": 2436, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "1582:15:22", + "referencedDeclaration": 2417, + "src": "1595:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3393,12 +3393,12 @@ }, { "argumentTypes": null, - "id": 2442, + "id": 2437, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "1599:10:22", + "referencedDeclaration": 2413, + "src": "1612:10:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3416,18 +3416,18 @@ "typeString": "bytes memory" } ], - "id": 2440, + "id": 2435, "name": "checkHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2532, - "src": "1572:9:22", + "referencedDeclaration": 2527, + "src": "1585:9:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes32,bytes memory) view" } }, - "id": 2443, + "id": 2438, "isConstant": false, "isLValue": false, "isPure": false, @@ -3435,20 +3435,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1572:38:22", + "src": "1585:38:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2444, + "id": 2439, "nodeType": "ExpressionStatement", - "src": "1572:38:22" + "src": "1585:38:19" }, { "expression": { "argumentTypes": null, - "id": 2449, + "id": 2444, "isConstant": false, "isLValue": false, "isPure": false, @@ -3457,26 +3457,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2445, + "id": 2440, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2399, - "src": "1673:10:22", + "referencedDeclaration": 2394, + "src": "1686:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 2447, + "id": 2442, "indexExpression": { "argumentTypes": null, - "id": 2446, + "id": 2441, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "1684:15:22", + "referencedDeclaration": 2417, + "src": "1697:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3487,7 +3487,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1673:27:22", + "src": "1686:27:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3498,14 +3498,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 2448, + "id": 2443, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1703:1:22", + "src": "1716:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3513,15 +3513,15 @@ }, "value": "1" }, - "src": "1673:31:22", + "src": "1686:31:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2450, + "id": 2445, "nodeType": "ExpressionStatement", - "src": "1673:31:22" + "src": "1686:31:19" }, { "expression": { @@ -3532,12 +3532,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2454, + "id": 2449, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2408, - "src": "1756:2:22", + "referencedDeclaration": 2403, + "src": "1769:2:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3545,12 +3545,12 @@ }, { "argumentTypes": null, - "id": 2455, + "id": 2450, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2410, - "src": "1760:5:22", + "referencedDeclaration": 2405, + "src": "1773:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3558,12 +3558,12 @@ }, { "argumentTypes": null, - "id": 2456, + "id": 2451, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2412, - "src": "1767:4:22", + "referencedDeclaration": 2407, + "src": "1780:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3571,14 +3571,14 @@ }, { "argumentTypes": null, - "id": 2457, + "id": 2452, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "1773:9:22", + "referencedDeclaration": 2409, + "src": "1786:9:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } } @@ -3598,38 +3598,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2452, + "id": 2447, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "1722:7:22", + "referencedDeclaration": 900, + "src": "1735:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, - "id": 2453, + "id": 2448, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1106, - "src": "1722:33:22", + "referencedDeclaration": 1138, + "src": "1735:33:19", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2458, + "id": 2453, "isConstant": false, "isLValue": false, "isPure": false, @@ -3637,7 +3637,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1722:61:22", + "src": "1735:61:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3646,14 +3646,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 2459, + "id": 2454, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1785:31:22", + "src": "1798:31:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", @@ -3673,21 +3673,21 @@ "typeString": "literal_string \"Could not execute transaction\"" } ], - "id": 2451, + "id": 2446, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1714:7:22", + "referencedDeclaration": 4495, + "src": "1727:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2460, + "id": 2455, "isConstant": false, "isLValue": false, "isPure": false, @@ -3695,20 +3695,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1714:103:22", + "src": "1727:103:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2461, + "id": 2456, "nodeType": "ExpressionStatement", - "src": "1714:103:22" + "src": "1727:103:19" } ] }, "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners.\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @param nonce Nonce used for this Safe transaction.\n @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", - "id": 2463, + "id": 2458, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3716,16 +3716,16 @@ "name": "execTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 2419, + "id": 2414, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2408, + "id": 2403, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1224:10:22", + "scope": 2458, + "src": "1237:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3733,10 +3733,10 @@ "typeString": "address" }, "typeName": { - "id": 2407, + "id": 2402, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1224:7:22", + "src": "1237:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3747,11 +3747,11 @@ }, { "constant": false, - "id": 2410, + "id": 2405, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1245:13:22", + "scope": 2458, + "src": "1258:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3759,10 +3759,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2409, + "id": 2404, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1245:7:22", + "src": "1258:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3773,11 +3773,11 @@ }, { "constant": false, - "id": 2412, + "id": 2407, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1269:10:22", + "scope": 2458, + "src": "1282:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3785,10 +3785,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2411, + "id": 2406, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1269:5:22", + "src": "1282:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3799,26 +3799,26 @@ }, { "constant": false, - "id": 2414, + "id": 2409, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1290:24:22", + "scope": 2458, + "src": "1303:24:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 2413, + "id": 2408, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "1290:14:22", + "referencedDeclaration": 1658, + "src": "1303:14:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, @@ -3827,11 +3827,11 @@ }, { "constant": false, - "id": 2416, + "id": 2411, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1325:13:22", + "scope": 2458, + "src": "1338:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3839,10 +3839,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2415, + "id": 2410, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1325:7:22", + "src": "1338:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3853,11 +3853,11 @@ }, { "constant": false, - "id": 2418, + "id": 2413, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 2463, - "src": "1348:16:22", + "scope": 2458, + "src": "1361:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3865,10 +3865,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2417, + "id": 2412, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1348:5:22", + "src": "1361:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3878,39 +3878,39 @@ "visibility": "internal" } ], - "src": "1214:156:22" + "src": "1227:156:19" }, "payable": false, "returnParameters": { - "id": 2420, + "id": 2415, "nodeType": "ParameterList", "parameters": [], - "src": "1390:0:22" + "src": "1403:0:19" }, - "scope": 2567, - "src": "1190:634:22", + "scope": 2562, + "src": "1203:634:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2531, + "id": 2526, "nodeType": "Block", - "src": "1926:612:22", + "src": "1939:612:19", "statements": [ { "assignments": [ - 2471 + 2466 ], "declarations": [ { "constant": false, - "id": 2471, + "id": 2466, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "1988:17:22", + "scope": 2527, + "src": "2001:17:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3918,10 +3918,10 @@ "typeString": "address" }, "typeName": { - "id": 2470, + "id": 2465, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1988:7:22", + "src": "2001:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3931,21 +3931,21 @@ "visibility": "internal" } ], - "id": 2475, + "id": 2470, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 2473, + "id": 2468, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2016:1:22", + "src": "2029:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3961,20 +3961,20 @@ "typeString": "int_const 0" } ], - "id": 2472, + "id": 2467, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2008:7:22", + "src": "2021:7:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2474, + "id": 2469, "isConstant": false, "isLValue": false, "isPure": true, @@ -3982,25 +3982,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2008:10:22", + "src": "2021:10:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1988:30:22" + "src": "2001:30:19" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 2477, + "id": 2472, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "2028:20:22", + "scope": 2527, + "src": "2041:20:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4008,10 +4008,10 @@ "typeString": "address" }, "typeName": { - "id": 2476, + "id": 2471, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2028:7:22", + "src": "2041:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4021,21 +4021,21 @@ "visibility": "internal" } ], - "id": 2478, + "id": 2473, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "2028:20:22" + "src": "2041:20:19" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 2480, + "id": 2475, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "2058:9:22", + "scope": 2527, + "src": "2071:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4043,10 +4043,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2479, + "id": 2474, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2058:7:22", + "src": "2071:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4056,23 +4056,23 @@ "visibility": "internal" } ], - "id": 2481, + "id": 2476, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "2058:9:22" + "src": "2071:9:19" }, { "assignments": [ - 2483 + 2478 ], "declarations": [ { "constant": false, - "id": 2483, + "id": 2478, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "2077:17:22", + "scope": 2527, + "src": "2090:17:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4080,10 +4080,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2482, + "id": 2477, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2077:7:22", + "src": "2090:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4093,7 +4093,7 @@ "visibility": "internal" } ], - "id": 2489, + "id": 2484, "initialValue": { "argumentTypes": null, "arguments": [], @@ -4104,14 +4104,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2485, + "id": 2480, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "2110:7:22", + "referencedDeclaration": 900, + "src": "2123:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } } @@ -4119,22 +4119,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } ], - "id": 2484, + "id": 2479, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1588, - "src": "2097:12:22", + "referencedDeclaration": 1652, + "src": "2110:12:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1588_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2486, + "id": 2481, "isConstant": false, "isLValue": false, "isPure": false, @@ -4142,27 +4142,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2097:21:22", + "src": "2110:21:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1588", + "typeIdentifier": "t_contract$_OwnerManager_$1652", "typeString": "contract OwnerManager" } }, - "id": 2487, + "id": 2482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getThreshold", "nodeType": "MemberAccess", - "referencedDeclaration": 1524, - "src": "2097:34:22", + "referencedDeclaration": 1588, + "src": "2110:34:19", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 2488, + "id": 2483, "isConstant": false, "isLValue": false, "isPure": false, @@ -4170,37 +4170,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2097:36:22", + "src": "2110:36:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2077:56:22" + "src": "2090:56:19" }, { "body": { - "id": 2529, + "id": 2524, "nodeType": "Block", - "src": "2217:315:22", + "src": "2230:315:19", "statements": [ { "expression": { "argumentTypes": null, - "id": 2506, + "id": 2501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2500, + "id": 2495, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2477, - "src": "2231:12:22", + "referencedDeclaration": 2472, + "src": "2244:12:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4213,12 +4213,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2502, + "id": 2497, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "2257:15:22", + "referencedDeclaration": 2460, + "src": "2270:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4226,12 +4226,12 @@ }, { "argumentTypes": null, - "id": 2503, + "id": 2498, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2467, - "src": "2274:10:22", + "referencedDeclaration": 2462, + "src": "2287:10:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -4239,12 +4239,12 @@ }, { "argumentTypes": null, - "id": 2504, + "id": 2499, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2480, - "src": "2286:1:22", + "referencedDeclaration": 2475, + "src": "2299:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4266,18 +4266,18 @@ "typeString": "uint256" } ], - "id": 2501, + "id": 2496, "name": "recoverKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "2246:10:22", + "referencedDeclaration": 1775, + "src": "2259:10:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$", "typeString": "function (bytes32,bytes memory,uint256) pure returns (address)" } }, - "id": 2505, + "id": 2500, "isConstant": false, "isLValue": false, "isPure": false, @@ -4285,21 +4285,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2246:42:22", + "src": "2259:42:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2231:57:22", + "src": "2244:57:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2507, + "id": 2502, "nodeType": "ExpressionStatement", - "src": "2231:57:22" + "src": "2244:57:19" }, { "expression": { @@ -4310,12 +4310,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2513, + "id": 2508, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2477, - "src": "2340:12:22", + "referencedDeclaration": 2472, + "src": "2353:12:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4334,14 +4334,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2510, + "id": 2505, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "2323:7:22", + "referencedDeclaration": 900, + "src": "2336:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } } @@ -4349,22 +4349,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } ], - "id": 2509, + "id": 2504, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1588, - "src": "2310:12:22", + "referencedDeclaration": 1652, + "src": "2323:12:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1588_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2511, + "id": 2506, "isConstant": false, "isLValue": false, "isPure": false, @@ -4372,27 +4372,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2310:21:22", + "src": "2323:21:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1588", + "typeIdentifier": "t_contract$_OwnerManager_$1652", "typeString": "contract OwnerManager" } }, - "id": 2512, + "id": 2507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1538, - "src": "2310:29:22", + "referencedDeclaration": 1602, + "src": "2323:29:19", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 2514, + "id": 2509, "isConstant": false, "isLValue": false, "isPure": false, @@ -4400,7 +4400,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2310:43:22", + "src": "2323:43:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4409,14 +4409,14 @@ { "argumentTypes": null, "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 2515, + "id": 2510, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2355:33:22", + "src": "2368:33:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", @@ -4436,21 +4436,21 @@ "typeString": "literal_string \"Signature not provided by owner\"" } ], - "id": 2508, + "id": 2503, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2302:7:22", + "referencedDeclaration": 4495, + "src": "2315:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2516, + "id": 2511, "isConstant": false, "isLValue": false, "isPure": false, @@ -4458,15 +4458,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2302:87:22", + "src": "2315:87:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2517, + "id": 2512, "nodeType": "ExpressionStatement", - "src": "2302:87:22" + "src": "2315:87:19" }, { "expression": { @@ -4478,19 +4478,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2521, + "id": 2516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2519, + "id": 2514, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2477, - "src": "2411:12:22", + "referencedDeclaration": 2472, + "src": "2424:12:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4500,18 +4500,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 2520, + "id": 2515, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2471, - "src": "2426:9:22", + "referencedDeclaration": 2466, + "src": "2439:9:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2411:24:22", + "src": "2424:24:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4520,14 +4520,14 @@ { "argumentTypes": null, "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 2522, + "id": 2517, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2437:45:22", + "src": "2450:45:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", @@ -4547,21 +4547,21 @@ "typeString": "literal_string \"Signatures are not ordered by owner address\"" } ], - "id": 2518, + "id": 2513, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2403:7:22", + "referencedDeclaration": 4495, + "src": "2416:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2523, + "id": 2518, "isConstant": false, "isLValue": false, "isPure": false, @@ -4569,32 +4569,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2403:80:22", + "src": "2416:80:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2524, + "id": 2519, "nodeType": "ExpressionStatement", - "src": "2403:80:22" + "src": "2416:80:19" }, { "expression": { "argumentTypes": null, - "id": 2527, + "id": 2522, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2525, + "id": 2520, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2471, - "src": "2497:9:22", + "referencedDeclaration": 2466, + "src": "2510:9:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4604,26 +4604,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2526, + "id": 2521, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2477, - "src": "2509:12:22", + "referencedDeclaration": 2472, + "src": "2522:12:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2497:24:22", + "src": "2510:24:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2528, + "id": 2523, "nodeType": "ExpressionStatement", - "src": "2497:24:22" + "src": "2510:24:19" } ] }, @@ -4633,19 +4633,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2496, + "id": 2491, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2494, + "id": 2489, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2480, - "src": "2197:1:22", + "referencedDeclaration": 2475, + "src": "2210:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4655,40 +4655,40 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 2495, + "id": 2490, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2483, - "src": "2201:9:22", + "referencedDeclaration": 2478, + "src": "2214:9:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2197:13:22", + "src": "2210:13:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2530, + "id": 2525, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 2492, + "id": 2487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2490, + "id": 2485, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2480, - "src": "2190:1:22", + "referencedDeclaration": 2475, + "src": "2203:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4699,14 +4699,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2491, + "id": 2486, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2194:1:22", + "src": "2207:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4714,20 +4714,20 @@ }, "value": "0" }, - "src": "2190:5:22", + "src": "2203:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2493, + "id": 2488, "nodeType": "ExpressionStatement", - "src": "2190:5:22" + "src": "2203:5:19" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2498, + "id": 2493, "isConstant": false, "isLValue": false, "isPure": false, @@ -4735,15 +4735,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2212:3:22", + "src": "2225:3:19", "subExpression": { "argumentTypes": null, - "id": 2497, + "id": 2492, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2480, - "src": "2212:1:22", + "referencedDeclaration": 2475, + "src": "2225:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4754,17 +4754,17 @@ "typeString": "uint256" } }, - "id": 2499, + "id": 2494, "nodeType": "ExpressionStatement", - "src": "2212:3:22" + "src": "2225:3:19" }, "nodeType": "ForStatement", - "src": "2185:347:22" + "src": "2198:347:19" } ] }, "documentation": null, - "id": 2532, + "id": 2527, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4772,16 +4772,16 @@ "name": "checkHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2468, + "id": 2463, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2465, + "id": 2460, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "1849:23:22", + "scope": 2527, + "src": "1862:23:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4789,10 +4789,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2464, + "id": 2459, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1849:7:22", + "src": "1862:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4803,11 +4803,11 @@ }, { "constant": false, - "id": 2467, + "id": 2462, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "1874:16:22", + "scope": 2527, + "src": "1887:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4815,10 +4815,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2466, + "id": 2461, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1874:5:22", + "src": "1887:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4828,26 +4828,26 @@ "visibility": "internal" } ], - "src": "1848:43:22" + "src": "1861:43:19" }, "payable": false, "returnParameters": { - "id": 2469, + "id": 2464, "nodeType": "ParameterList", "parameters": [], - "src": "1926:0:22" + "src": "1939:0:19" }, - "scope": 2567, - "src": "1830:708:22", + "scope": 2562, + "src": "1843:708:19", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2565, + "id": 2560, "nodeType": "Block", - "src": "3032:113:22", + "src": "3045:113:19", "statements": [ { "expression": { @@ -4862,14 +4862,14 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 2551, + "id": 2546, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3081:4:22", + "src": "3094:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", @@ -4885,20 +4885,20 @@ "typeString": "int_const 25" } ], - "id": 2550, + "id": 2545, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3076:4:22", + "src": "3089:4:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 2552, + "id": 2547, "isConstant": false, "isLValue": false, "isPure": true, @@ -4906,7 +4906,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3076:10:22", + "src": "3089:10:19", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -4918,14 +4918,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2554, + "id": 2549, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3093:1:22", + "src": "3106:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4941,20 +4941,20 @@ "typeString": "int_const 0" } ], - "id": 2553, + "id": 2548, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3088:4:22", + "src": "3101:4:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 2555, + "id": 2550, "isConstant": false, "isLValue": false, "isPure": true, @@ -4962,7 +4962,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3088:7:22", + "src": "3101:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -4970,25 +4970,25 @@ }, { "argumentTypes": null, - "id": 2556, + "id": 2551, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3885, - "src": "3097:4:22", + "referencedDeclaration": 4544, + "src": "3110:4:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_StateChannelModule_$2567", + "typeIdentifier": "t_contract$_StateChannelModule_$2562", "typeString": "contract StateChannelModule" } }, { "argumentTypes": null, - "id": 2557, + "id": 2552, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2534, - "src": "3103:2:22", + "referencedDeclaration": 2529, + "src": "3116:2:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4996,12 +4996,12 @@ }, { "argumentTypes": null, - "id": 2558, + "id": 2553, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2536, - "src": "3107:5:22", + "referencedDeclaration": 2531, + "src": "3120:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5009,12 +5009,12 @@ }, { "argumentTypes": null, - "id": 2559, + "id": 2554, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2538, - "src": "3114:4:22", + "referencedDeclaration": 2533, + "src": "3127:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5022,25 +5022,25 @@ }, { "argumentTypes": null, - "id": 2560, + "id": 2555, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2540, - "src": "3120:9:22", + "referencedDeclaration": 2535, + "src": "3133:9:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 2561, + "id": 2556, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2542, - "src": "3131:5:22", + "referencedDeclaration": 2537, + "src": "3144:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5058,7 +5058,7 @@ "typeString": "bytes1" }, { - "typeIdentifier": "t_contract$_StateChannelModule_$2567", + "typeIdentifier": "t_contract$_StateChannelModule_$2562", "typeString": "contract StateChannelModule" }, { @@ -5074,7 +5074,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, { @@ -5084,18 +5084,18 @@ ], "expression": { "argumentTypes": null, - "id": 2548, + "id": 2543, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "3059:3:22", + "referencedDeclaration": 4478, + "src": "3072:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 2549, + "id": 2544, "isConstant": false, "isLValue": false, "isPure": true, @@ -5103,13 +5103,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3059:16:22", + "src": "3072:16:19", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2562, + "id": 2557, "isConstant": false, "isLValue": false, "isPure": false, @@ -5117,7 +5117,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3059:78:22", + "src": "3072:78:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5131,18 +5131,18 @@ "typeString": "bytes memory" } ], - "id": 2547, + "id": 2542, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3822, - "src": "3049:9:22", + "referencedDeclaration": 4485, + "src": "3062:9:19", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 2563, + "id": 2558, "isConstant": false, "isLValue": false, "isPure": false, @@ -5150,21 +5150,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3049:89:22", + "src": "3062:89:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 2546, - "id": 2564, + "functionReturnParameters": 2541, + "id": 2559, "nodeType": "Return", - "src": "3042:96:22" + "src": "3055:96:19" } ] }, "documentation": "@dev Returns hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param nonce Transaction nonce.\n @return Transaction hash.", - "id": 2566, + "id": 2561, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5172,16 +5172,16 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2543, + "id": 2538, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2534, + "id": 2529, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "2853:10:22", + "scope": 2561, + "src": "2866:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5189,10 +5189,10 @@ "typeString": "address" }, "typeName": { - "id": 2533, + "id": 2528, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2853:7:22", + "src": "2866:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5203,11 +5203,11 @@ }, { "constant": false, - "id": 2536, + "id": 2531, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "2874:13:22", + "scope": 2561, + "src": "2887:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5215,10 +5215,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2535, + "id": 2530, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2874:7:22", + "src": "2887:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5229,11 +5229,11 @@ }, { "constant": false, - "id": 2538, + "id": 2533, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "2898:10:22", + "scope": 2561, + "src": "2911:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5241,10 +5241,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2537, + "id": 2532, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2898:5:22", + "src": "2911:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5255,26 +5255,26 @@ }, { "constant": false, - "id": 2540, + "id": 2535, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "2919:24:22", + "scope": 2561, + "src": "2932:24:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 2539, + "id": 2534, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "2919:14:22", + "referencedDeclaration": 1658, + "src": "2932:14:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } }, @@ -5283,11 +5283,11 @@ }, { "constant": false, - "id": 2542, + "id": 2537, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "2954:13:22", + "scope": 2561, + "src": "2967:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5295,10 +5295,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2541, + "id": 2536, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2954:7:22", + "src": "2967:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5308,20 +5308,20 @@ "visibility": "internal" } ], - "src": "2843:130:22" + "src": "2856:130:19" }, "payable": false, "returnParameters": { - "id": 2546, + "id": 2541, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2545, + "id": 2540, "name": "", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "3019:7:22", + "scope": 2561, + "src": "3032:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5329,10 +5329,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2544, + "id": 2539, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3019:7:22", + "src": "3032:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5342,20 +5342,20 @@ "visibility": "internal" } ], - "src": "3018:9:22" + "src": "3031:9:19" }, - "scope": 2567, - "src": "2816:329:22", + "scope": 2562, + "src": "2829:329:19", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 2568, - "src": "305:2842:22" + "scope": 2563, + "src": "320:2840:19" } ], - "src": "0:3148:22" + "src": "0:3161:19" }, "compiler": { "name": "solc", @@ -5365,16 +5365,10 @@ "4": { "events": {}, "links": {}, - "address": "0xc8498fc36e3da3bcbee6e348d6acb3624dd0119f", - "transactionHash": "0x4d6be9fe685a30b2b46da1eb945b622fa6048cedde06881b2e59fee4cf917749" - }, - "1534750848541": { - "events": {}, - "links": {}, - "address": "0x4bf749ec68270027c5910220ceab30cc284c7ba2", - "transactionHash": "0xa6d1215db43b8641bd857b3ac7344524e1ff995d56c7fbebac56235136d8abf6" + "address": "0xb58f8ee55d49113e9ed371bd83b8d69d392097ae", + "transactionHash": "0xce77bbddf576f9e4d9e0d5f45826762d74d26732f192f0339413deb8f0af1539" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:50:29.690Z" + "updatedAt": "2018-09-26T08:56:03.715Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/Token.json b/safe-contracts/build/contracts/Token.json new file mode 100644 index 00000000..c681b4b2 --- /dev/null +++ b/safe-contracts/build/contracts/Token.json @@ -0,0 +1,363 @@ +{ + "contractName": "Token", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.4.23;\nimport \"@gnosis.pm/mock-contract/contracts/MockContract.sol\";\ncontract Token {\n\tfunction transfer(address _to, uint value) public returns (bool);\n}\n", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/mocks/Token.sol", + "ast": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/mocks/Token.sol", + "exportedSymbols": { + "Token": [ + 1871 + ] + }, + "id": 1872, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1860, + "literals": [ + "solidity", + "^", + "0.4", + ".23" + ], + "nodeType": "PragmaDirective", + "src": "0:24:16" + }, + { + "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", + "file": "@gnosis.pm/mock-contract/contracts/MockContract.sol", + "id": 1861, + "nodeType": "ImportDirective", + "scope": 1872, + "sourceUnit": 4477, + "src": "25:61:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 1871, + "linearizedBaseContracts": [ + 1871 + ], + "name": "Token", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 1870, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1866, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1863, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 1870, + "src": "123:11:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1862, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "123:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1865, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1870, + "src": "136:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1864, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "136:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "122:25:16" + }, + "payable": false, + "returnParameters": { + "id": 1869, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1868, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1870, + "src": "164:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1867, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "164:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "163:6:16" + }, + "scope": 1871, + "src": "105:65:16", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1872, + "src": "87:85:16" + } + ], + "src": "0:173:16" + }, + "legacyAST": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/mocks/Token.sol", + "exportedSymbols": { + "Token": [ + 1871 + ] + }, + "id": 1872, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1860, + "literals": [ + "solidity", + "^", + "0.4", + ".23" + ], + "nodeType": "PragmaDirective", + "src": "0:24:16" + }, + { + "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", + "file": "@gnosis.pm/mock-contract/contracts/MockContract.sol", + "id": 1861, + "nodeType": "ImportDirective", + "scope": 1872, + "sourceUnit": 4477, + "src": "25:61:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 1871, + "linearizedBaseContracts": [ + 1871 + ], + "name": "Token", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 1870, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1866, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1863, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 1870, + "src": "123:11:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1862, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "123:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1865, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1870, + "src": "136:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1864, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "136:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "122:25:16" + }, + "payable": false, + "returnParameters": { + "id": 1869, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1868, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1870, + "src": "164:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1867, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "164:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "163:6:16" + }, + "scope": 1871, + "src": "105:65:16", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1872, + "src": "87:85:16" + } + ], + "src": "0:173:16" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-09-26T08:32:07.645Z" +} \ No newline at end of file diff --git a/safe-contracts/build/contracts/WhitelistModule.json b/safe-contracts/build/contracts/WhitelistModule.json index cd073901..e603d176 100644 --- a/safe-contracts/build/contracts/WhitelistModule.json +++ b/safe-contracts/build/contracts/WhitelistModule.json @@ -146,73 +146,73 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611248806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a723058205659a70706960385766f28a257121b0b44f23142275b603b9b8983a7d4ae04040029", - "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a723058205659a70706960385766f28a257121b0b44f23142275b603b9b8983a7d4ae04040029", - "sourceMap": "289:2199:23:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;289:2199:23;;;;;;;", - "deployedSourceMap": "289:2199:23:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:502;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1984:502:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;498:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;498:46:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:9;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;1528:202:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1528:202:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;331:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;331:48:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;331:48:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;667:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;667:298:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1114:260;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1114:260:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;385:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;385:40:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;385:40:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:502;2083:4;2213:7;;;;;;;;;;;2200:29;;;2230:10;2200:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2200:41:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2200:41:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2200:41:23;;;;;;;;;;;;;;;;2192:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2301:13;:17;2315:2;2301:17;;;;;;;;;;;;;;;;;;;;;;;;;2293:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2374:7;;;;;;;;;;;:33;;;2408:2;2412:5;2419:4;2425:19;2374:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2374:71:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2374:71:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2374:71:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2374:71:23;;;;;;;;;;;;;;;;2366:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:502;;;;;:::o;498:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;262:28:9:-;;;;;;;;;;;;;:::o;626:248:7:-;359:7:9;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:7;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;1528:202:23:-;359:7:9;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1630:13:23;:22;1644:7;1630:22;;;;;;;;;;;;;;;;;;;;;;;;;1622:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1718:5;1693:13;:22;1707:7;1693:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1528:202;:::o;331:48::-;;;;;;;;;;;;;;;;;;;;:::o;667:298::-;758:9;813:15;731:12;:10;:12::i;:::-;770:1;758:13;;753:206;777:8;:15;773:1;:19;753:206;;;831:8;840:1;831:11;;;;;;;;;;;;;;;;;;813:29;;875:1;864:7;:12;;;;856:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;944:4;919:13;:22;933:7;919:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;794:3;;;;;;;753:206;;;667:298;;;:::o;1114:260::-;359:7:9;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1222:1:23;1211:7;:12;;;;1203:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1271:13;:22;1285:7;1271:22;;;;;;;;;;;;;;;;;;;;;;;;;1270:23;1262:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1363:4;1338:13;:22;1352:7;1338:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1114:260;:::o;385:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:9:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o", - "source": "pragma solidity 0.4.24;\nimport \"../Enum.sol\";\nimport \"../Module.sol\";\nimport \"../ModuleManager.sol\";\nimport \"../OwnerManager.sol\";\n\n\n/// @title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n/// @author Stefan George - \ncontract WhitelistModule is Module {\n\n string public constant NAME = \"Whitelist Module\";\n string public constant VERSION = \"0.0.1\";\n\n // isWhitelisted mapping maps destination address to boolean.\n mapping (address => bool) public isWhitelisted;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param accounts List of whitelisted accounts.\n function setup(address[] accounts)\n public\n {\n setManager();\n for (uint256 i = 0; i < accounts.length; i++) {\n address account = accounts[i];\n require(account != 0, \"Invalid account provided\");\n isWhitelisted[account] = true;\n }\n }\n\n /// @dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n /// @param account Destination address.\n function addToWhitelist(address account)\n public\n authorized\n {\n require(account != 0, \"Invalid account provided\");\n require(!isWhitelisted[account], \"Account is already whitelisted\");\n isWhitelisted[account] = true;\n }\n\n /// @dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n /// @param account Destination address.\n function removeFromWhitelist(address account)\n public\n authorized\n {\n require(isWhitelisted[account], \"Account is not whitelisted\");\n isWhitelisted[account] = false;\n }\n\n /// @dev Returns if Safe transaction is to a whitelisted destination.\n /// @param to Whitelisted destination address.\n /// @param value Not checked.\n /// @param data Not checked.\n /// @return Returns if transaction can be executed.\n function executeWhitelisted(address to, uint256 value, bytes data)\n public\n returns (bool)\n {\n // Only Safe owners are allowed to execute transactions to whitelisted accounts.\n require(OwnerManager(manager).isOwner(msg.sender), \"Method can only be called by an owner\");\n require(isWhitelisted[to], \"Target account is not whitelisted\");\n require(manager.execTransactionFromModule(to, value, data, Enum.Operation.Call), \"Could not execute transaction\");\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50611248806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a723058200759d9736c7b0074bec4c761a4c2afe1f92448d2e5c774b10eac839b4f00324b0029", + "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a723058200759d9736c7b0074bec4c761a4c2afe1f92448d2e5c774b10eac839b4f00324b0029", + "sourceMap": "311:2199:20:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;311:2199:20;;;;;;;", + "deployedSourceMap": "311:2199:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2006:502;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2006:502:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;520:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;520:46:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:28:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;270:28:4;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1550:202:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1550:202:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;353:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:48:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;353:48:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;689:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;689:298:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1136:260;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1136:260:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;407:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;407:40:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;407:40:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2006:502;2105:4;2235:7;;;;;;;;;;;2222:29;;;2252:10;2222:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2222:41:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2222:41:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2222:41:20;;;;;;;;;;;;;;;;2214:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2323:13;:17;2337:2;2323:17;;;;;;;;;;;;;;;;;;;;;;;;;2315:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2396:7;;;;;;;;;;;:33;;;2430:2;2434:5;2441:4;2447:19;2396:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2396:71:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2396:71:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2396:71:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2396:71:20;;;;;;;;;;;;;;;;2388:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2006:502;;;;;:::o;520:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;270:28:4:-;;;;;;;;;;;;;:::o;626:248:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;1550:202:20:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1652:13:20;:22;1666:7;1652:22;;;;;;;;;;;;;;;;;;;;;;;;;1644:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1740:5;1715:13;:22;1729:7;1715:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1550:202;:::o;353:48::-;;;;;;;;;;;;;;;;;;;;:::o;689:298::-;780:9;835:15;753:12;:10;:12::i;:::-;792:1;780:13;;775:206;799:8;:15;795:1;:19;775:206;;;853:8;862:1;853:11;;;;;;;;;;;;;;;;;;835:29;;897:1;886:7;:12;;;;878:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;966:4;941:13;:22;955:7;941:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;816:3;;;;;;;775:206;;;689:298;;;:::o;1136:260::-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1244:1:20;1233:7;:12;;;;1225:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1293:13;:22;1307:7;1293:22;;;;;;;;;;;;;;;;;;;;;;;;;1292:23;1284:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1385:4;1360:13;:22;1374:7;1360:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1136:260;:::o;407:40::-;;;;;;;;;;;;;;;;;;;;:::o;442:300:4:-;656:1;644:7;;;;;;;;;;;636:21;;;628:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;724:10;700:7;;:35;;;;;;;;;;;;;;;;;;442:300::o", + "source": "pragma solidity 0.4.24;\nimport \"../base/Module.sol\";\nimport \"../base/ModuleManager.sol\";\nimport \"../base/OwnerManager.sol\";\nimport \"../common/Enum.sol\";\n\n\n/// @title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n/// @author Stefan George - \ncontract WhitelistModule is Module {\n\n string public constant NAME = \"Whitelist Module\";\n string public constant VERSION = \"0.0.2\";\n\n // isWhitelisted mapping maps destination address to boolean.\n mapping (address => bool) public isWhitelisted;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param accounts List of whitelisted accounts.\n function setup(address[] accounts)\n public\n {\n setManager();\n for (uint256 i = 0; i < accounts.length; i++) {\n address account = accounts[i];\n require(account != 0, \"Invalid account provided\");\n isWhitelisted[account] = true;\n }\n }\n\n /// @dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n /// @param account Destination address.\n function addToWhitelist(address account)\n public\n authorized\n {\n require(account != 0, \"Invalid account provided\");\n require(!isWhitelisted[account], \"Account is already whitelisted\");\n isWhitelisted[account] = true;\n }\n\n /// @dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n /// @param account Destination address.\n function removeFromWhitelist(address account)\n public\n authorized\n {\n require(isWhitelisted[account], \"Account is not whitelisted\");\n isWhitelisted[account] = false;\n }\n\n /// @dev Returns if Safe transaction is to a whitelisted destination.\n /// @param to Whitelisted destination address.\n /// @param value Not checked.\n /// @param data Not checked.\n /// @return Returns if transaction can be executed.\n function executeWhitelisted(address to, uint256 value, bytes data)\n public\n returns (bool)\n {\n // Only Safe owners are allowed to execute transactions to whitelisted accounts.\n require(OwnerManager(manager).isOwner(msg.sender), \"Method can only be called by an owner\");\n require(isWhitelisted[to], \"Target account is not whitelisted\");\n require(manager.execTransactionFromModule(to, value, data, Enum.Operation.Call), \"Could not execute transaction\");\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", "exportedSymbols": { "WhitelistModule": [ - 2721 + 2716 ] }, - "id": 2722, + "id": 2717, "nodeType": "SourceUnit", "nodes": [ { - "id": 2569, + "id": 2564, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:23" + "src": "0:23:20" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", - "file": "../Enum.sol", - "id": 2570, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "file": "../base/Module.sol", + "id": 2565, "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 31, - "src": "24:21:23", + "scope": 2717, + "sourceUnit": 936, + "src": "24:28:20", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", - "file": "../Module.sol", - "id": 2571, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "file": "../base/ModuleManager.sol", + "id": 2566, "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 914, - "src": "46:23:23", + "scope": 2717, + "sourceUnit": 1213, + "src": "53:35:20", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", - "file": "../ModuleManager.sol", - "id": 2572, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "file": "../base/OwnerManager.sol", + "id": 2567, "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 1181, - "src": "70:30:23", + "scope": 2717, + "sourceUnit": 1653, + "src": "89:34:20", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", - "file": "../OwnerManager.sol", - "id": 2573, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "file": "../common/Enum.sol", + "id": 2568, "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 1589, - "src": "101:29:23", + "scope": 2717, + "sourceUnit": 1660, + "src": "124:28:20", "symbolAliases": [], "unitAlias": "" }, @@ -222,46 +222,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2574, + "id": 2569, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "317:6:23", + "referencedDeclaration": 935, + "src": "339:6:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, - "id": 2575, + "id": 2570, "nodeType": "InheritanceSpecifier", - "src": "317:6:23" + "src": "339:6:20" } ], "contractDependencies": [ - 813, - 913, - 1765 + 935, + 1693, + 1735 ], "contractKind": "contract", "documentation": "@title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n @author Stefan George - ", "fullyImplemented": true, - "id": 2721, + "id": 2716, "linearizedBaseContracts": [ - 2721, - 913, - 813, - 1765 + 2716, + 935, + 1693, + 1735 ], "name": "WhitelistModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2578, + "id": 2573, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2721, - "src": "331:48:23", + "scope": 2716, + "src": "353:48:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -269,10 +269,10 @@ "typeString": "string" }, "typeName": { - "id": 2576, + "id": 2571, "name": "string", "nodeType": "ElementaryTypeName", - "src": "331:6:23", + "src": "353:6:20", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -281,14 +281,14 @@ "value": { "argumentTypes": null, "hexValue": "57686974656c697374204d6f64756c65", - "id": 2577, + "id": 2572, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "361:18:23", + "src": "383:18:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_84d69d03a7c747e8eefe7cc2b9e87b566cfc57cc90e4ed88f03f9c9780b7d4e6", @@ -300,11 +300,11 @@ }, { "constant": true, - "id": 2581, + "id": 2576, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2721, - "src": "385:40:23", + "scope": 2716, + "src": "407:40:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -312,10 +312,10 @@ "typeString": "string" }, "typeName": { - "id": 2579, + "id": 2574, "name": "string", "nodeType": "ElementaryTypeName", - "src": "385:6:23", + "src": "407:6:20", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -323,31 +323,31 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e31", - "id": 2580, + "hexValue": "302e302e32", + "id": 2575, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "418:7:23", + "src": "440:7:20", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" + "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", + "typeString": "literal_string \"0.0.2\"" }, - "value": "0.0.1" + "value": "0.0.2" }, "visibility": "public" }, { "constant": false, - "id": 2585, + "id": 2580, "name": "isWhitelisted", "nodeType": "VariableDeclaration", - "scope": 2721, - "src": "498:46:23", + "scope": 2716, + "src": "520:46:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -355,28 +355,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 2584, + "id": 2579, "keyType": { - "id": 2582, + "id": 2577, "name": "address", "nodeType": "ElementaryTypeName", - "src": "507:7:23", + "src": "529:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "498:25:23", + "src": "520:25:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2583, + "id": 2578, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "518:4:23", + "src": "540:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -388,9 +388,9 @@ }, { "body": { - "id": 2626, + "id": 2621, "nodeType": "Block", - "src": "721:244:23", + "src": "743:244:20", "statements": [ { "expression": { @@ -398,18 +398,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2591, + "id": 2586, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 912, - "src": "731:10:23", + "referencedDeclaration": 934, + "src": "753:10:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2592, + "id": 2587, "isConstant": false, "isLValue": false, "isPure": false, @@ -417,34 +417,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "731:12:23", + "src": "753:12:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2593, + "id": 2588, "nodeType": "ExpressionStatement", - "src": "731:12:23" + "src": "753:12:20" }, { "body": { - "id": 2624, + "id": 2619, "nodeType": "Block", - "src": "799:160:23", + "src": "821:160:20", "statements": [ { "assignments": [ - 2606 + 2601 ], "declarations": [ { "constant": false, - "id": 2606, + "id": 2601, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2627, - "src": "813:15:23", + "scope": 2622, + "src": "835:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -452,10 +452,10 @@ "typeString": "address" }, "typeName": { - "id": 2605, + "id": 2600, "name": "address", "nodeType": "ElementaryTypeName", - "src": "813:7:23", + "src": "835:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -465,31 +465,31 @@ "visibility": "internal" } ], - "id": 2610, + "id": 2605, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2607, + "id": 2602, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2588, - "src": "831:8:23", + "referencedDeclaration": 2583, + "src": "853:8:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2609, + "id": 2604, "indexExpression": { "argumentTypes": null, - "id": 2608, + "id": 2603, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2595, - "src": "840:1:23", + "referencedDeclaration": 2590, + "src": "862:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -500,14 +500,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "831:11:23", + "src": "853:11:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "813:29:23" + "src": "835:29:20" }, { "expression": { @@ -519,19 +519,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2614, + "id": 2609, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2612, + "id": 2607, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2606, - "src": "864:7:23", + "referencedDeclaration": 2601, + "src": "886:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -542,14 +542,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2613, + "id": 2608, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "875:1:23", + "src": "897:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -557,7 +557,7 @@ }, "value": "0" }, - "src": "864:12:23", + "src": "886:12:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -566,14 +566,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2615, + "id": 2610, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "878:26:23", + "src": "900:26:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", @@ -593,21 +593,21 @@ "typeString": "literal_string \"Invalid account provided\"" } ], - "id": 2611, + "id": 2606, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "856:7:23", + "referencedDeclaration": 4495, + "src": "878:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2616, + "id": 2611, "isConstant": false, "isLValue": false, "isPure": false, @@ -615,20 +615,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "856:49:23", + "src": "878:49:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2617, + "id": 2612, "nodeType": "ExpressionStatement", - "src": "856:49:23" + "src": "878:49:20" }, { "expression": { "argumentTypes": null, - "id": 2622, + "id": 2617, "isConstant": false, "isLValue": false, "isPure": false, @@ -637,26 +637,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2618, + "id": 2613, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2585, - "src": "919:13:23", + "referencedDeclaration": 2580, + "src": "941:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2620, + "id": 2615, "indexExpression": { "argumentTypes": null, - "id": 2619, + "id": 2614, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2606, - "src": "933:7:23", + "referencedDeclaration": 2601, + "src": "955:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -667,7 +667,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "919:22:23", + "src": "941:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -678,14 +678,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2621, + "id": 2616, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "944:4:23", + "src": "966:4:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -693,15 +693,15 @@ }, "value": "true" }, - "src": "919:29:23", + "src": "941:29:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2623, + "id": 2618, "nodeType": "ExpressionStatement", - "src": "919:29:23" + "src": "941:29:20" } ] }, @@ -711,19 +711,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2601, + "id": 2596, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2598, + "id": 2593, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2595, - "src": "773:1:23", + "referencedDeclaration": 2590, + "src": "795:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -735,18 +735,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2599, + "id": 2594, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2588, - "src": "777:8:23", + "referencedDeclaration": 2583, + "src": "799:8:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2600, + "id": 2595, "isConstant": false, "isLValue": false, "isPure": false, @@ -754,31 +754,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "777:15:23", + "src": "799:15:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "773:19:23", + "src": "795:19:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2625, + "id": 2620, "initializationExpression": { "assignments": [ - 2595 + 2590 ], "declarations": [ { "constant": false, - "id": 2595, + "id": 2590, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2627, - "src": "758:9:23", + "scope": 2622, + "src": "780:9:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -786,10 +786,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2594, + "id": 2589, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "758:7:23", + "src": "780:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -799,18 +799,18 @@ "visibility": "internal" } ], - "id": 2597, + "id": 2592, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2596, + "id": 2591, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "770:1:23", + "src": "792:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -819,12 +819,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "758:13:23" + "src": "780:13:20" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2603, + "id": 2598, "isConstant": false, "isLValue": false, "isPure": false, @@ -832,15 +832,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "794:3:23", + "src": "816:3:20", "subExpression": { "argumentTypes": null, - "id": 2602, + "id": 2597, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2595, - "src": "794:1:23", + "referencedDeclaration": 2590, + "src": "816:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -851,17 +851,17 @@ "typeString": "uint256" } }, - "id": 2604, + "id": 2599, "nodeType": "ExpressionStatement", - "src": "794:3:23" + "src": "816:3:20" }, "nodeType": "ForStatement", - "src": "753:206:23" + "src": "775:206:20" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param accounts List of whitelisted accounts.", - "id": 2627, + "id": 2622, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -869,16 +869,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2589, + "id": 2584, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2588, + "id": 2583, "name": "accounts", "nodeType": "VariableDeclaration", - "scope": 2627, - "src": "682:18:23", + "scope": 2622, + "src": "704:18:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -887,19 +887,19 @@ }, "typeName": { "baseType": { - "id": 2586, + "id": 2581, "name": "address", "nodeType": "ElementaryTypeName", - "src": "682:7:23", + "src": "704:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2587, + "id": 2582, "length": null, "nodeType": "ArrayTypeName", - "src": "682:9:23", + "src": "704:9:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -909,26 +909,26 @@ "visibility": "internal" } ], - "src": "681:20:23" + "src": "703:20:20" }, "payable": false, "returnParameters": { - "id": 2590, + "id": 2585, "nodeType": "ParameterList", "parameters": [], - "src": "721:0:23" + "src": "743:0:20" }, - "scope": 2721, - "src": "667:298:23", + "scope": 2716, + "src": "689:298:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2655, + "id": 2650, "nodeType": "Block", - "src": "1193:181:23", + "src": "1215:181:20", "statements": [ { "expression": { @@ -940,19 +940,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2637, + "id": 2632, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2635, + "id": 2630, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2629, - "src": "1211:7:23", + "referencedDeclaration": 2624, + "src": "1233:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -963,14 +963,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2636, + "id": 2631, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1222:1:23", + "src": "1244:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -978,7 +978,7 @@ }, "value": "0" }, - "src": "1211:12:23", + "src": "1233:12:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -987,14 +987,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2638, + "id": 2633, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1225:26:23", + "src": "1247:26:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", @@ -1014,21 +1014,21 @@ "typeString": "literal_string \"Invalid account provided\"" } ], - "id": 2634, + "id": 2629, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1203:7:23", + "referencedDeclaration": 4495, + "src": "1225:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2639, + "id": 2634, "isConstant": false, "isLValue": false, "isPure": false, @@ -1036,15 +1036,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1203:49:23", + "src": "1225:49:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2640, + "id": 2635, "nodeType": "ExpressionStatement", - "src": "1203:49:23" + "src": "1225:49:20" }, { "expression": { @@ -1052,7 +1052,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2645, + "id": 2640, "isConstant": false, "isLValue": false, "isPure": false, @@ -1060,31 +1060,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1270:23:23", + "src": "1292:23:20", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2642, + "id": 2637, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2585, - "src": "1271:13:23", + "referencedDeclaration": 2580, + "src": "1293:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2644, + "id": 2639, "indexExpression": { "argumentTypes": null, - "id": 2643, + "id": 2638, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2629, - "src": "1285:7:23", + "referencedDeclaration": 2624, + "src": "1307:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1095,7 +1095,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1271:22:23", + "src": "1293:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1109,14 +1109,14 @@ { "argumentTypes": null, "hexValue": "4163636f756e7420697320616c72656164792077686974656c6973746564", - "id": 2646, + "id": 2641, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1295:32:23", + "src": "1317:32:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_42f0c01c0b06bc5e652009543318e4fd67cfba114702c7f55fad1ff0c3c82ad8", @@ -1136,21 +1136,21 @@ "typeString": "literal_string \"Account is already whitelisted\"" } ], - "id": 2641, + "id": 2636, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1262:7:23", + "referencedDeclaration": 4495, + "src": "1284:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2647, + "id": 2642, "isConstant": false, "isLValue": false, "isPure": false, @@ -1158,20 +1158,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1262:66:23", + "src": "1284:66:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2648, + "id": 2643, "nodeType": "ExpressionStatement", - "src": "1262:66:23" + "src": "1284:66:20" }, { "expression": { "argumentTypes": null, - "id": 2653, + "id": 2648, "isConstant": false, "isLValue": false, "isPure": false, @@ -1180,26 +1180,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2649, + "id": 2644, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2585, - "src": "1338:13:23", + "referencedDeclaration": 2580, + "src": "1360:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2651, + "id": 2646, "indexExpression": { "argumentTypes": null, - "id": 2650, + "id": 2645, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2629, - "src": "1352:7:23", + "referencedDeclaration": 2624, + "src": "1374:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1210,7 +1210,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1338:22:23", + "src": "1360:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1221,14 +1221,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2652, + "id": 2647, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1363:4:23", + "src": "1385:4:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1236,57 +1236,57 @@ }, "value": "true" }, - "src": "1338:29:23", + "src": "1360:29:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2654, + "id": 2649, "nodeType": "ExpressionStatement", - "src": "1338:29:23" + "src": "1360:29:20" } ] }, "documentation": "@dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 2656, + "id": 2651, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2632, + "id": 2627, "modifierName": { "argumentTypes": null, - "id": 2631, + "id": 2626, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 892, - "src": "1178:10:23", + "referencedDeclaration": 914, + "src": "1200:10:20", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1178:10:23" + "src": "1200:10:20" } ], "name": "addToWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 2630, + "id": 2625, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2629, + "id": 2624, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2656, - "src": "1138:15:23", + "scope": 2651, + "src": "1160:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1294,10 +1294,10 @@ "typeString": "address" }, "typeName": { - "id": 2628, + "id": 2623, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1138:7:23", + "src": "1160:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1307,26 +1307,26 @@ "visibility": "internal" } ], - "src": "1137:17:23" + "src": "1159:17:20" }, "payable": false, "returnParameters": { - "id": 2633, + "id": 2628, "nodeType": "ParameterList", "parameters": [], - "src": "1193:0:23" + "src": "1215:0:20" }, - "scope": 2721, - "src": "1114:260:23", + "scope": 2716, + "src": "1136:260:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2676, + "id": 2671, "nodeType": "Block", - "src": "1612:118:23", + "src": "1634:118:20", "statements": [ { "expression": { @@ -1336,26 +1336,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2664, + "id": 2659, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2585, - "src": "1630:13:23", + "referencedDeclaration": 2580, + "src": "1652:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2666, + "id": 2661, "indexExpression": { "argumentTypes": null, - "id": 2665, + "id": 2660, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2658, - "src": "1644:7:23", + "referencedDeclaration": 2653, + "src": "1666:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1366,7 +1366,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1630:22:23", + "src": "1652:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1375,14 +1375,14 @@ { "argumentTypes": null, "hexValue": "4163636f756e74206973206e6f742077686974656c6973746564", - "id": 2667, + "id": 2662, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1654:28:23", + "src": "1676:28:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2f56605dd36b69a55672cdc762e8d3959c002a474a30a6774bba38bb65f718e1", @@ -1402,21 +1402,21 @@ "typeString": "literal_string \"Account is not whitelisted\"" } ], - "id": 2663, + "id": 2658, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1622:7:23", + "referencedDeclaration": 4495, + "src": "1644:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2668, + "id": 2663, "isConstant": false, "isLValue": false, "isPure": false, @@ -1424,20 +1424,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1622:61:23", + "src": "1644:61:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2669, + "id": 2664, "nodeType": "ExpressionStatement", - "src": "1622:61:23" + "src": "1644:61:20" }, { "expression": { "argumentTypes": null, - "id": 2674, + "id": 2669, "isConstant": false, "isLValue": false, "isPure": false, @@ -1446,26 +1446,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2670, + "id": 2665, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2585, - "src": "1693:13:23", + "referencedDeclaration": 2580, + "src": "1715:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2672, + "id": 2667, "indexExpression": { "argumentTypes": null, - "id": 2671, + "id": 2666, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2658, - "src": "1707:7:23", + "referencedDeclaration": 2653, + "src": "1729:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1476,7 +1476,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1693:22:23", + "src": "1715:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1487,14 +1487,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2673, + "id": 2668, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1718:5:23", + "src": "1740:5:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1502,57 +1502,57 @@ }, "value": "false" }, - "src": "1693:30:23", + "src": "1715:30:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2675, + "id": 2670, "nodeType": "ExpressionStatement", - "src": "1693:30:23" + "src": "1715:30:20" } ] }, "documentation": "@dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 2677, + "id": 2672, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2661, + "id": 2656, "modifierName": { "argumentTypes": null, - "id": 2660, + "id": 2655, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 892, - "src": "1597:10:23", + "referencedDeclaration": 914, + "src": "1619:10:20", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1597:10:23" + "src": "1619:10:20" } ], "name": "removeFromWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 2659, + "id": 2654, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2658, + "id": 2653, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2677, - "src": "1557:15:23", + "scope": 2672, + "src": "1579:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1560,10 +1560,10 @@ "typeString": "address" }, "typeName": { - "id": 2657, + "id": 2652, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1557:7:23", + "src": "1579:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1573,26 +1573,26 @@ "visibility": "internal" } ], - "src": "1556:17:23" + "src": "1578:17:20" }, "payable": false, "returnParameters": { - "id": 2662, + "id": 2657, "nodeType": "ParameterList", "parameters": [], - "src": "1612:0:23" + "src": "1634:0:20" }, - "scope": 2721, - "src": "1528:202:23", + "scope": 2716, + "src": "1550:202:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2719, + "id": 2714, "nodeType": "Block", - "src": "2093:393:23", + "src": "2115:393:20", "statements": [ { "expression": { @@ -1605,18 +1605,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2693, + "id": 2688, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2230:3:23", + "referencedDeclaration": 4491, + "src": "2252:3:20", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2694, + "id": 2689, "isConstant": false, "isLValue": false, "isPure": false, @@ -1624,7 +1624,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2230:10:23", + "src": "2252:10:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1643,14 +1643,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2690, + "id": 2685, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "2213:7:23", + "referencedDeclaration": 900, + "src": "2235:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } } @@ -1658,22 +1658,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } ], - "id": 2689, + "id": 2684, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1588, - "src": "2200:12:23", + "referencedDeclaration": 1652, + "src": "2222:12:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1588_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2691, + "id": 2686, "isConstant": false, "isLValue": false, "isPure": false, @@ -1681,27 +1681,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2200:21:23", + "src": "2222:21:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1588", + "typeIdentifier": "t_contract$_OwnerManager_$1652", "typeString": "contract OwnerManager" } }, - "id": 2692, + "id": 2687, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1538, - "src": "2200:29:23", + "referencedDeclaration": 1602, + "src": "2222:29:20", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 2695, + "id": 2690, "isConstant": false, "isLValue": false, "isPure": false, @@ -1709,7 +1709,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2200:41:23", + "src": "2222:41:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1718,14 +1718,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 2696, + "id": 2691, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2243:39:23", + "src": "2265:39:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", @@ -1745,21 +1745,21 @@ "typeString": "literal_string \"Method can only be called by an owner\"" } ], - "id": 2688, + "id": 2683, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2192:7:23", + "referencedDeclaration": 4495, + "src": "2214:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2697, + "id": 2692, "isConstant": false, "isLValue": false, "isPure": false, @@ -1767,15 +1767,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2192:91:23", + "src": "2214:91:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2698, + "id": 2693, "nodeType": "ExpressionStatement", - "src": "2192:91:23" + "src": "2214:91:20" }, { "expression": { @@ -1785,26 +1785,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2700, + "id": 2695, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2585, - "src": "2301:13:23", + "referencedDeclaration": 2580, + "src": "2323:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2702, + "id": 2697, "indexExpression": { "argumentTypes": null, - "id": 2701, + "id": 2696, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2679, - "src": "2315:2:23", + "referencedDeclaration": 2674, + "src": "2337:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1815,7 +1815,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2301:17:23", + "src": "2323:17:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1824,14 +1824,14 @@ { "argumentTypes": null, "hexValue": "546172676574206163636f756e74206973206e6f742077686974656c6973746564", - "id": 2703, + "id": 2698, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2320:35:23", + "src": "2342:35:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9a154d7dadc01125e34b410c8bdd8fd2546fbbac90b22b0d92787a072cf6fc42", @@ -1851,21 +1851,21 @@ "typeString": "literal_string \"Target account is not whitelisted\"" } ], - "id": 2699, + "id": 2694, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2293:7:23", + "referencedDeclaration": 4495, + "src": "2315:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2704, + "id": 2699, "isConstant": false, "isLValue": false, "isPure": false, @@ -1873,15 +1873,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2293:63:23", + "src": "2315:63:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2705, + "id": 2700, "nodeType": "ExpressionStatement", - "src": "2293:63:23" + "src": "2315:63:20" }, { "expression": { @@ -1892,12 +1892,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2709, + "id": 2704, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2679, - "src": "2408:2:23", + "referencedDeclaration": 2674, + "src": "2430:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1905,12 +1905,12 @@ }, { "argumentTypes": null, - "id": 2710, + "id": 2705, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2681, - "src": "2412:5:23", + "referencedDeclaration": 2676, + "src": "2434:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1918,12 +1918,12 @@ }, { "argumentTypes": null, - "id": 2711, + "id": 2706, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "2419:4:23", + "referencedDeclaration": 2678, + "src": "2441:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1935,32 +1935,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2712, + "id": 2707, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "2425:4:23", + "referencedDeclaration": 1659, + "src": "2447:4:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", "typeString": "type(contract Enum)" } }, - "id": 2713, + "id": 2708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "2425:14:23", + "referencedDeclaration": 1658, + "src": "2447:14:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2714, + "id": 2709, "isConstant": false, "isLValue": false, "isPure": true, @@ -1968,9 +1968,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2425:19:23", + "src": "2447:19:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } } @@ -1990,38 +1990,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2707, + "id": 2702, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "2374:7:23", + "referencedDeclaration": 900, + "src": "2396:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, - "id": 2708, + "id": 2703, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1106, - "src": "2374:33:23", + "referencedDeclaration": 1138, + "src": "2396:33:20", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2715, + "id": 2710, "isConstant": false, "isLValue": false, "isPure": false, @@ -2029,7 +2029,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2374:71:23", + "src": "2396:71:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2038,14 +2038,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 2716, + "id": 2711, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2447:31:23", + "src": "2469:31:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", @@ -2065,21 +2065,21 @@ "typeString": "literal_string \"Could not execute transaction\"" } ], - "id": 2706, + "id": 2701, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2366:7:23", + "referencedDeclaration": 4495, + "src": "2388:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2717, + "id": 2712, "isConstant": false, "isLValue": false, "isPure": false, @@ -2087,20 +2087,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2366:113:23", + "src": "2388:113:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2718, + "id": 2713, "nodeType": "ExpressionStatement", - "src": "2366:113:23" + "src": "2388:113:20" } ] }, "documentation": "@dev Returns if Safe transaction is to a whitelisted destination.\n @param to Whitelisted destination address.\n @param value Not checked.\n @param data Not checked.\n @return Returns if transaction can be executed.", - "id": 2720, + "id": 2715, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2108,16 +2108,16 @@ "name": "executeWhitelisted", "nodeType": "FunctionDefinition", "parameters": { - "id": 2684, + "id": 2679, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2679, + "id": 2674, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "2012:10:23", + "scope": 2715, + "src": "2034:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2125,10 +2125,10 @@ "typeString": "address" }, "typeName": { - "id": 2678, + "id": 2673, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2012:7:23", + "src": "2034:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2139,11 +2139,11 @@ }, { "constant": false, - "id": 2681, + "id": 2676, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "2024:13:23", + "scope": 2715, + "src": "2046:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2151,10 +2151,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2680, + "id": 2675, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2024:7:23", + "src": "2046:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2165,11 +2165,11 @@ }, { "constant": false, - "id": 2683, + "id": 2678, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "2039:10:23", + "scope": 2715, + "src": "2061:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2177,10 +2177,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2682, + "id": 2677, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2039:5:23", + "src": "2061:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2190,20 +2190,20 @@ "visibility": "internal" } ], - "src": "2011:39:23" + "src": "2033:39:20" }, "payable": false, "returnParameters": { - "id": 2687, + "id": 2682, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2686, + "id": 2681, "name": "", "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "2083:4:23", + "scope": 2715, + "src": "2105:4:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2211,10 +2211,10 @@ "typeString": "bool" }, "typeName": { - "id": 2685, + "id": 2680, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2083:4:23", + "src": "2105:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2224,82 +2224,82 @@ "visibility": "internal" } ], - "src": "2082:6:23" + "src": "2104:6:20" }, - "scope": 2721, - "src": "1984:502:23", + "scope": 2716, + "src": "2006:502:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2722, - "src": "289:2199:23" + "scope": 2717, + "src": "311:2199:20" } ], - "src": "0:2489:23" + "src": "0:2511:20" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", "exportedSymbols": { "WhitelistModule": [ - 2721 + 2716 ] }, - "id": 2722, + "id": 2717, "nodeType": "SourceUnit", "nodes": [ { - "id": 2569, + "id": 2564, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:23" + "src": "0:23:20" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", - "file": "../Enum.sol", - "id": 2570, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", + "file": "../base/Module.sol", + "id": 2565, "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 31, - "src": "24:21:23", + "scope": 2717, + "sourceUnit": 936, + "src": "24:28:20", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", - "file": "../Module.sol", - "id": 2571, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", + "file": "../base/ModuleManager.sol", + "id": 2566, "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 914, - "src": "46:23:23", + "scope": 2717, + "sourceUnit": 1213, + "src": "53:35:20", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", - "file": "../ModuleManager.sol", - "id": 2572, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", + "file": "../base/OwnerManager.sol", + "id": 2567, "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 1181, - "src": "70:30:23", + "scope": 2717, + "sourceUnit": 1653, + "src": "89:34:20", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", - "file": "../OwnerManager.sol", - "id": 2573, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", + "file": "../common/Enum.sol", + "id": 2568, "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 1589, - "src": "101:29:23", + "scope": 2717, + "sourceUnit": 1660, + "src": "124:28:20", "symbolAliases": [], "unitAlias": "" }, @@ -2309,46 +2309,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2574, + "id": 2569, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 913, - "src": "317:6:23", + "referencedDeclaration": 935, + "src": "339:6:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$913", + "typeIdentifier": "t_contract$_Module_$935", "typeString": "contract Module" } }, - "id": 2575, + "id": 2570, "nodeType": "InheritanceSpecifier", - "src": "317:6:23" + "src": "339:6:20" } ], "contractDependencies": [ - 813, - 913, - 1765 + 935, + 1693, + 1735 ], "contractKind": "contract", "documentation": "@title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n @author Stefan George - ", "fullyImplemented": true, - "id": 2721, + "id": 2716, "linearizedBaseContracts": [ - 2721, - 913, - 813, - 1765 + 2716, + 935, + 1693, + 1735 ], "name": "WhitelistModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2578, + "id": 2573, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2721, - "src": "331:48:23", + "scope": 2716, + "src": "353:48:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2356,10 +2356,10 @@ "typeString": "string" }, "typeName": { - "id": 2576, + "id": 2571, "name": "string", "nodeType": "ElementaryTypeName", - "src": "331:6:23", + "src": "353:6:20", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2368,14 +2368,14 @@ "value": { "argumentTypes": null, "hexValue": "57686974656c697374204d6f64756c65", - "id": 2577, + "id": 2572, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "361:18:23", + "src": "383:18:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_84d69d03a7c747e8eefe7cc2b9e87b566cfc57cc90e4ed88f03f9c9780b7d4e6", @@ -2387,11 +2387,11 @@ }, { "constant": true, - "id": 2581, + "id": 2576, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2721, - "src": "385:40:23", + "scope": 2716, + "src": "407:40:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2399,10 +2399,10 @@ "typeString": "string" }, "typeName": { - "id": 2579, + "id": 2574, "name": "string", "nodeType": "ElementaryTypeName", - "src": "385:6:23", + "src": "407:6:20", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2410,31 +2410,31 @@ }, "value": { "argumentTypes": null, - "hexValue": "302e302e31", - "id": 2580, + "hexValue": "302e302e32", + "id": 2575, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "418:7:23", + "src": "440:7:20", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" + "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", + "typeString": "literal_string \"0.0.2\"" }, - "value": "0.0.1" + "value": "0.0.2" }, "visibility": "public" }, { "constant": false, - "id": 2585, + "id": 2580, "name": "isWhitelisted", "nodeType": "VariableDeclaration", - "scope": 2721, - "src": "498:46:23", + "scope": 2716, + "src": "520:46:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2442,28 +2442,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 2584, + "id": 2579, "keyType": { - "id": 2582, + "id": 2577, "name": "address", "nodeType": "ElementaryTypeName", - "src": "507:7:23", + "src": "529:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "498:25:23", + "src": "520:25:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2583, + "id": 2578, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "518:4:23", + "src": "540:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2475,9 +2475,9 @@ }, { "body": { - "id": 2626, + "id": 2621, "nodeType": "Block", - "src": "721:244:23", + "src": "743:244:20", "statements": [ { "expression": { @@ -2485,18 +2485,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2591, + "id": 2586, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 912, - "src": "731:10:23", + "referencedDeclaration": 934, + "src": "753:10:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2592, + "id": 2587, "isConstant": false, "isLValue": false, "isPure": false, @@ -2504,34 +2504,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "731:12:23", + "src": "753:12:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2593, + "id": 2588, "nodeType": "ExpressionStatement", - "src": "731:12:23" + "src": "753:12:20" }, { "body": { - "id": 2624, + "id": 2619, "nodeType": "Block", - "src": "799:160:23", + "src": "821:160:20", "statements": [ { "assignments": [ - 2606 + 2601 ], "declarations": [ { "constant": false, - "id": 2606, + "id": 2601, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2627, - "src": "813:15:23", + "scope": 2622, + "src": "835:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2539,10 +2539,10 @@ "typeString": "address" }, "typeName": { - "id": 2605, + "id": 2600, "name": "address", "nodeType": "ElementaryTypeName", - "src": "813:7:23", + "src": "835:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2552,31 +2552,31 @@ "visibility": "internal" } ], - "id": 2610, + "id": 2605, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2607, + "id": 2602, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2588, - "src": "831:8:23", + "referencedDeclaration": 2583, + "src": "853:8:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2609, + "id": 2604, "indexExpression": { "argumentTypes": null, - "id": 2608, + "id": 2603, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2595, - "src": "840:1:23", + "referencedDeclaration": 2590, + "src": "862:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2587,14 +2587,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "831:11:23", + "src": "853:11:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "813:29:23" + "src": "835:29:20" }, { "expression": { @@ -2606,19 +2606,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2614, + "id": 2609, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2612, + "id": 2607, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2606, - "src": "864:7:23", + "referencedDeclaration": 2601, + "src": "886:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2629,14 +2629,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2613, + "id": 2608, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "875:1:23", + "src": "897:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2644,7 +2644,7 @@ }, "value": "0" }, - "src": "864:12:23", + "src": "886:12:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2653,14 +2653,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2615, + "id": 2610, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "878:26:23", + "src": "900:26:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", @@ -2680,21 +2680,21 @@ "typeString": "literal_string \"Invalid account provided\"" } ], - "id": 2611, + "id": 2606, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "856:7:23", + "referencedDeclaration": 4495, + "src": "878:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2616, + "id": 2611, "isConstant": false, "isLValue": false, "isPure": false, @@ -2702,20 +2702,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "856:49:23", + "src": "878:49:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2617, + "id": 2612, "nodeType": "ExpressionStatement", - "src": "856:49:23" + "src": "878:49:20" }, { "expression": { "argumentTypes": null, - "id": 2622, + "id": 2617, "isConstant": false, "isLValue": false, "isPure": false, @@ -2724,26 +2724,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2618, + "id": 2613, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2585, - "src": "919:13:23", + "referencedDeclaration": 2580, + "src": "941:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2620, + "id": 2615, "indexExpression": { "argumentTypes": null, - "id": 2619, + "id": 2614, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2606, - "src": "933:7:23", + "referencedDeclaration": 2601, + "src": "955:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2754,7 +2754,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "919:22:23", + "src": "941:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2765,14 +2765,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2621, + "id": 2616, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "944:4:23", + "src": "966:4:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2780,15 +2780,15 @@ }, "value": "true" }, - "src": "919:29:23", + "src": "941:29:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2623, + "id": 2618, "nodeType": "ExpressionStatement", - "src": "919:29:23" + "src": "941:29:20" } ] }, @@ -2798,19 +2798,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2601, + "id": 2596, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2598, + "id": 2593, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2595, - "src": "773:1:23", + "referencedDeclaration": 2590, + "src": "795:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2822,18 +2822,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2599, + "id": 2594, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2588, - "src": "777:8:23", + "referencedDeclaration": 2583, + "src": "799:8:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2600, + "id": 2595, "isConstant": false, "isLValue": false, "isPure": false, @@ -2841,31 +2841,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "777:15:23", + "src": "799:15:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "773:19:23", + "src": "795:19:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2625, + "id": 2620, "initializationExpression": { "assignments": [ - 2595 + 2590 ], "declarations": [ { "constant": false, - "id": 2595, + "id": 2590, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2627, - "src": "758:9:23", + "scope": 2622, + "src": "780:9:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2873,10 +2873,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2594, + "id": 2589, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "758:7:23", + "src": "780:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2886,18 +2886,18 @@ "visibility": "internal" } ], - "id": 2597, + "id": 2592, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2596, + "id": 2591, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "770:1:23", + "src": "792:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2906,12 +2906,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "758:13:23" + "src": "780:13:20" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2603, + "id": 2598, "isConstant": false, "isLValue": false, "isPure": false, @@ -2919,15 +2919,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "794:3:23", + "src": "816:3:20", "subExpression": { "argumentTypes": null, - "id": 2602, + "id": 2597, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2595, - "src": "794:1:23", + "referencedDeclaration": 2590, + "src": "816:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2938,17 +2938,17 @@ "typeString": "uint256" } }, - "id": 2604, + "id": 2599, "nodeType": "ExpressionStatement", - "src": "794:3:23" + "src": "816:3:20" }, "nodeType": "ForStatement", - "src": "753:206:23" + "src": "775:206:20" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param accounts List of whitelisted accounts.", - "id": 2627, + "id": 2622, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2956,16 +2956,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2589, + "id": 2584, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2588, + "id": 2583, "name": "accounts", "nodeType": "VariableDeclaration", - "scope": 2627, - "src": "682:18:23", + "scope": 2622, + "src": "704:18:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2974,19 +2974,19 @@ }, "typeName": { "baseType": { - "id": 2586, + "id": 2581, "name": "address", "nodeType": "ElementaryTypeName", - "src": "682:7:23", + "src": "704:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2587, + "id": 2582, "length": null, "nodeType": "ArrayTypeName", - "src": "682:9:23", + "src": "704:9:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -2996,26 +2996,26 @@ "visibility": "internal" } ], - "src": "681:20:23" + "src": "703:20:20" }, "payable": false, "returnParameters": { - "id": 2590, + "id": 2585, "nodeType": "ParameterList", "parameters": [], - "src": "721:0:23" + "src": "743:0:20" }, - "scope": 2721, - "src": "667:298:23", + "scope": 2716, + "src": "689:298:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2655, + "id": 2650, "nodeType": "Block", - "src": "1193:181:23", + "src": "1215:181:20", "statements": [ { "expression": { @@ -3027,19 +3027,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2637, + "id": 2632, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2635, + "id": 2630, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2629, - "src": "1211:7:23", + "referencedDeclaration": 2624, + "src": "1233:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3050,14 +3050,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2636, + "id": 2631, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1222:1:23", + "src": "1244:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3065,7 +3065,7 @@ }, "value": "0" }, - "src": "1211:12:23", + "src": "1233:12:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3074,14 +3074,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2638, + "id": 2633, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1225:26:23", + "src": "1247:26:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", @@ -3101,21 +3101,21 @@ "typeString": "literal_string \"Invalid account provided\"" } ], - "id": 2634, + "id": 2629, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1203:7:23", + "referencedDeclaration": 4495, + "src": "1225:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2639, + "id": 2634, "isConstant": false, "isLValue": false, "isPure": false, @@ -3123,15 +3123,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1203:49:23", + "src": "1225:49:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2640, + "id": 2635, "nodeType": "ExpressionStatement", - "src": "1203:49:23" + "src": "1225:49:20" }, { "expression": { @@ -3139,7 +3139,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2645, + "id": 2640, "isConstant": false, "isLValue": false, "isPure": false, @@ -3147,31 +3147,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1270:23:23", + "src": "1292:23:20", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2642, + "id": 2637, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2585, - "src": "1271:13:23", + "referencedDeclaration": 2580, + "src": "1293:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2644, + "id": 2639, "indexExpression": { "argumentTypes": null, - "id": 2643, + "id": 2638, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2629, - "src": "1285:7:23", + "referencedDeclaration": 2624, + "src": "1307:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3182,7 +3182,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1271:22:23", + "src": "1293:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3196,14 +3196,14 @@ { "argumentTypes": null, "hexValue": "4163636f756e7420697320616c72656164792077686974656c6973746564", - "id": 2646, + "id": 2641, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1295:32:23", + "src": "1317:32:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_42f0c01c0b06bc5e652009543318e4fd67cfba114702c7f55fad1ff0c3c82ad8", @@ -3223,21 +3223,21 @@ "typeString": "literal_string \"Account is already whitelisted\"" } ], - "id": 2641, + "id": 2636, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1262:7:23", + "referencedDeclaration": 4495, + "src": "1284:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2647, + "id": 2642, "isConstant": false, "isLValue": false, "isPure": false, @@ -3245,20 +3245,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1262:66:23", + "src": "1284:66:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2648, + "id": 2643, "nodeType": "ExpressionStatement", - "src": "1262:66:23" + "src": "1284:66:20" }, { "expression": { "argumentTypes": null, - "id": 2653, + "id": 2648, "isConstant": false, "isLValue": false, "isPure": false, @@ -3267,26 +3267,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2649, + "id": 2644, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2585, - "src": "1338:13:23", + "referencedDeclaration": 2580, + "src": "1360:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2651, + "id": 2646, "indexExpression": { "argumentTypes": null, - "id": 2650, + "id": 2645, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2629, - "src": "1352:7:23", + "referencedDeclaration": 2624, + "src": "1374:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3297,7 +3297,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1338:22:23", + "src": "1360:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3308,14 +3308,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2652, + "id": 2647, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1363:4:23", + "src": "1385:4:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3323,57 +3323,57 @@ }, "value": "true" }, - "src": "1338:29:23", + "src": "1360:29:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2654, + "id": 2649, "nodeType": "ExpressionStatement", - "src": "1338:29:23" + "src": "1360:29:20" } ] }, "documentation": "@dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 2656, + "id": 2651, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2632, + "id": 2627, "modifierName": { "argumentTypes": null, - "id": 2631, + "id": 2626, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 892, - "src": "1178:10:23", + "referencedDeclaration": 914, + "src": "1200:10:20", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1178:10:23" + "src": "1200:10:20" } ], "name": "addToWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 2630, + "id": 2625, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2629, + "id": 2624, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2656, - "src": "1138:15:23", + "scope": 2651, + "src": "1160:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3381,10 +3381,10 @@ "typeString": "address" }, "typeName": { - "id": 2628, + "id": 2623, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1138:7:23", + "src": "1160:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3394,26 +3394,26 @@ "visibility": "internal" } ], - "src": "1137:17:23" + "src": "1159:17:20" }, "payable": false, "returnParameters": { - "id": 2633, + "id": 2628, "nodeType": "ParameterList", "parameters": [], - "src": "1193:0:23" + "src": "1215:0:20" }, - "scope": 2721, - "src": "1114:260:23", + "scope": 2716, + "src": "1136:260:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2676, + "id": 2671, "nodeType": "Block", - "src": "1612:118:23", + "src": "1634:118:20", "statements": [ { "expression": { @@ -3423,26 +3423,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2664, + "id": 2659, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2585, - "src": "1630:13:23", + "referencedDeclaration": 2580, + "src": "1652:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2666, + "id": 2661, "indexExpression": { "argumentTypes": null, - "id": 2665, + "id": 2660, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2658, - "src": "1644:7:23", + "referencedDeclaration": 2653, + "src": "1666:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3453,7 +3453,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1630:22:23", + "src": "1652:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3462,14 +3462,14 @@ { "argumentTypes": null, "hexValue": "4163636f756e74206973206e6f742077686974656c6973746564", - "id": 2667, + "id": 2662, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1654:28:23", + "src": "1676:28:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2f56605dd36b69a55672cdc762e8d3959c002a474a30a6774bba38bb65f718e1", @@ -3489,21 +3489,21 @@ "typeString": "literal_string \"Account is not whitelisted\"" } ], - "id": 2663, + "id": 2658, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "1622:7:23", + "referencedDeclaration": 4495, + "src": "1644:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2668, + "id": 2663, "isConstant": false, "isLValue": false, "isPure": false, @@ -3511,20 +3511,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1622:61:23", + "src": "1644:61:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2669, + "id": 2664, "nodeType": "ExpressionStatement", - "src": "1622:61:23" + "src": "1644:61:20" }, { "expression": { "argumentTypes": null, - "id": 2674, + "id": 2669, "isConstant": false, "isLValue": false, "isPure": false, @@ -3533,26 +3533,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2670, + "id": 2665, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2585, - "src": "1693:13:23", + "referencedDeclaration": 2580, + "src": "1715:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2672, + "id": 2667, "indexExpression": { "argumentTypes": null, - "id": 2671, + "id": 2666, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2658, - "src": "1707:7:23", + "referencedDeclaration": 2653, + "src": "1729:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3563,7 +3563,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1693:22:23", + "src": "1715:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3574,14 +3574,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2673, + "id": 2668, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1718:5:23", + "src": "1740:5:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3589,57 +3589,57 @@ }, "value": "false" }, - "src": "1693:30:23", + "src": "1715:30:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2675, + "id": 2670, "nodeType": "ExpressionStatement", - "src": "1693:30:23" + "src": "1715:30:20" } ] }, "documentation": "@dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 2677, + "id": 2672, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2661, + "id": 2656, "modifierName": { "argumentTypes": null, - "id": 2660, + "id": 2655, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 892, - "src": "1597:10:23", + "referencedDeclaration": 914, + "src": "1619:10:20", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1597:10:23" + "src": "1619:10:20" } ], "name": "removeFromWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 2659, + "id": 2654, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2658, + "id": 2653, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2677, - "src": "1557:15:23", + "scope": 2672, + "src": "1579:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3647,10 +3647,10 @@ "typeString": "address" }, "typeName": { - "id": 2657, + "id": 2652, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1557:7:23", + "src": "1579:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3660,26 +3660,26 @@ "visibility": "internal" } ], - "src": "1556:17:23" + "src": "1578:17:20" }, "payable": false, "returnParameters": { - "id": 2662, + "id": 2657, "nodeType": "ParameterList", "parameters": [], - "src": "1612:0:23" + "src": "1634:0:20" }, - "scope": 2721, - "src": "1528:202:23", + "scope": 2716, + "src": "1550:202:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2719, + "id": 2714, "nodeType": "Block", - "src": "2093:393:23", + "src": "2115:393:20", "statements": [ { "expression": { @@ -3692,18 +3692,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2693, + "id": 2688, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2230:3:23", + "referencedDeclaration": 4491, + "src": "2252:3:20", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2694, + "id": 2689, "isConstant": false, "isLValue": false, "isPure": false, @@ -3711,7 +3711,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2230:10:23", + "src": "2252:10:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3730,14 +3730,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2690, + "id": 2685, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "2213:7:23", + "referencedDeclaration": 900, + "src": "2235:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } } @@ -3745,22 +3745,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } ], - "id": 2689, + "id": 2684, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1588, - "src": "2200:12:23", + "referencedDeclaration": 1652, + "src": "2222:12:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1588_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2691, + "id": 2686, "isConstant": false, "isLValue": false, "isPure": false, @@ -3768,27 +3768,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2200:21:23", + "src": "2222:21:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1588", + "typeIdentifier": "t_contract$_OwnerManager_$1652", "typeString": "contract OwnerManager" } }, - "id": 2692, + "id": 2687, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1538, - "src": "2200:29:23", + "referencedDeclaration": 1602, + "src": "2222:29:20", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 2695, + "id": 2690, "isConstant": false, "isLValue": false, "isPure": false, @@ -3796,7 +3796,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2200:41:23", + "src": "2222:41:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3805,14 +3805,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 2696, + "id": 2691, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2243:39:23", + "src": "2265:39:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", @@ -3832,21 +3832,21 @@ "typeString": "literal_string \"Method can only be called by an owner\"" } ], - "id": 2688, + "id": 2683, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2192:7:23", + "referencedDeclaration": 4495, + "src": "2214:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2697, + "id": 2692, "isConstant": false, "isLValue": false, "isPure": false, @@ -3854,15 +3854,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2192:91:23", + "src": "2214:91:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2698, + "id": 2693, "nodeType": "ExpressionStatement", - "src": "2192:91:23" + "src": "2214:91:20" }, { "expression": { @@ -3872,26 +3872,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2700, + "id": 2695, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2585, - "src": "2301:13:23", + "referencedDeclaration": 2580, + "src": "2323:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2702, + "id": 2697, "indexExpression": { "argumentTypes": null, - "id": 2701, + "id": 2696, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2679, - "src": "2315:2:23", + "referencedDeclaration": 2674, + "src": "2337:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3902,7 +3902,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2301:17:23", + "src": "2323:17:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3911,14 +3911,14 @@ { "argumentTypes": null, "hexValue": "546172676574206163636f756e74206973206e6f742077686974656c6973746564", - "id": 2703, + "id": 2698, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2320:35:23", + "src": "2342:35:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9a154d7dadc01125e34b410c8bdd8fd2546fbbac90b22b0d92787a072cf6fc42", @@ -3938,21 +3938,21 @@ "typeString": "literal_string \"Target account is not whitelisted\"" } ], - "id": 2699, + "id": 2694, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2293:7:23", + "referencedDeclaration": 4495, + "src": "2315:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2704, + "id": 2699, "isConstant": false, "isLValue": false, "isPure": false, @@ -3960,15 +3960,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2293:63:23", + "src": "2315:63:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2705, + "id": 2700, "nodeType": "ExpressionStatement", - "src": "2293:63:23" + "src": "2315:63:20" }, { "expression": { @@ -3979,12 +3979,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2709, + "id": 2704, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2679, - "src": "2408:2:23", + "referencedDeclaration": 2674, + "src": "2430:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3992,12 +3992,12 @@ }, { "argumentTypes": null, - "id": 2710, + "id": 2705, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2681, - "src": "2412:5:23", + "referencedDeclaration": 2676, + "src": "2434:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4005,12 +4005,12 @@ }, { "argumentTypes": null, - "id": 2711, + "id": 2706, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "2419:4:23", + "referencedDeclaration": 2678, + "src": "2441:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -4022,32 +4022,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2712, + "id": 2707, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "2425:4:23", + "referencedDeclaration": 1659, + "src": "2447:4:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", "typeString": "type(contract Enum)" } }, - "id": 2713, + "id": 2708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "2425:14:23", + "referencedDeclaration": 1658, + "src": "2447:14:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2714, + "id": 2709, "isConstant": false, "isLValue": false, "isPure": true, @@ -4055,9 +4055,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2425:19:23", + "src": "2447:19:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } } @@ -4077,38 +4077,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$29", + "typeIdentifier": "t_enum$_Operation_$1658", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2707, + "id": 2702, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "2374:7:23", + "referencedDeclaration": 900, + "src": "2396:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1180", + "typeIdentifier": "t_contract$_ModuleManager_$1212", "typeString": "contract ModuleManager" } }, - "id": 2708, + "id": 2703, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1106, - "src": "2374:33:23", + "referencedDeclaration": 1138, + "src": "2396:33:20", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2715, + "id": 2710, "isConstant": false, "isLValue": false, "isPure": false, @@ -4116,7 +4116,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2374:71:23", + "src": "2396:71:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4125,14 +4125,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 2716, + "id": 2711, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2447:31:23", + "src": "2469:31:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", @@ -4152,21 +4152,21 @@ "typeString": "literal_string \"Could not execute transaction\"" } ], - "id": 2706, + "id": 2701, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3832, - "src": "2366:7:23", + "referencedDeclaration": 4495, + "src": "2388:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2717, + "id": 2712, "isConstant": false, "isLValue": false, "isPure": false, @@ -4174,20 +4174,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2366:113:23", + "src": "2388:113:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2718, + "id": 2713, "nodeType": "ExpressionStatement", - "src": "2366:113:23" + "src": "2388:113:20" } ] }, "documentation": "@dev Returns if Safe transaction is to a whitelisted destination.\n @param to Whitelisted destination address.\n @param value Not checked.\n @param data Not checked.\n @return Returns if transaction can be executed.", - "id": 2720, + "id": 2715, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4195,16 +4195,16 @@ "name": "executeWhitelisted", "nodeType": "FunctionDefinition", "parameters": { - "id": 2684, + "id": 2679, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2679, + "id": 2674, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "2012:10:23", + "scope": 2715, + "src": "2034:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4212,10 +4212,10 @@ "typeString": "address" }, "typeName": { - "id": 2678, + "id": 2673, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2012:7:23", + "src": "2034:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4226,11 +4226,11 @@ }, { "constant": false, - "id": 2681, + "id": 2676, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "2024:13:23", + "scope": 2715, + "src": "2046:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4238,10 +4238,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2680, + "id": 2675, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2024:7:23", + "src": "2046:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4252,11 +4252,11 @@ }, { "constant": false, - "id": 2683, + "id": 2678, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "2039:10:23", + "scope": 2715, + "src": "2061:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4264,10 +4264,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2682, + "id": 2677, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2039:5:23", + "src": "2061:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4277,20 +4277,20 @@ "visibility": "internal" } ], - "src": "2011:39:23" + "src": "2033:39:20" }, "payable": false, "returnParameters": { - "id": 2687, + "id": 2682, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2686, + "id": 2681, "name": "", "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "2083:4:23", + "scope": 2715, + "src": "2105:4:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4298,10 +4298,10 @@ "typeString": "bool" }, "typeName": { - "id": 2685, + "id": 2680, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2083:4:23", + "src": "2105:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4311,20 +4311,20 @@ "visibility": "internal" } ], - "src": "2082:6:23" + "src": "2104:6:20" }, - "scope": 2721, - "src": "1984:502:23", + "scope": 2716, + "src": "2006:502:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2722, - "src": "289:2199:23" + "scope": 2717, + "src": "311:2199:20" } ], - "src": "0:2489:23" + "src": "0:2511:20" }, "compiler": { "name": "solc", @@ -4334,16 +4334,10 @@ "4": { "events": {}, "links": {}, - "address": "0x8ad61b7616eaa89066ff012d6e34253505b0c0a5", - "transactionHash": "0xade771942b2ce080e3208fc5c8e7cfb4535e67ccdacb570da0d8a834b17a938e" - }, - "1534750848541": { - "events": {}, - "links": {}, - "address": "0xa586074fa4fe3e546a132a16238abe37951d41fe", - "transactionHash": "0xa309cde77233a411b572709611a45ed78458814bb2fdfa3c9f6f3695630a53f8" + "address": "0xd69a54c43860d32799c36f5e336fd2dfe801ffbd", + "transactionHash": "0xec78c65020b41ece88415fa8da2aabfd403a63cad0689a9ad1ef37ae606e079f" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:50:29.686Z" + "updatedAt": "2018-09-26T08:56:03.708Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/ApproveAndCallFallBack.json b/safe-contracts/build/contracts/test/ApproveAndCallFallBack.json index ec9c987a..c944830f 100644 --- a/safe-contracts/build/contracts/test/ApproveAndCallFallBack.json +++ b/safe-contracts/build/contracts/test/ApproveAndCallFallBack.json @@ -38,26 +38,26 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ - 3437 + 3591 ], "ERC20Interface": [ - 3425 + 3579 ], "Owned": [ - 3506 + 3660 ], "SafeMath": [ - 3358 + 3512 ], "TestToken": [ - 3813 + 3967 ] }, - "id": 3814, + "id": 3968, "nodeType": "SourceUnit", "nodes": [ { - "id": 3263, + "id": 3417, "literals": [ "solidity", "^", @@ -65,7 +65,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:24:26" }, { "baseContracts": [], @@ -73,35 +73,35 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 3358, + "id": 3512, "linearizedBaseContracts": [ - 3358 + 3512 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3284, + "id": 3438, "nodeType": "Block", - "src": "719:51:25", + "src": "719:51:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3276, + "id": 3430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3272, + "id": 3426, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "729:1:25", + "referencedDeclaration": 3424, + "src": "729:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -115,19 +115,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3275, + "id": 3429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3273, + "id": 3427, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "733:1:25", + "referencedDeclaration": 3419, + "src": "733:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -137,32 +137,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 3274, + "id": 3428, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3267, - "src": "737:1:25", + "referencedDeclaration": 3421, + "src": "737:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:5:25", + "src": "733:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "729:9:25", + "src": "729:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3277, + "id": 3431, "nodeType": "ExpressionStatement", - "src": "729:9:25" + "src": "729:9:26" }, { "expression": { @@ -174,19 +174,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3281, + "id": 3435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3279, + "id": 3433, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "756:1:25", + "referencedDeclaration": 3424, + "src": "756:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -196,18 +196,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 3280, + "id": 3434, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "761:1:25", + "referencedDeclaration": 3419, + "src": "761:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "756:6:25", + "src": "756:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -221,21 +221,21 @@ "typeString": "bool" } ], - "id": 3278, + "id": 3432, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "748:7:25", + "referencedDeclaration": 4494, + "src": "748:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3282, + "id": 3436, "isConstant": false, "isLValue": false, "isPure": false, @@ -243,20 +243,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:15:25", + "src": "748:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3283, + "id": 3437, "nodeType": "ExpressionStatement", - "src": "748:15:25" + "src": "748:15:26" } ] }, "documentation": null, - "id": 3285, + "id": 3439, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -264,16 +264,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 3268, + "id": 3422, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3265, + "id": 3419, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "672:6:25", + "scope": 3439, + "src": "672:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -281,10 +281,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3264, + "id": 3418, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "672:4:25", + "src": "672:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -295,11 +295,11 @@ }, { "constant": false, - "id": 3267, + "id": 3421, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "680:6:25", + "scope": 3439, + "src": "680:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -307,10 +307,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3266, + "id": 3420, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "680:4:25", + "src": "680:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -320,20 +320,20 @@ "visibility": "internal" } ], - "src": "671:16:25" + "src": "671:16:26" }, "payable": false, "returnParameters": { - "id": 3271, + "id": 3425, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3270, + "id": 3424, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "711:6:25", + "scope": 3439, + "src": "711:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -341,10 +341,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3269, + "id": 3423, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "711:4:25", + "src": "711:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -354,19 +354,19 @@ "visibility": "internal" } ], - "src": "710:8:25" + "src": "710:8:26" }, - "scope": 3358, - "src": "659:111:25", + "scope": 3512, + "src": "659:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3306, + "id": 3460, "nodeType": "Block", - "src": "835:51:25", + "src": "835:51:26", "statements": [ { "expression": { @@ -378,19 +378,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3297, + "id": 3451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3295, + "id": 3449, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "853:1:25", + "referencedDeclaration": 3443, + "src": "853:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -400,18 +400,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 3296, + "id": 3450, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "858:1:25", + "referencedDeclaration": 3441, + "src": "858:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "853:6:25", + "src": "853:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -425,21 +425,21 @@ "typeString": "bool" } ], - "id": 3294, + "id": 3448, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "845:7:25", + "referencedDeclaration": 4494, + "src": "845:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3298, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, @@ -447,32 +447,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:15:25", + "src": "845:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3299, + "id": 3453, "nodeType": "ExpressionStatement", - "src": "845:15:25" + "src": "845:15:26" }, { "expression": { "argumentTypes": null, - "id": 3304, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3300, + "id": 3454, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3292, - "src": "870:1:25", + "referencedDeclaration": 3446, + "src": "870:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -486,19 +486,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3303, + "id": 3457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3301, + "id": 3455, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "874:1:25", + "referencedDeclaration": 3441, + "src": "874:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -508,37 +508,37 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 3302, + "id": 3456, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "878:1:25", + "referencedDeclaration": 3443, + "src": "878:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "874:5:25", + "src": "874:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "870:9:25", + "src": "870:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3305, + "id": 3459, "nodeType": "ExpressionStatement", - "src": "870:9:25" + "src": "870:9:26" } ] }, "documentation": null, - "id": 3307, + "id": 3461, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -546,16 +546,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 3290, + "id": 3444, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3287, + "id": 3441, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "788:6:25", + "scope": 3461, + "src": "788:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -563,10 +563,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3286, + "id": 3440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "788:4:25", + "src": "788:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -577,11 +577,11 @@ }, { "constant": false, - "id": 3289, + "id": 3443, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "796:6:25", + "scope": 3461, + "src": "796:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -589,10 +589,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3288, + "id": 3442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "796:4:25", + "src": "796:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -602,20 +602,20 @@ "visibility": "internal" } ], - "src": "787:16:25" + "src": "787:16:26" }, "payable": false, "returnParameters": { - "id": 3293, + "id": 3447, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3292, + "id": 3446, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "827:6:25", + "scope": 3461, + "src": "827:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -623,10 +623,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3291, + "id": 3445, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:25", + "src": "827:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -636,36 +636,36 @@ "visibility": "internal" } ], - "src": "826:8:25" + "src": "826:8:26" }, - "scope": 3358, - "src": "775:111:25", + "scope": 3512, + "src": "775:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3334, + "id": 3488, "nodeType": "Block", - "src": "951:65:25", + "src": "951:65:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3320, + "id": 3474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3316, + "id": 3470, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "961:1:25", + "referencedDeclaration": 3468, + "src": "961:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -679,19 +679,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3319, + "id": 3473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3317, + "id": 3471, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "965:1:25", + "referencedDeclaration": 3463, + "src": "965:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -701,32 +701,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 3318, + "id": 3472, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "969:1:25", + "referencedDeclaration": 3465, + "src": "969:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "965:5:25", + "src": "965:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "961:9:25", + "src": "961:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3321, + "id": 3475, "nodeType": "ExpressionStatement", - "src": "961:9:25" + "src": "961:9:26" }, { "expression": { @@ -738,7 +738,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3331, + "id": 3485, "isConstant": false, "isLValue": false, "isPure": false, @@ -749,19 +749,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3325, + "id": 3479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3323, + "id": 3477, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "988:1:25", + "referencedDeclaration": 3463, + "src": "988:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -772,14 +772,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3324, + "id": 3478, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "993:1:25", + "src": "993:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -787,7 +787,7 @@ }, "value": "0" }, - "src": "988:6:25", + "src": "988:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -801,7 +801,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3330, + "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, @@ -812,19 +812,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3328, + "id": 3482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3326, + "id": 3480, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "998:1:25", + "referencedDeclaration": 3468, + "src": "998:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -834,18 +834,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3327, + "id": 3481, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "1002:1:25", + "referencedDeclaration": 3463, + "src": "1002:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:5:25", + "src": "998:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -855,24 +855,24 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3329, + "id": 3483, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "1007:1:25", + "referencedDeclaration": 3465, + "src": "1007:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:25", + "src": "998:10:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "988:20:25", + "src": "988:20:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -886,21 +886,21 @@ "typeString": "bool" } ], - "id": 3322, + "id": 3476, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "980:7:25", + "referencedDeclaration": 4494, + "src": "980:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3332, + "id": 3486, "isConstant": false, "isLValue": false, "isPure": false, @@ -908,20 +908,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "980:29:25", + "src": "980:29:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3333, + "id": 3487, "nodeType": "ExpressionStatement", - "src": "980:29:25" + "src": "980:29:26" } ] }, "documentation": null, - "id": 3335, + "id": 3489, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -929,16 +929,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 3312, + "id": 3466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3309, + "id": 3463, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "904:6:25", + "scope": 3489, + "src": "904:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -946,10 +946,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3308, + "id": 3462, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "904:4:25", + "src": "904:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -960,11 +960,11 @@ }, { "constant": false, - "id": 3311, + "id": 3465, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "912:6:25", + "scope": 3489, + "src": "912:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -972,10 +972,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3310, + "id": 3464, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "912:4:25", + "src": "912:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -985,20 +985,20 @@ "visibility": "internal" } ], - "src": "903:16:25" + "src": "903:16:26" }, "payable": false, "returnParameters": { - "id": 3315, + "id": 3469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3314, + "id": 3468, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "943:6:25", + "scope": 3489, + "src": "943:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1006,10 +1006,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3313, + "id": 3467, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "943:4:25", + "src": "943:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1019,19 +1019,19 @@ "visibility": "internal" } ], - "src": "942:8:25" + "src": "942:8:26" }, - "scope": 3358, - "src": "891:125:25", + "scope": 3512, + "src": "891:125:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3356, + "id": 3510, "nodeType": "Block", - "src": "1081:50:25", + "src": "1081:50:26", "statements": [ { "expression": { @@ -1043,19 +1043,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3347, + "id": 3501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3345, + "id": 3499, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1099:1:25", + "referencedDeclaration": 3493, + "src": "1099:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1066,14 +1066,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3346, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:1:25", + "src": "1103:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1081,7 +1081,7 @@ }, "value": "0" }, - "src": "1099:5:25", + "src": "1099:5:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1095,21 +1095,21 @@ "typeString": "bool" } ], - "id": 3344, + "id": 3498, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "1091:7:25", + "referencedDeclaration": 4494, + "src": "1091:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3348, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, @@ -1117,32 +1117,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:14:25", + "src": "1091:14:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3349, + "id": 3503, "nodeType": "ExpressionStatement", - "src": "1091:14:25" + "src": "1091:14:26" }, { "expression": { "argumentTypes": null, - "id": 3354, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3350, + "id": 3504, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3342, - "src": "1115:1:25", + "referencedDeclaration": 3496, + "src": "1115:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1156,19 +1156,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3353, + "id": 3507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3351, + "id": 3505, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "1119:1:25", + "referencedDeclaration": 3491, + "src": "1119:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1178,37 +1178,37 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3352, + "id": 3506, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1123:1:25", + "referencedDeclaration": 3493, + "src": "1123:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:5:25", + "src": "1119:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1115:9:25", + "src": "1115:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3355, + "id": 3509, "nodeType": "ExpressionStatement", - "src": "1115:9:25" + "src": "1115:9:26" } ] }, "documentation": null, - "id": 3357, + "id": 3511, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1216,16 +1216,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 3340, + "id": 3494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3337, + "id": 3491, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1034:6:25", + "scope": 3511, + "src": "1034:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1233,10 +1233,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3336, + "id": 3490, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1034:4:25", + "src": "1034:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1247,11 +1247,11 @@ }, { "constant": false, - "id": 3339, + "id": 3493, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1042:6:25", + "scope": 3511, + "src": "1042:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1259,10 +1259,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3338, + "id": 3492, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1042:4:25", + "src": "1042:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1272,20 +1272,20 @@ "visibility": "internal" } ], - "src": "1033:16:25" + "src": "1033:16:26" }, "payable": false, "returnParameters": { - "id": 3343, + "id": 3497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3342, + "id": 3496, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1073:6:25", + "scope": 3511, + "src": "1073:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1293,10 +1293,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3341, + "id": 3495, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1073:4:25", + "src": "1073:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1306,17 +1306,17 @@ "visibility": "internal" } ], - "src": "1072:8:25" + "src": "1072:8:26" }, - "scope": 3358, - "src": "1021:110:25", + "scope": 3512, + "src": "1021:110:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 3814, - "src": "636:497:25" + "scope": 3968, + "src": "636:497:26" }, { "baseContracts": [], @@ -1324,9 +1324,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3425, + "id": 3579, "linearizedBaseContracts": [ - 3425 + 3579 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", @@ -1334,7 +1334,7 @@ { "body": null, "documentation": null, - "id": 3363, + "id": 3517, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1342,23 +1342,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3359, + "id": 3513, "nodeType": "ParameterList", "parameters": [], - "src": "1445:2:25" + "src": "1445:2:26" }, "payable": false, "returnParameters": { - "id": 3362, + "id": 3516, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3361, + "id": 3515, "name": "", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "1473:4:25", + "scope": 3517, + "src": "1473:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1366,10 +1366,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3360, + "id": 3514, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1473:4:25", + "src": "1473:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1379,10 +1379,10 @@ "visibility": "internal" } ], - "src": "1472:6:25" + "src": "1472:6:26" }, - "scope": 3425, - "src": "1425:54:25", + "scope": 3579, + "src": "1425:54:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1390,7 +1390,7 @@ { "body": null, "documentation": null, - "id": 3370, + "id": 3524, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1398,16 +1398,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3366, + "id": 3520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3365, + "id": 3519, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1503:18:25", + "scope": 3524, + "src": "1503:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1415,10 +1415,10 @@ "typeString": "address" }, "typeName": { - "id": 3364, + "id": 3518, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1503:7:25", + "src": "1503:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1428,20 +1428,20 @@ "visibility": "internal" } ], - "src": "1502:20:25" + "src": "1502:20:26" }, "payable": false, "returnParameters": { - "id": 3369, + "id": 3523, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3368, + "id": 3522, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1548:12:25", + "scope": 3524, + "src": "1548:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1449,10 +1449,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3367, + "id": 3521, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:25", + "src": "1548:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1462,10 +1462,10 @@ "visibility": "internal" } ], - "src": "1547:14:25" + "src": "1547:14:26" }, - "scope": 3425, - "src": "1484:78:25", + "scope": 3579, + "src": "1484:78:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1473,7 +1473,7 @@ { "body": null, "documentation": null, - "id": 3379, + "id": 3533, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1481,16 +1481,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3375, + "id": 3529, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3372, + "id": 3526, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1586:18:25", + "scope": 3533, + "src": "1586:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1498,10 +1498,10 @@ "typeString": "address" }, "typeName": { - "id": 3371, + "id": 3525, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:25", + "src": "1586:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1512,11 +1512,11 @@ }, { "constant": false, - "id": 3374, + "id": 3528, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1606:15:25", + "scope": 3533, + "src": "1606:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1524,10 +1524,10 @@ "typeString": "address" }, "typeName": { - "id": 3373, + "id": 3527, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1606:7:25", + "src": "1606:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1537,20 +1537,20 @@ "visibility": "internal" } ], - "src": "1585:37:25" + "src": "1585:37:26" }, "payable": false, "returnParameters": { - "id": 3378, + "id": 3532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3377, + "id": 3531, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1648:14:25", + "scope": 3533, + "src": "1648:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1558,10 +1558,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3376, + "id": 3530, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1648:4:25", + "src": "1648:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1571,10 +1571,10 @@ "visibility": "internal" } ], - "src": "1647:16:25" + "src": "1647:16:26" }, - "scope": 3425, - "src": "1567:97:25", + "scope": 3579, + "src": "1567:97:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1582,7 +1582,7 @@ { "body": null, "documentation": null, - "id": 3388, + "id": 3542, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1590,16 +1590,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3384, + "id": 3538, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3381, + "id": 3535, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1687:10:25", + "scope": 3542, + "src": "1687:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1607,10 +1607,10 @@ "typeString": "address" }, "typeName": { - "id": 3380, + "id": 3534, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:25", + "src": "1687:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1621,11 +1621,11 @@ }, { "constant": false, - "id": 3383, + "id": 3537, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1699:11:25", + "scope": 3542, + "src": "1699:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1633,10 +1633,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3382, + "id": 3536, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:25", + "src": "1699:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1646,20 +1646,20 @@ "visibility": "internal" } ], - "src": "1686:25:25" + "src": "1686:25:26" }, "payable": false, "returnParameters": { - "id": 3387, + "id": 3541, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3386, + "id": 3540, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1728:12:25", + "scope": 3542, + "src": "1728:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1667,10 +1667,10 @@ "typeString": "bool" }, "typeName": { - "id": 3385, + "id": 3539, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1728:4:25", + "src": "1728:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1680,10 +1680,10 @@ "visibility": "internal" } ], - "src": "1727:14:25" + "src": "1727:14:26" }, - "scope": 3425, - "src": "1669:73:25", + "scope": 3579, + "src": "1669:73:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1691,7 +1691,7 @@ { "body": null, "documentation": null, - "id": 3397, + "id": 3551, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1699,16 +1699,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3393, + "id": 3547, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3390, + "id": 3544, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1764:15:25", + "scope": 3551, + "src": "1764:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1716,10 +1716,10 @@ "typeString": "address" }, "typeName": { - "id": 3389, + "id": 3543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:25", + "src": "1764:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1730,11 +1730,11 @@ }, { "constant": false, - "id": 3392, + "id": 3546, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1781:11:25", + "scope": 3551, + "src": "1781:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1742,10 +1742,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3391, + "id": 3545, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:25", + "src": "1781:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1755,20 +1755,20 @@ "visibility": "internal" } ], - "src": "1763:30:25" + "src": "1763:30:26" }, "payable": false, "returnParameters": { - "id": 3396, + "id": 3550, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3395, + "id": 3549, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1810:12:25", + "scope": 3551, + "src": "1810:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1776,10 +1776,10 @@ "typeString": "bool" }, "typeName": { - "id": 3394, + "id": 3548, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1810:4:25", + "src": "1810:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1789,10 +1789,10 @@ "visibility": "internal" } ], - "src": "1809:14:25" + "src": "1809:14:26" }, - "scope": 3425, - "src": "1747:77:25", + "scope": 3579, + "src": "1747:77:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1800,7 +1800,7 @@ { "body": null, "documentation": null, - "id": 3408, + "id": 3562, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1808,16 +1808,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3404, + "id": 3558, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3399, + "id": 3553, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1851:12:25", + "scope": 3562, + "src": "1851:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1825,10 +1825,10 @@ "typeString": "address" }, "typeName": { - "id": 3398, + "id": 3552, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1851:7:25", + "src": "1851:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1839,11 +1839,11 @@ }, { "constant": false, - "id": 3401, + "id": 3555, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1865:10:25", + "scope": 3562, + "src": "1865:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1851,10 +1851,10 @@ "typeString": "address" }, "typeName": { - "id": 3400, + "id": 3554, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:25", + "src": "1865:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1865,11 +1865,11 @@ }, { "constant": false, - "id": 3403, + "id": 3557, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1877:11:25", + "scope": 3562, + "src": "1877:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1877,10 +1877,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3402, + "id": 3556, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1877:4:25", + "src": "1877:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1890,20 +1890,20 @@ "visibility": "internal" } ], - "src": "1850:39:25" + "src": "1850:39:26" }, "payable": false, "returnParameters": { - "id": 3407, + "id": 3561, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3406, + "id": 3560, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1906:12:25", + "scope": 3562, + "src": "1906:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1911,10 +1911,10 @@ "typeString": "bool" }, "typeName": { - "id": 3405, + "id": 3559, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1906:4:25", + "src": "1906:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1924,10 +1924,10 @@ "visibility": "internal" } ], - "src": "1905:14:25" + "src": "1905:14:26" }, - "scope": 3425, - "src": "1829:91:25", + "scope": 3579, + "src": "1829:91:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1935,21 +1935,21 @@ { "anonymous": false, "documentation": null, - "id": 3416, + "id": 3570, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 3415, + "id": 3569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3410, + "id": 3564, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1941:20:25", + "scope": 3570, + "src": "1941:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1957,10 +1957,10 @@ "typeString": "address" }, "typeName": { - "id": 3409, + "id": 3563, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1941:7:25", + "src": "1941:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1971,12 +1971,12 @@ }, { "constant": false, - "id": 3412, + "id": 3566, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1963:18:25", + "scope": 3570, + "src": "1963:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1984,10 +1984,10 @@ "typeString": "address" }, "typeName": { - "id": 3411, + "id": 3565, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1963:7:25", + "src": "1963:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1998,12 +1998,12 @@ }, { "constant": false, - "id": 3414, + "id": 3568, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1983:11:25", + "scope": 3570, + "src": "1983:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2011,10 +2011,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3413, + "id": 3567, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:25", + "src": "1983:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2024,28 +2024,28 @@ "visibility": "internal" } ], - "src": "1940:55:25" + "src": "1940:55:26" }, - "src": "1926:70:25" + "src": "1926:70:26" }, { "anonymous": false, "documentation": null, - "id": 3424, + "id": 3578, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 3423, + "id": 3577, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3418, + "id": 3572, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2016:26:25", + "scope": 3578, + "src": "2016:26:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2053,10 +2053,10 @@ "typeString": "address" }, "typeName": { - "id": 3417, + "id": 3571, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2016:7:25", + "src": "2016:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2067,12 +2067,12 @@ }, { "constant": false, - "id": 3420, + "id": 3574, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2044:23:25", + "scope": 3578, + "src": "2044:23:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2080,10 +2080,10 @@ "typeString": "address" }, "typeName": { - "id": 3419, + "id": 3573, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2044:7:25", + "src": "2044:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2094,12 +2094,12 @@ }, { "constant": false, - "id": 3422, + "id": 3576, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2069:11:25", + "scope": 3578, + "src": "2069:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2107,10 +2107,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3421, + "id": 3575, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2069:4:25", + "src": "2069:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2120,13 +2120,13 @@ "visibility": "internal" } ], - "src": "2015:66:25" + "src": "2015:66:26" }, - "src": "2001:81:25" + "src": "2001:81:26" } ], - "scope": 3814, - "src": "1395:689:25" + "scope": 3968, + "src": "1395:689:26" }, { "baseContracts": [], @@ -2134,9 +2134,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3437, + "id": 3591, "linearizedBaseContracts": [ - 3437 + 3591 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", @@ -2144,7 +2144,7 @@ { "body": null, "documentation": null, - "id": 3436, + "id": 3590, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -2152,16 +2152,16 @@ "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 3434, + "id": 3588, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3427, + "id": 3581, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2416:12:25", + "scope": 3590, + "src": "2416:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2169,10 +2169,10 @@ "typeString": "address" }, "typeName": { - "id": 3426, + "id": 3580, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2416:7:25", + "src": "2416:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2183,11 +2183,11 @@ }, { "constant": false, - "id": 3429, + "id": 3583, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2430:14:25", + "scope": 3590, + "src": "2430:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2195,10 +2195,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3428, + "id": 3582, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2430:7:25", + "src": "2430:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2209,11 +2209,11 @@ }, { "constant": false, - "id": 3431, + "id": 3585, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2446:13:25", + "scope": 3590, + "src": "2446:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2221,10 +2221,10 @@ "typeString": "address" }, "typeName": { - "id": 3430, + "id": 3584, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2446:7:25", + "src": "2446:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2235,11 +2235,11 @@ }, { "constant": false, - "id": 3433, + "id": 3587, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2461:10:25", + "scope": 3590, + "src": "2461:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2247,10 +2247,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3432, + "id": 3586, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2461:5:25", + "src": "2461:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2260,24 +2260,24 @@ "visibility": "internal" } ], - "src": "2415:57:25" + "src": "2415:57:26" }, "payable": false, "returnParameters": { - "id": 3435, + "id": 3589, "nodeType": "ParameterList", "parameters": [], - "src": "2479:0:25" + "src": "2479:0:26" }, - "scope": 3437, - "src": "2391:89:25", + "scope": 3591, + "src": "2391:89:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2353:129:25" + "scope": 3968, + "src": "2353:129:26" }, { "baseContracts": [], @@ -2285,20 +2285,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3506, + "id": 3660, "linearizedBaseContracts": [ - 3506 + 3660 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 3439, + "id": 3593, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2684:20:25", + "scope": 3660, + "src": "2684:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2306,10 +2306,10 @@ "typeString": "address" }, "typeName": { - "id": 3438, + "id": 3592, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2684:7:25", + "src": "2684:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2320,11 +2320,11 @@ }, { "constant": false, - "id": 3441, + "id": 3595, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2710:23:25", + "scope": 3660, + "src": "2710:23:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2332,10 +2332,10 @@ "typeString": "address" }, "typeName": { - "id": 3440, + "id": 3594, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2710:7:25", + "src": "2710:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2347,21 +2347,21 @@ { "anonymous": false, "documentation": null, - "id": 3447, + "id": 3601, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 3446, + "id": 3600, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3443, + "id": 3597, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2767:21:25", + "scope": 3601, + "src": "2767:21:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2369,10 +2369,10 @@ "typeString": "address" }, "typeName": { - "id": 3442, + "id": 3596, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2767:7:25", + "src": "2767:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2383,12 +2383,12 @@ }, { "constant": false, - "id": 3445, + "id": 3599, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2790:19:25", + "scope": 3601, + "src": "2790:19:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2396,10 +2396,10 @@ "typeString": "address" }, "typeName": { - "id": 3444, + "id": 3598, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2790:7:25", + "src": "2790:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2409,32 +2409,32 @@ "visibility": "internal" } ], - "src": "2766:44:25" + "src": "2766:44:26" }, - "src": "2740:71:25" + "src": "2740:71:26" }, { "body": { - "id": 3455, + "id": 3609, "nodeType": "Block", - "src": "2838:35:25", + "src": "2838:35:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3453, + "id": 3607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3450, + "id": 3604, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2848:5:25", + "referencedDeclaration": 3593, + "src": "2848:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2446,18 +2446,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3451, + "id": 3605, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2856:3:25", + "referencedDeclaration": 4491, + "src": "2856:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3452, + "id": 3606, "isConstant": false, "isLValue": false, "isPure": false, @@ -2465,26 +2465,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2856:10:25", + "src": "2856:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2848:18:25", + "src": "2848:18:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3454, + "id": 3608, "nodeType": "ExpressionStatement", - "src": "2848:18:25" + "src": "2848:18:26" } ] }, "documentation": null, - "id": 3456, + "id": 3610, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -2492,29 +2492,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3448, + "id": 3602, "nodeType": "ParameterList", "parameters": [], - "src": "2828:2:25" + "src": "2828:2:26" }, "payable": false, "returnParameters": { - "id": 3449, + "id": 3603, "nodeType": "ParameterList", "parameters": [], - "src": "2838:0:25" + "src": "2838:0:26" }, - "scope": 3506, - "src": "2817:56:25", + "scope": 3660, + "src": "2817:56:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3466, + "id": 3620, "nodeType": "Block", - "src": "2898:56:25", + "src": "2898:56:26", "statements": [ { "expression": { @@ -2526,7 +2526,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3462, + "id": 3616, "isConstant": false, "isLValue": false, "isPure": false, @@ -2535,18 +2535,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3459, + "id": 3613, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2916:3:25", + "referencedDeclaration": 4491, + "src": "2916:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3460, + "id": 3614, "isConstant": false, "isLValue": false, "isPure": false, @@ -2554,7 +2554,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2916:10:25", + "src": "2916:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2564,18 +2564,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3461, + "id": 3615, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2930:5:25", + "referencedDeclaration": 3593, + "src": "2930:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2916:19:25", + "src": "2916:19:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2589,21 +2589,21 @@ "typeString": "bool" } ], - "id": 3458, + "id": 3612, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "2908:7:25", + "referencedDeclaration": 4494, + "src": "2908:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3463, + "id": 3617, "isConstant": false, "isLValue": false, "isPure": false, @@ -2611,58 +2611,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:28:25", + "src": "2908:28:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3464, + "id": 3618, "nodeType": "ExpressionStatement", - "src": "2908:28:25" + "src": "2908:28:26" }, { - "id": 3465, + "id": 3619, "nodeType": "PlaceholderStatement", - "src": "2946:1:25" + "src": "2946:1:26" } ] }, "documentation": null, - "id": 3467, + "id": 3621, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 3457, + "id": 3611, "nodeType": "ParameterList", "parameters": [], - "src": "2898:0:25" + "src": "2898:0:26" }, - "src": "2879:75:25", + "src": "2879:75:26", "visibility": "internal" }, { "body": { - "id": 3478, + "id": 3632, "nodeType": "Block", - "src": "3023:37:25", + "src": "3023:37:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3476, + "id": 3630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3474, + "id": 3628, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3033:8:25", + "referencedDeclaration": 3595, + "src": "3033:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2672,68 +2672,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3475, + "id": 3629, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3469, - "src": "3044:9:25", + "referencedDeclaration": 3623, + "src": "3044:9:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3033:20:25", + "src": "3033:20:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3477, + "id": 3631, "nodeType": "ExpressionStatement", - "src": "3033:20:25" + "src": "3033:20:26" } ] }, "documentation": null, - "id": 3479, + "id": 3633, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3472, + "id": 3626, "modifierName": { "argumentTypes": null, - "id": 3471, + "id": 3625, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3013:9:25", + "referencedDeclaration": 3621, + "src": "3013:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3013:9:25" + "src": "3013:9:26" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3470, + "id": 3624, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3469, + "id": 3623, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 3479, - "src": "2987:17:25", + "scope": 3633, + "src": "2987:17:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2741,10 +2741,10 @@ "typeString": "address" }, "typeName": { - "id": 3468, + "id": 3622, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2987:7:25", + "src": "2987:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2754,26 +2754,26 @@ "visibility": "internal" } ], - "src": "2986:19:25" + "src": "2986:19:26" }, "payable": false, "returnParameters": { - "id": 3473, + "id": 3627, "nodeType": "ParameterList", "parameters": [], - "src": "3023:0:25" + "src": "3023:0:26" }, - "scope": 3506, - "src": "2960:100:25", + "scope": 3660, + "src": "2960:100:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3504, + "id": 3658, "nodeType": "Block", - "src": "3099:157:25", + "src": "3099:157:26", "statements": [ { "expression": { @@ -2785,7 +2785,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3486, + "id": 3640, "isConstant": false, "isLValue": false, "isPure": false, @@ -2794,18 +2794,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3483, + "id": 3637, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "3117:3:25", + "referencedDeclaration": 4491, + "src": "3117:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3484, + "id": 3638, "isConstant": false, "isLValue": false, "isPure": false, @@ -2813,7 +2813,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3117:10:25", + "src": "3117:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2823,18 +2823,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3485, + "id": 3639, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3131:8:25", + "referencedDeclaration": 3595, + "src": "3131:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3117:22:25", + "src": "3117:22:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2848,21 +2848,21 @@ "typeString": "bool" } ], - "id": 3482, + "id": 3636, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "3109:7:25", + "referencedDeclaration": 4494, + "src": "3109:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3487, + "id": 3641, "isConstant": false, "isLValue": false, "isPure": false, @@ -2870,15 +2870,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3109:31:25", + "src": "3109:31:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3488, + "id": 3642, "nodeType": "ExpressionStatement", - "src": "3109:31:25" + "src": "3109:31:26" }, { "eventCall": { @@ -2886,12 +2886,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3490, + "id": 3644, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3176:5:25", + "referencedDeclaration": 3593, + "src": "3176:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2899,12 +2899,12 @@ }, { "argumentTypes": null, - "id": 3491, + "id": 3645, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3183:8:25", + "referencedDeclaration": 3595, + "src": "3183:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2922,18 +2922,18 @@ "typeString": "address" } ], - "id": 3489, + "id": 3643, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3447, - "src": "3155:20:25", + "referencedDeclaration": 3601, + "src": "3155:20:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 3492, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, @@ -2941,32 +2941,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3155:37:25", + "src": "3155:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3493, + "id": 3647, "nodeType": "EmitStatement", - "src": "3150:42:25" + "src": "3150:42:26" }, { "expression": { "argumentTypes": null, - "id": 3496, + "id": 3650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3494, + "id": 3648, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3202:5:25", + "referencedDeclaration": 3593, + "src": "3202:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2976,43 +2976,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3495, + "id": 3649, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3210:8:25", + "referencedDeclaration": 3595, + "src": "3210:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3202:16:25", + "src": "3202:16:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3497, + "id": 3651, "nodeType": "ExpressionStatement", - "src": "3202:16:25" + "src": "3202:16:26" }, { "expression": { "argumentTypes": null, - "id": 3502, + "id": 3656, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3498, + "id": 3652, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3228:8:25", + "referencedDeclaration": 3595, + "src": "3228:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3026,14 +3026,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3500, + "id": 3654, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3247:1:25", + "src": "3247:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3049,20 +3049,20 @@ "typeString": "int_const 0" } ], - "id": 3499, + "id": 3653, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:25", + "src": "3239:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3501, + "id": 3655, "isConstant": false, "isLValue": false, "isPure": true, @@ -3070,26 +3070,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3239:10:25", + "src": "3239:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3228:21:25", + "src": "3228:21:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3503, + "id": 3657, "nodeType": "ExpressionStatement", - "src": "3228:21:25" + "src": "3228:21:26" } ] }, "documentation": null, - "id": 3505, + "id": 3659, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3097,27 +3097,27 @@ "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3480, + "id": 3634, "nodeType": "ParameterList", "parameters": [], - "src": "3089:2:25" + "src": "3089:2:26" }, "payable": false, "returnParameters": { - "id": 3481, + "id": 3635, "nodeType": "ParameterList", "parameters": [], - "src": "3099:0:25" + "src": "3099:0:26" }, - "scope": 3506, - "src": "3065:191:25", + "scope": 3660, + "src": "3065:191:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2663:595:25" + "scope": 3968, + "src": "2663:595:26" }, { "baseContracts": [ @@ -3125,76 +3125,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3507, + "id": 3661, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3425, - "src": "3528:14:25", + "referencedDeclaration": 3579, + "src": "3528:14:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3508, + "id": 3662, "nodeType": "InheritanceSpecifier", - "src": "3528:14:25" + "src": "3528:14:26" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3509, + "id": 3663, "name": "Owned", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3506, - "src": "3544:5:25", + "referencedDeclaration": 3660, + "src": "3544:5:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3506", + "typeIdentifier": "t_contract$_Owned_$3660", "typeString": "contract Owned" } }, - "id": 3510, + "id": 3664, "nodeType": "InheritanceSpecifier", - "src": "3544:5:25" + "src": "3544:5:26" } ], "contractDependencies": [ - 3425, - 3506 + 3579, + 3660 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3813, + "id": 3967, "linearizedBaseContracts": [ - 3813, - 3506, - 3425 + 3967, + 3660, + 3579 ], "name": "TestToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3513, + "id": 3667, "libraryName": { "contractScope": null, - "id": 3511, + "id": 3665, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3358, - "src": "3562:8:25", + "referencedDeclaration": 3512, + "src": "3562:8:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeIdentifier": "t_contract$_SafeMath_$3512", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3556:24:25", + "src": "3556:24:26", "typeName": { - "id": 3512, + "id": 3666, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3575:4:25", + "src": "3575:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3203,11 +3203,11 @@ }, { "constant": false, - "id": 3515, + "id": 3669, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3586:20:25", + "scope": 3967, + "src": "3586:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3215,10 +3215,10 @@ "typeString": "string" }, "typeName": { - "id": 3514, + "id": 3668, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3586:6:25", + "src": "3586:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3229,11 +3229,11 @@ }, { "constant": false, - "id": 3517, + "id": 3671, "name": "name", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3612:19:25", + "scope": 3967, + "src": "3612:19:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3241,10 +3241,10 @@ "typeString": "string" }, "typeName": { - "id": 3516, + "id": 3670, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3612:6:25", + "src": "3612:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3255,11 +3255,11 @@ }, { "constant": false, - "id": 3519, + "id": 3673, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3637:21:25", + "scope": 3967, + "src": "3637:21:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3267,10 +3267,10 @@ "typeString": "uint8" }, "typeName": { - "id": 3518, + "id": 3672, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3637:5:25", + "src": "3637:5:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3281,11 +3281,11 @@ }, { "constant": false, - "id": 3521, + "id": 3675, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3664:17:25", + "scope": 3967, + "src": "3664:17:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3293,10 +3293,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3520, + "id": 3674, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3664:4:25", + "src": "3664:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3307,11 +3307,11 @@ }, { "constant": false, - "id": 3525, + "id": 3679, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3688:33:25", + "scope": 3967, + "src": "3688:33:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3319,28 +3319,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 3524, + "id": 3678, "keyType": { - "id": 3522, + "id": 3676, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3696:7:25", + "src": "3696:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3688:24:25", + "src": "3688:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3523, + "id": 3677, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3707:4:25", + "src": "3707:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3352,11 +3352,11 @@ }, { "constant": false, - "id": 3531, + "id": 3685, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3727:52:25", + "scope": 3967, + "src": "3727:52:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3364,46 +3364,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 3530, + "id": 3684, "keyType": { - "id": 3526, + "id": 3680, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3735:7:25", + "src": "3735:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3727:44:25", + "src": "3727:44:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 3529, + "id": 3683, "keyType": { - "id": 3527, + "id": 3681, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3754:7:25", + "src": "3754:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3746:24:25", + "src": "3746:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3528, + "id": 3682, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3765:4:25", + "src": "3765:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3416,26 +3416,26 @@ }, { "body": { - "id": 3570, + "id": 3724, "nodeType": "Block", - "src": "3987:235:25", + "src": "3987:235:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3536, + "id": 3690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3534, + "id": 3688, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3997:6:25", + "referencedDeclaration": 3669, + "src": "3997:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3446,14 +3446,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "544b4e", - "id": 3535, + "id": 3689, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4006:5:25", + "src": "4006:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", @@ -3461,32 +3461,32 @@ }, "value": "TKN" }, - "src": "3997:14:25", + "src": "3997:14:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3537, + "id": 3691, "nodeType": "ExpressionStatement", - "src": "3997:14:25" + "src": "3997:14:26" }, { "expression": { "argumentTypes": null, - "id": 3540, + "id": 3694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3538, + "id": 3692, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3517, - "src": "4021:4:25", + "referencedDeclaration": 3671, + "src": "4021:4:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3497,14 +3497,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "546f6b656e204578616d706c65", - "id": 3539, + "id": 3693, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4028:15:25", + "src": "4028:15:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", @@ -3512,32 +3512,32 @@ }, "value": "Token Example" }, - "src": "4021:22:25", + "src": "4021:22:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3541, + "id": 3695, "nodeType": "ExpressionStatement", - "src": "4021:22:25" + "src": "4021:22:26" }, { "expression": { "argumentTypes": null, - "id": 3544, + "id": 3698, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3542, + "id": 3696, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4053:8:25", + "referencedDeclaration": 3673, + "src": "4053:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3548,14 +3548,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3138", - "id": 3543, + "id": 3697, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4064:2:25", + "src": "4064:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -3563,32 +3563,32 @@ }, "value": "18" }, - "src": "4053:13:25", + "src": "4053:13:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 3545, + "id": 3699, "nodeType": "ExpressionStatement", - "src": "4053:13:25" + "src": "4053:13:26" }, { "expression": { "argumentTypes": null, - "id": 3554, + "id": 3708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3546, + "id": 3700, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4076:12:25", + "referencedDeclaration": 3675, + "src": "4076:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3602,7 +3602,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3553, + "id": 3707, "isConstant": false, "isLValue": false, "isPure": false, @@ -3610,14 +3610,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 3547, + "id": 3701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4091:7:25", + "src": "4091:7:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -3633,7 +3633,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3552, + "id": 3706, "isConstant": false, "isLValue": false, "isPure": false, @@ -3641,14 +3641,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 3548, + "id": 3702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4101:2:25", + "src": "4101:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -3663,12 +3663,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3550, + "id": 3704, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4110:8:25", + "referencedDeclaration": 3673, + "src": "4110:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3682,20 +3682,20 @@ "typeString": "uint8" } ], - "id": 3549, + "id": 3703, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:25", + "src": "4105:4:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 3551, + "id": 3705, "isConstant": false, "isLValue": false, "isPure": false, @@ -3703,38 +3703,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4105:14:25", + "src": "4105:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4101:18:25", + "src": "4101:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4091:28:25", + "src": "4091:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4076:43:25", + "src": "4076:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3555, + "id": 3709, "nodeType": "ExpressionStatement", - "src": "4076:43:25" + "src": "4076:43:26" }, { "expression": { "argumentTypes": null, - "id": 3560, + "id": 3714, "isConstant": false, "isLValue": false, "isPure": false, @@ -3743,26 +3743,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3556, + "id": 3710, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4129:8:25", + "referencedDeclaration": 3679, + "src": "4129:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3558, + "id": 3712, "indexExpression": { "argumentTypes": null, - "id": 3557, + "id": 3711, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4138:5:25", + "referencedDeclaration": 3593, + "src": "4138:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3773,7 +3773,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4129:15:25", + "src": "4129:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3783,26 +3783,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3559, + "id": 3713, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4147:12:25", + "referencedDeclaration": 3675, + "src": "4147:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4129:30:25", + "src": "4129:30:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3561, + "id": 3715, "nodeType": "ExpressionStatement", - "src": "4129:30:25" + "src": "4129:30:26" }, { "eventCall": { @@ -3814,14 +3814,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3564, + "id": 3718, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4191:1:25", + "src": "4191:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3837,20 +3837,20 @@ "typeString": "int_const 0" } ], - "id": 3563, + "id": 3717, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:25", + "src": "4183:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3565, + "id": 3719, "isConstant": false, "isLValue": false, "isPure": true, @@ -3858,7 +3858,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4183:10:25", + "src": "4183:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3866,12 +3866,12 @@ }, { "argumentTypes": null, - "id": 3566, + "id": 3720, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4195:5:25", + "referencedDeclaration": 3593, + "src": "4195:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3879,12 +3879,12 @@ }, { "argumentTypes": null, - "id": 3567, + "id": 3721, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4202:12:25", + "referencedDeclaration": 3675, + "src": "4202:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3906,18 +3906,18 @@ "typeString": "uint256" } ], - "id": 3562, + "id": 3716, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "4174:8:25", + "referencedDeclaration": 3570, + "src": "4174:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3568, + "id": 3722, "isConstant": false, "isLValue": false, "isPure": false, @@ -3925,20 +3925,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4174:41:25", + "src": "4174:41:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3569, + "id": 3723, "nodeType": "EmitStatement", - "src": "4169:46:25" + "src": "4169:46:26" } ] }, "documentation": null, - "id": 3571, + "id": 3725, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -3946,29 +3946,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3532, + "id": 3686, "nodeType": "ParameterList", "parameters": [], - "src": "3977:2:25" + "src": "3977:2:26" }, "payable": false, "returnParameters": { - "id": 3533, + "id": 3687, "nodeType": "ParameterList", "parameters": [], - "src": "3987:0:25" + "src": "3987:0:26" }, - "scope": 3813, - "src": "3966:256:25", + "scope": 3967, + "src": "3966:256:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3585, + "id": 3739, "nodeType": "Block", - "src": "4459:62:25", + "src": "4459:62:26", "statements": [ { "expression": { @@ -3978,32 +3978,32 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3578, + "id": 3732, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4493:8:25", + "referencedDeclaration": 3679, + "src": "4493:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3582, + "id": 3736, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 3580, + "id": 3734, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4510:1:25", + "src": "4510:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4019,20 +4019,20 @@ "typeString": "int_const 0" } ], - "id": 3579, + "id": 3733, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:25", + "src": "4502:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3581, + "id": 3735, "isConstant": false, "isLValue": false, "isPure": true, @@ -4040,7 +4040,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4502:10:25", + "src": "4502:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4051,7 +4051,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4493:20:25", + "src": "4493:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4067,32 +4067,32 @@ ], "expression": { "argumentTypes": null, - "id": 3576, + "id": 3730, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4476:12:25", + "referencedDeclaration": 3675, + "src": "4476:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3577, + "id": 3731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "4476:16:25", + "referencedDeclaration": 3461, + "src": "4476:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3583, + "id": 3737, "isConstant": false, "isLValue": false, "isPure": false, @@ -4100,21 +4100,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4476:38:25", + "src": "4476:38:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3575, - "id": 3584, + "functionReturnParameters": 3729, + "id": 3738, "nodeType": "Return", - "src": "4469:45:25" + "src": "4469:45:26" } ] }, "documentation": null, - "id": 3586, + "id": 3740, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4122,23 +4122,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3572, + "id": 3726, "nodeType": "ParameterList", "parameters": [], - "src": "4429:2:25" + "src": "4429:2:26" }, "payable": false, "returnParameters": { - "id": 3575, + "id": 3729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3574, + "id": 3728, "name": "", "nodeType": "VariableDeclaration", - "scope": 3586, - "src": "4453:4:25", + "scope": 3740, + "src": "4453:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4146,10 +4146,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3573, + "id": 3727, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4453:4:25", + "src": "4453:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4159,45 +4159,45 @@ "visibility": "internal" } ], - "src": "4452:6:25" + "src": "4452:6:26" }, - "scope": 3813, - "src": "4409:112:25", + "scope": 3967, + "src": "4409:112:26", "stateMutability": "view", - "superFunction": 3363, + "superFunction": 3517, "visibility": "public" }, { "body": { - "id": 3597, + "id": 3751, "nodeType": "Block", - "src": "4816:44:25", + "src": "4816:44:26", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3593, + "id": 3747, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4833:8:25", + "referencedDeclaration": 3679, + "src": "4833:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3595, + "id": 3749, "indexExpression": { "argumentTypes": null, - "id": 3594, + "id": 3748, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3588, - "src": "4842:10:25", + "referencedDeclaration": 3742, + "src": "4842:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4208,21 +4208,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4833:20:25", + "src": "4833:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3592, - "id": 3596, + "functionReturnParameters": 3746, + "id": 3750, "nodeType": "Return", - "src": "4826:27:25" + "src": "4826:27:26" } ] }, "documentation": null, - "id": 3598, + "id": 3752, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4230,16 +4230,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3589, + "id": 3743, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3588, + "id": 3742, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4761:18:25", + "scope": 3752, + "src": "4761:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4247,10 +4247,10 @@ "typeString": "address" }, "typeName": { - "id": 3587, + "id": 3741, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4761:7:25", + "src": "4761:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4260,20 +4260,20 @@ "visibility": "internal" } ], - "src": "4760:20:25" + "src": "4760:20:26" }, "payable": false, "returnParameters": { - "id": 3592, + "id": 3746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3591, + "id": 3745, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4802:12:25", + "scope": 3752, + "src": "4802:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4281,10 +4281,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3590, + "id": 3744, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4802:4:25", + "src": "4802:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4294,24 +4294,24 @@ "visibility": "internal" } ], - "src": "4801:14:25" + "src": "4801:14:26" }, - "scope": 3813, - "src": "4742:118:25", + "scope": 3967, + "src": "4742:118:26", "stateMutability": "view", - "superFunction": 3370, + "superFunction": 3524, "visibility": "public" }, { "body": { - "id": 3640, + "id": 3794, "nodeType": "Block", - "src": "5276:189:25", + "src": "5276:189:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3618, + "id": 3772, "isConstant": false, "isLValue": false, "isPure": false, @@ -4320,34 +4320,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3607, + "id": 3761, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5286:8:25", + "referencedDeclaration": 3679, + "src": "5286:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3610, + "id": 3764, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3608, + "id": 3762, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5295:3:25", + "referencedDeclaration": 4491, + "src": "5295:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3609, + "id": 3763, "isConstant": false, "isLValue": false, "isPure": false, @@ -4355,7 +4355,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5295:10:25", + "src": "5295:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4366,7 +4366,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5286:20:25", + "src": "5286:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4379,12 +4379,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3616, + "id": 3770, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5334:6:25", + "referencedDeclaration": 3756, + "src": "5334:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4402,34 +4402,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3611, + "id": 3765, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5309:8:25", + "referencedDeclaration": 3679, + "src": "5309:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3614, + "id": 3768, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3612, + "id": 3766, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5318:3:25", + "referencedDeclaration": 4491, + "src": "5318:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3613, + "id": 3767, "isConstant": false, "isLValue": false, "isPure": false, @@ -4437,7 +4437,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5318:10:25", + "src": "5318:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4448,27 +4448,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5309:20:25", + "src": "5309:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3615, + "id": 3769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "5309:24:25", + "referencedDeclaration": 3461, + "src": "5309:24:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3617, + "id": 3771, "isConstant": false, "isLValue": false, "isPure": false, @@ -4476,26 +4476,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5309:32:25", + "src": "5309:32:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5286:55:25", + "src": "5286:55:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3619, + "id": 3773, "nodeType": "ExpressionStatement", - "src": "5286:55:25" + "src": "5286:55:26" }, { "expression": { "argumentTypes": null, - "id": 3629, + "id": 3783, "isConstant": false, "isLValue": false, "isPure": false, @@ -4504,26 +4504,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3620, + "id": 3774, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5351:8:25", + "referencedDeclaration": 3679, + "src": "5351:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3622, + "id": 3776, "indexExpression": { "argumentTypes": null, - "id": 3621, + "id": 3775, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5360:2:25", + "referencedDeclaration": 3754, + "src": "5360:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4534,7 +4534,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5351:12:25", + "src": "5351:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4547,12 +4547,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3627, + "id": 3781, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5383:6:25", + "referencedDeclaration": 3756, + "src": "5383:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4570,26 +4570,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3623, + "id": 3777, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5366:8:25", + "referencedDeclaration": 3679, + "src": "5366:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3625, + "id": 3779, "indexExpression": { "argumentTypes": null, - "id": 3624, + "id": 3778, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5375:2:25", + "referencedDeclaration": 3754, + "src": "5375:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4600,27 +4600,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5366:12:25", + "src": "5366:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3626, + "id": 3780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "5366:16:25", + "referencedDeclaration": 3439, + "src": "5366:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3628, + "id": 3782, "isConstant": false, "isLValue": false, "isPure": false, @@ -4628,21 +4628,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5366:24:25", + "src": "5366:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5351:39:25", + "src": "5351:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3630, + "id": 3784, "nodeType": "ExpressionStatement", - "src": "5351:39:25" + "src": "5351:39:26" }, { "eventCall": { @@ -4652,18 +4652,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3632, + "id": 3786, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5414:3:25", + "referencedDeclaration": 4491, + "src": "5414:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3633, + "id": 3787, "isConstant": false, "isLValue": false, "isPure": false, @@ -4671,7 +4671,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:25", + "src": "5414:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4679,12 +4679,12 @@ }, { "argumentTypes": null, - "id": 3634, + "id": 3788, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5426:2:25", + "referencedDeclaration": 3754, + "src": "5426:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4692,12 +4692,12 @@ }, { "argumentTypes": null, - "id": 3635, + "id": 3789, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5430:6:25", + "referencedDeclaration": 3756, + "src": "5430:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4719,18 +4719,18 @@ "typeString": "uint256" } ], - "id": 3631, + "id": 3785, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5405:8:25", + "referencedDeclaration": 3570, + "src": "5405:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3636, + "id": 3790, "isConstant": false, "isLValue": false, "isPure": false, @@ -4738,28 +4738,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5405:32:25", + "src": "5405:32:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3637, + "id": 3791, "nodeType": "EmitStatement", - "src": "5400:37:25" + "src": "5400:37:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3638, + "id": 3792, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5454:4:25", + "src": "5454:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4767,15 +4767,15 @@ }, "value": "true" }, - "functionReturnParameters": 3606, - "id": 3639, + "functionReturnParameters": 3760, + "id": 3793, "nodeType": "Return", - "src": "5447:11:25" + "src": "5447:11:26" } ] }, "documentation": null, - "id": 3641, + "id": 3795, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4783,16 +4783,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3603, + "id": 3757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3600, + "id": 3754, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5221:10:25", + "scope": 3795, + "src": "5221:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4800,10 +4800,10 @@ "typeString": "address" }, "typeName": { - "id": 3599, + "id": 3753, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5221:7:25", + "src": "5221:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4814,11 +4814,11 @@ }, { "constant": false, - "id": 3602, + "id": 3756, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5233:11:25", + "scope": 3795, + "src": "5233:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4826,10 +4826,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3601, + "id": 3755, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5233:4:25", + "src": "5233:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4839,20 +4839,20 @@ "visibility": "internal" } ], - "src": "5220:25:25" + "src": "5220:25:26" }, "payable": false, "returnParameters": { - "id": 3606, + "id": 3760, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3605, + "id": 3759, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5262:12:25", + "scope": 3795, + "src": "5262:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4860,10 +4860,10 @@ "typeString": "bool" }, "typeName": { - "id": 3604, + "id": 3758, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5262:4:25", + "src": "5262:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4873,24 +4873,24 @@ "visibility": "internal" } ], - "src": "5261:14:25" + "src": "5261:14:26" }, - "scope": 3813, - "src": "5203:262:25", + "scope": 3967, + "src": "5203:262:26", "stateMutability": "nonpayable", - "superFunction": 3388, + "superFunction": 3542, "visibility": "public" }, { "body": { - "id": 3668, + "id": 3822, "nodeType": "Block", - "src": "6048:127:25", + "src": "6048:127:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3657, + "id": 3811, "isConstant": false, "isLValue": false, "isPure": false, @@ -4901,34 +4901,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3650, + "id": 3804, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6058:7:25", + "referencedDeclaration": 3685, + "src": "6058:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3654, + "id": 3808, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3651, + "id": 3805, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6066:3:25", + "referencedDeclaration": 4491, + "src": "6066:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3652, + "id": 3806, "isConstant": false, "isLValue": false, "isPure": false, @@ -4936,7 +4936,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6066:10:25", + "src": "6066:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4947,21 +4947,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6058:19:25", + "src": "6058:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3655, + "id": 3809, "indexExpression": { "argumentTypes": null, - "id": 3653, + "id": 3807, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6078:7:25", + "referencedDeclaration": 3797, + "src": "6078:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4972,7 +4972,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6058:28:25", + "src": "6058:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4982,26 +4982,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3656, + "id": 3810, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6089:6:25", + "referencedDeclaration": 3799, + "src": "6089:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6058:37:25", + "src": "6058:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3658, + "id": 3812, "nodeType": "ExpressionStatement", - "src": "6058:37:25" + "src": "6058:37:26" }, { "eventCall": { @@ -5011,18 +5011,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3660, + "id": 3814, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6119:3:25", + "referencedDeclaration": 4491, + "src": "6119:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3661, + "id": 3815, "isConstant": false, "isLValue": false, "isPure": false, @@ -5030,7 +5030,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6119:10:25", + "src": "6119:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5038,12 +5038,12 @@ }, { "argumentTypes": null, - "id": 3662, + "id": 3816, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6131:7:25", + "referencedDeclaration": 3797, + "src": "6131:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5051,12 +5051,12 @@ }, { "argumentTypes": null, - "id": 3663, + "id": 3817, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6140:6:25", + "referencedDeclaration": 3799, + "src": "6140:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5078,18 +5078,18 @@ "typeString": "uint256" } ], - "id": 3659, + "id": 3813, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "6110:8:25", + "referencedDeclaration": 3578, + "src": "6110:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3664, + "id": 3818, "isConstant": false, "isLValue": false, "isPure": false, @@ -5097,28 +5097,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6110:37:25", + "src": "6110:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3665, + "id": 3819, "nodeType": "EmitStatement", - "src": "6105:42:25" + "src": "6105:42:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3666, + "id": 3820, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6164:4:25", + "src": "6164:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5126,15 +5126,15 @@ }, "value": "true" }, - "functionReturnParameters": 3649, - "id": 3667, + "functionReturnParameters": 3803, + "id": 3821, "nodeType": "Return", - "src": "6157:11:25" + "src": "6157:11:26" } ] }, "documentation": null, - "id": 3669, + "id": 3823, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5142,16 +5142,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3646, + "id": 3800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3643, + "id": 3797, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "5988:15:25", + "scope": 3823, + "src": "5988:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5159,10 +5159,10 @@ "typeString": "address" }, "typeName": { - "id": 3642, + "id": 3796, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5988:7:25", + "src": "5988:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5173,11 +5173,11 @@ }, { "constant": false, - "id": 3645, + "id": 3799, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6005:11:25", + "scope": 3823, + "src": "6005:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5185,10 +5185,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3644, + "id": 3798, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6005:4:25", + "src": "6005:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5198,20 +5198,20 @@ "visibility": "internal" } ], - "src": "5987:30:25" + "src": "5987:30:26" }, "payable": false, "returnParameters": { - "id": 3649, + "id": 3803, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3648, + "id": 3802, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6034:12:25", + "scope": 3823, + "src": "6034:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5219,10 +5219,10 @@ "typeString": "bool" }, "typeName": { - "id": 3647, + "id": 3801, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6034:4:25", + "src": "6034:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5232,24 +5232,24 @@ "visibility": "internal" } ], - "src": "6033:14:25" + "src": "6033:14:26" }, - "scope": 3813, - "src": "5971:204:25", + "scope": 3967, + "src": "5971:204:26", "stateMutability": "nonpayable", - "superFunction": 3397, + "superFunction": 3551, "visibility": "public" }, { "body": { - "id": 3727, + "id": 3881, "nodeType": "Block", - "src": "6798:246:25", + "src": "6798:246:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3689, + "id": 3843, "isConstant": false, "isLValue": false, "isPure": false, @@ -5258,26 +5258,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3680, + "id": 3834, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6808:8:25", + "referencedDeclaration": 3679, + "src": "6808:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3682, + "id": 3836, "indexExpression": { "argumentTypes": null, - "id": 3681, + "id": 3835, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6817:4:25", + "referencedDeclaration": 3825, + "src": "6817:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5288,7 +5288,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6808:14:25", + "src": "6808:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5301,12 +5301,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3687, + "id": 3841, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6844:6:25", + "referencedDeclaration": 3829, + "src": "6844:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5324,26 +5324,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3683, + "id": 3837, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6825:8:25", + "referencedDeclaration": 3679, + "src": "6825:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3685, + "id": 3839, "indexExpression": { "argumentTypes": null, - "id": 3684, + "id": 3838, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6834:4:25", + "referencedDeclaration": 3825, + "src": "6834:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5354,27 +5354,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6825:14:25", + "src": "6825:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3686, + "id": 3840, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6825:18:25", + "referencedDeclaration": 3461, + "src": "6825:18:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3688, + "id": 3842, "isConstant": false, "isLValue": false, "isPure": false, @@ -5382,26 +5382,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6825:26:25", + "src": "6825:26:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6808:43:25", + "src": "6808:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3690, + "id": 3844, "nodeType": "ExpressionStatement", - "src": "6808:43:25" + "src": "6808:43:26" }, { "expression": { "argumentTypes": null, - "id": 3706, + "id": 3860, "isConstant": false, "isLValue": false, "isPure": false, @@ -5412,26 +5412,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3691, + "id": 3845, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6861:7:25", + "referencedDeclaration": 3685, + "src": "6861:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3695, + "id": 3849, "indexExpression": { "argumentTypes": null, - "id": 3692, + "id": 3846, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6869:4:25", + "referencedDeclaration": 3825, + "src": "6869:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5442,29 +5442,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6861:13:25", + "src": "6861:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3696, + "id": 3850, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3693, + "id": 3847, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6875:3:25", + "referencedDeclaration": 4491, + "src": "6875:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3694, + "id": 3848, "isConstant": false, "isLValue": false, "isPure": false, @@ -5472,7 +5472,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6875:10:25", + "src": "6875:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5483,7 +5483,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6861:25:25", + "src": "6861:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5496,12 +5496,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3704, + "id": 3858, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6919:6:25", + "referencedDeclaration": 3829, + "src": "6919:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5521,26 +5521,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3697, + "id": 3851, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6889:7:25", + "referencedDeclaration": 3685, + "src": "6889:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3699, + "id": 3853, "indexExpression": { "argumentTypes": null, - "id": 3698, + "id": 3852, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6897:4:25", + "referencedDeclaration": 3825, + "src": "6897:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5551,29 +5551,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:13:25", + "src": "6889:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3702, + "id": 3856, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3700, + "id": 3854, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6903:3:25", + "referencedDeclaration": 4491, + "src": "6903:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3701, + "id": 3855, "isConstant": false, "isLValue": false, "isPure": false, @@ -5581,7 +5581,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6903:10:25", + "src": "6903:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5592,27 +5592,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:25:25", + "src": "6889:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3703, + "id": 3857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6889:29:25", + "referencedDeclaration": 3461, + "src": "6889:29:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3705, + "id": 3859, "isConstant": false, "isLValue": false, "isPure": false, @@ -5620,26 +5620,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6889:37:25", + "src": "6889:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6861:65:25", + "src": "6861:65:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3707, + "id": 3861, "nodeType": "ExpressionStatement", - "src": "6861:65:25" + "src": "6861:65:26" }, { "expression": { "argumentTypes": null, - "id": 3717, + "id": 3871, "isConstant": false, "isLValue": false, "isPure": false, @@ -5648,26 +5648,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3708, + "id": 3862, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6936:8:25", + "referencedDeclaration": 3679, + "src": "6936:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3710, + "id": 3864, "indexExpression": { "argumentTypes": null, - "id": 3709, + "id": 3863, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6945:2:25", + "referencedDeclaration": 3827, + "src": "6945:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5678,7 +5678,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6936:12:25", + "src": "6936:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5691,12 +5691,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3715, + "id": 3869, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6968:6:25", + "referencedDeclaration": 3829, + "src": "6968:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5714,26 +5714,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3711, + "id": 3865, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6951:8:25", + "referencedDeclaration": 3679, + "src": "6951:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3713, + "id": 3867, "indexExpression": { "argumentTypes": null, - "id": 3712, + "id": 3866, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6960:2:25", + "referencedDeclaration": 3827, + "src": "6960:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5744,27 +5744,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6951:12:25", + "src": "6951:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3714, + "id": 3868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "6951:16:25", + "referencedDeclaration": 3439, + "src": "6951:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3716, + "id": 3870, "isConstant": false, "isLValue": false, "isPure": false, @@ -5772,21 +5772,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6951:24:25", + "src": "6951:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6936:39:25", + "src": "6936:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3718, + "id": 3872, "nodeType": "ExpressionStatement", - "src": "6936:39:25" + "src": "6936:39:26" }, { "eventCall": { @@ -5794,12 +5794,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3720, + "id": 3874, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6999:4:25", + "referencedDeclaration": 3825, + "src": "6999:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5807,12 +5807,12 @@ }, { "argumentTypes": null, - "id": 3721, + "id": 3875, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "7005:2:25", + "referencedDeclaration": 3827, + "src": "7005:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5820,12 +5820,12 @@ }, { "argumentTypes": null, - "id": 3722, + "id": 3876, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "7009:6:25", + "referencedDeclaration": 3829, + "src": "7009:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5847,18 +5847,18 @@ "typeString": "uint256" } ], - "id": 3719, + "id": 3873, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "6990:8:25", + "referencedDeclaration": 3570, + "src": "6990:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3723, + "id": 3877, "isConstant": false, "isLValue": false, "isPure": false, @@ -5866,28 +5866,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6990:26:25", + "src": "6990:26:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3724, + "id": 3878, "nodeType": "EmitStatement", - "src": "6985:31:25" + "src": "6985:31:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3725, + "id": 3879, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7033:4:25", + "src": "7033:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5895,15 +5895,15 @@ }, "value": "true" }, - "functionReturnParameters": 3679, - "id": 3726, + "functionReturnParameters": 3833, + "id": 3880, "nodeType": "Return", - "src": "7026:11:25" + "src": "7026:11:26" } ] }, "documentation": null, - "id": 3728, + "id": 3882, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5911,16 +5911,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3676, + "id": 3830, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3671, + "id": 3825, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6729:12:25", + "scope": 3882, + "src": "6729:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5928,10 +5928,10 @@ "typeString": "address" }, "typeName": { - "id": 3670, + "id": 3824, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6729:7:25", + "src": "6729:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5942,11 +5942,11 @@ }, { "constant": false, - "id": 3673, + "id": 3827, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6743:10:25", + "scope": 3882, + "src": "6743:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5954,10 +5954,10 @@ "typeString": "address" }, "typeName": { - "id": 3672, + "id": 3826, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6743:7:25", + "src": "6743:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5968,11 +5968,11 @@ }, { "constant": false, - "id": 3675, + "id": 3829, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6755:11:25", + "scope": 3882, + "src": "6755:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5980,10 +5980,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3674, + "id": 3828, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6755:4:25", + "src": "6755:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5993,20 +5993,20 @@ "visibility": "internal" } ], - "src": "6728:39:25" + "src": "6728:39:26" }, "payable": false, "returnParameters": { - "id": 3679, + "id": 3833, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3678, + "id": 3832, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6784:12:25", + "scope": 3882, + "src": "6784:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6014,10 +6014,10 @@ "typeString": "bool" }, "typeName": { - "id": 3677, + "id": 3831, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6784:4:25", + "src": "6784:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6027,19 +6027,19 @@ "visibility": "internal" } ], - "src": "6783:14:25" + "src": "6783:14:26" }, - "scope": 3813, - "src": "6707:337:25", + "scope": 3967, + "src": "6707:337:26", "stateMutability": "nonpayable", - "superFunction": 3408, + "superFunction": 3562, "visibility": "public" }, { "body": { - "id": 3743, + "id": 3897, "nodeType": "Block", - "src": "7418:52:25", + "src": "7418:52:26", "statements": [ { "expression": { @@ -6048,26 +6048,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3737, + "id": 3891, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7435:7:25", + "referencedDeclaration": 3685, + "src": "7435:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3739, + "id": 3893, "indexExpression": { "argumentTypes": null, - "id": 3738, + "id": 3892, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3730, - "src": "7443:10:25", + "referencedDeclaration": 3884, + "src": "7443:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6078,21 +6078,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:19:25", + "src": "7435:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3741, + "id": 3895, "indexExpression": { "argumentTypes": null, - "id": 3740, + "id": 3894, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "7455:7:25", + "referencedDeclaration": 3886, + "src": "7455:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6103,21 +6103,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:28:25", + "src": "7435:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3736, - "id": 3742, + "functionReturnParameters": 3890, + "id": 3896, "nodeType": "Return", - "src": "7428:35:25" + "src": "7428:35:26" } ] }, "documentation": null, - "id": 3744, + "id": 3898, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6125,16 +6125,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3733, + "id": 3887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3730, + "id": 3884, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7344:18:25", + "scope": 3898, + "src": "7344:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6142,10 +6142,10 @@ "typeString": "address" }, "typeName": { - "id": 3729, + "id": 3883, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7344:7:25", + "src": "7344:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6156,11 +6156,11 @@ }, { "constant": false, - "id": 3732, + "id": 3886, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7364:15:25", + "scope": 3898, + "src": "7364:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6168,10 +6168,10 @@ "typeString": "address" }, "typeName": { - "id": 3731, + "id": 3885, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7364:7:25", + "src": "7364:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6181,20 +6181,20 @@ "visibility": "internal" } ], - "src": "7343:37:25" + "src": "7343:37:26" }, "payable": false, "returnParameters": { - "id": 3736, + "id": 3890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3735, + "id": 3889, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7402:14:25", + "scope": 3898, + "src": "7402:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6202,10 +6202,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3734, + "id": 3888, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7402:4:25", + "src": "7402:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6215,24 +6215,24 @@ "visibility": "internal" } ], - "src": "7401:16:25" + "src": "7401:16:26" }, - "scope": 3813, - "src": "7325:145:25", + "scope": 3967, + "src": "7325:145:26", "stateMutability": "view", - "superFunction": 3379, + "superFunction": 3533, "visibility": "public" }, { "body": { - "id": 3784, + "id": 3938, "nodeType": "Block", - "src": "7926:216:25", + "src": "7926:216:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3762, + "id": 3916, "isConstant": false, "isLValue": false, "isPure": false, @@ -6243,34 +6243,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3755, + "id": 3909, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7936:7:25", + "referencedDeclaration": 3685, + "src": "7936:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3759, + "id": 3913, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3756, + "id": 3910, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7944:3:25", + "referencedDeclaration": 4491, + "src": "7944:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3757, + "id": 3911, "isConstant": false, "isLValue": false, "isPure": false, @@ -6278,7 +6278,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7944:10:25", + "src": "7944:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6289,21 +6289,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7936:19:25", + "src": "7936:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3760, + "id": 3914, "indexExpression": { "argumentTypes": null, - "id": 3758, + "id": 3912, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "7956:7:25", + "referencedDeclaration": 3900, + "src": "7956:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6314,7 +6314,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7936:28:25", + "src": "7936:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6324,26 +6324,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3761, + "id": 3915, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "7967:6:25", + "referencedDeclaration": 3902, + "src": "7967:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7936:37:25", + "src": "7936:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3763, + "id": 3917, "nodeType": "ExpressionStatement", - "src": "7936:37:25" + "src": "7936:37:26" }, { "eventCall": { @@ -6353,18 +6353,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3765, + "id": 3919, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7997:3:25", + "referencedDeclaration": 4491, + "src": "7997:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3766, + "id": 3920, "isConstant": false, "isLValue": false, "isPure": false, @@ -6372,7 +6372,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7997:10:25", + "src": "7997:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6380,12 +6380,12 @@ }, { "argumentTypes": null, - "id": 3767, + "id": 3921, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8009:7:25", + "referencedDeclaration": 3900, + "src": "8009:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6393,12 +6393,12 @@ }, { "argumentTypes": null, - "id": 3768, + "id": 3922, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8018:6:25", + "referencedDeclaration": 3902, + "src": "8018:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6420,18 +6420,18 @@ "typeString": "uint256" } ], - "id": 3764, + "id": 3918, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "7988:8:25", + "referencedDeclaration": 3578, + "src": "7988:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3769, + "id": 3923, "isConstant": false, "isLValue": false, "isPure": false, @@ -6439,15 +6439,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7988:37:25", + "src": "7988:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3770, + "id": 3924, "nodeType": "EmitStatement", - "src": "7983:42:25" + "src": "7983:42:26" }, { "expression": { @@ -6457,18 +6457,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3775, + "id": 3929, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "8083:3:25", + "referencedDeclaration": 4491, + "src": "8083:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3776, + "id": 3930, "isConstant": false, "isLValue": false, "isPure": false, @@ -6476,7 +6476,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8083:10:25", + "src": "8083:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6484,12 +6484,12 @@ }, { "argumentTypes": null, - "id": 3777, + "id": 3931, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8095:6:25", + "referencedDeclaration": 3902, + "src": "8095:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6497,25 +6497,25 @@ }, { "argumentTypes": null, - "id": 3778, + "id": 3932, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3907, - "src": "8103:4:25", + "referencedDeclaration": 4574, + "src": "8103:4:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" } }, { "argumentTypes": null, - "id": 3779, + "id": 3933, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3750, - "src": "8109:4:25", + "referencedDeclaration": 3904, + "src": "8109:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6533,7 +6533,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" }, { @@ -6546,12 +6546,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3772, + "id": 3926, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8058:7:25", + "referencedDeclaration": 3900, + "src": "8058:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6565,18 +6565,18 @@ "typeString": "address" } ], - "id": 3771, + "id": 3925, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3437, - "src": "8035:22:25", + "referencedDeclaration": 3591, + "src": "8035:22:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, - "id": 3773, + "id": 3927, "isConstant": false, "isLValue": false, "isPure": false, @@ -6584,27 +6584,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:31:25", + "src": "8035:31:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", "typeString": "contract ApproveAndCallFallBack" } }, - "id": 3774, + "id": 3928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", - "referencedDeclaration": 3436, - "src": "8035:47:25", + "referencedDeclaration": 3590, + "src": "8035:47:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,address,bytes memory) external" } }, - "id": 3780, + "id": 3934, "isConstant": false, "isLValue": false, "isPure": false, @@ -6612,28 +6612,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:79:25", + "src": "8035:79:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3781, + "id": 3935, "nodeType": "ExpressionStatement", - "src": "8035:79:25" + "src": "8035:79:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3782, + "id": 3936, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8131:4:25", + "src": "8131:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6641,15 +6641,15 @@ }, "value": "true" }, - "functionReturnParameters": 3754, - "id": 3783, + "functionReturnParameters": 3908, + "id": 3937, "nodeType": "Return", - "src": "8124:11:25" + "src": "8124:11:26" } ] }, "documentation": null, - "id": 3785, + "id": 3939, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6657,16 +6657,16 @@ "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 3751, + "id": 3905, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3746, + "id": 3900, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7854:15:25", + "scope": 3939, + "src": "7854:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6674,10 +6674,10 @@ "typeString": "address" }, "typeName": { - "id": 3745, + "id": 3899, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7854:7:25", + "src": "7854:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6688,11 +6688,11 @@ }, { "constant": false, - "id": 3748, + "id": 3902, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7871:11:25", + "scope": 3939, + "src": "7871:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6700,10 +6700,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3747, + "id": 3901, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7871:4:25", + "src": "7871:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6714,11 +6714,11 @@ }, { "constant": false, - "id": 3750, + "id": 3904, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7884:10:25", + "scope": 3939, + "src": "7884:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6726,10 +6726,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3749, + "id": 3903, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7884:5:25", + "src": "7884:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6739,20 +6739,20 @@ "visibility": "internal" } ], - "src": "7853:42:25" + "src": "7853:42:26" }, "payable": false, "returnParameters": { - "id": 3754, + "id": 3908, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3753, + "id": 3907, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7912:12:25", + "scope": 3939, + "src": "7912:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6760,10 +6760,10 @@ "typeString": "bool" }, "typeName": { - "id": 3752, + "id": 3906, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7912:4:25", + "src": "7912:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6773,19 +6773,19 @@ "visibility": "internal" } ], - "src": "7911:14:25" + "src": "7911:14:26" }, - "scope": 3813, - "src": "7830:312:25", + "scope": 3967, + "src": "7830:312:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3791, + "id": 3945, "nodeType": "Block", - "src": "8360:25:25", + "src": "8360:25:26", "statements": [ { "expression": { @@ -6793,21 +6793,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3788, + "id": 3942, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 3833, - 3834 + 4496, + 4497 ], - "referencedDeclaration": 3833, - "src": "8370:6:25", + "referencedDeclaration": 4496, + "src": "8370:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 3789, + "id": 3943, "isConstant": false, "isLValue": false, "isPure": false, @@ -6815,20 +6815,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8370:8:25", + "src": "8370:8:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3790, + "id": 3944, "nodeType": "ExpressionStatement", - "src": "8370:8:25" + "src": "8370:8:26" } ] }, "documentation": null, - "id": 3792, + "id": 3946, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6836,29 +6836,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3786, + "id": 3940, "nodeType": "ParameterList", "parameters": [], - "src": "8342:2:25" + "src": "8342:2:26" }, "payable": true, "returnParameters": { - "id": 3787, + "id": 3941, "nodeType": "ParameterList", "parameters": [], - "src": "8360:0:25" + "src": "8360:0:26" }, - "scope": 3813, - "src": "8333:52:25", + "scope": 3967, + "src": "8333:52:26", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3811, + "id": 3965, "nodeType": "Block", - "src": "8723:76:25", + "src": "8723:76:26", "statements": [ { "expression": { @@ -6866,12 +6866,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3807, + "id": 3961, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "8778:5:25", + "referencedDeclaration": 3593, + "src": "8778:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6879,12 +6879,12 @@ }, { "argumentTypes": null, - "id": 3808, + "id": 3962, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3796, - "src": "8785:6:25", + "referencedDeclaration": 3950, + "src": "8785:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6907,12 +6907,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3804, + "id": 3958, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3794, - "src": "8755:12:25", + "referencedDeclaration": 3948, + "src": "8755:12:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6926,18 +6926,18 @@ "typeString": "address" } ], - "id": 3803, + "id": 3957, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3425, - "src": "8740:14:25", + "referencedDeclaration": 3579, + "src": "8740:14:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", "typeString": "type(contract ERC20Interface)" } }, - "id": 3805, + "id": 3959, "isConstant": false, "isLValue": false, "isPure": false, @@ -6945,27 +6945,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:28:25", + "src": "8740:28:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3806, + "id": 3960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 3388, - "src": "8740:37:25", + "referencedDeclaration": 3542, + "src": "8740:37:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 3809, + "id": 3963, "isConstant": false, "isLValue": false, "isPure": false, @@ -6973,58 +6973,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:52:25", + "src": "8740:52:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3802, - "id": 3810, + "functionReturnParameters": 3956, + "id": 3964, "nodeType": "Return", - "src": "8733:59:25" + "src": "8733:59:26" } ] }, "documentation": null, - "id": 3812, + "id": 3966, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3799, + "id": 3953, "modifierName": { "argumentTypes": null, - "id": 3798, + "id": 3952, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "8690:9:25", + "referencedDeclaration": 3621, + "src": "8690:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8690:9:25" + "src": "8690:9:26" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 3797, + "id": 3951, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3794, + "id": 3948, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8648:20:25", + "scope": 3966, + "src": "8648:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7032,10 +7032,10 @@ "typeString": "address" }, "typeName": { - "id": 3793, + "id": 3947, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8648:7:25", + "src": "8648:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7046,11 +7046,11 @@ }, { "constant": false, - "id": 3796, + "id": 3950, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8670:11:25", + "scope": 3966, + "src": "8670:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7058,10 +7058,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3795, + "id": 3949, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8670:4:25", + "src": "8670:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7071,20 +7071,20 @@ "visibility": "internal" } ], - "src": "8647:35:25" + "src": "8647:35:26" }, "payable": false, "returnParameters": { - "id": 3802, + "id": 3956, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3801, + "id": 3955, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8709:12:25", + "scope": 3966, + "src": "8709:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7092,10 +7092,10 @@ "typeString": "bool" }, "typeName": { - "id": 3800, + "id": 3954, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8709:4:25", + "src": "8709:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7105,45 +7105,45 @@ "visibility": "internal" } ], - "src": "8708:14:25" + "src": "8708:14:26" }, - "scope": 3813, - "src": "8617:182:25", + "scope": 3967, + "src": "8617:182:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "3506:5295:25" + "scope": 3968, + "src": "3506:5295:26" } ], - "src": "0:8801:25" + "src": "0:8801:26" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ - 3437 + 3591 ], "ERC20Interface": [ - 3425 + 3579 ], "Owned": [ - 3506 + 3660 ], "SafeMath": [ - 3358 + 3512 ], "TestToken": [ - 3813 + 3967 ] }, - "id": 3814, + "id": 3968, "nodeType": "SourceUnit", "nodes": [ { - "id": 3263, + "id": 3417, "literals": [ "solidity", "^", @@ -7151,7 +7151,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:24:26" }, { "baseContracts": [], @@ -7159,35 +7159,35 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 3358, + "id": 3512, "linearizedBaseContracts": [ - 3358 + 3512 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3284, + "id": 3438, "nodeType": "Block", - "src": "719:51:25", + "src": "719:51:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3276, + "id": 3430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3272, + "id": 3426, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "729:1:25", + "referencedDeclaration": 3424, + "src": "729:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7201,19 +7201,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3275, + "id": 3429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3273, + "id": 3427, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "733:1:25", + "referencedDeclaration": 3419, + "src": "733:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7223,32 +7223,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 3274, + "id": 3428, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3267, - "src": "737:1:25", + "referencedDeclaration": 3421, + "src": "737:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:5:25", + "src": "733:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "729:9:25", + "src": "729:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3277, + "id": 3431, "nodeType": "ExpressionStatement", - "src": "729:9:25" + "src": "729:9:26" }, { "expression": { @@ -7260,19 +7260,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3281, + "id": 3435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3279, + "id": 3433, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "756:1:25", + "referencedDeclaration": 3424, + "src": "756:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7282,18 +7282,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 3280, + "id": 3434, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "761:1:25", + "referencedDeclaration": 3419, + "src": "761:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "756:6:25", + "src": "756:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7307,21 +7307,21 @@ "typeString": "bool" } ], - "id": 3278, + "id": 3432, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "748:7:25", + "referencedDeclaration": 4494, + "src": "748:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3282, + "id": 3436, "isConstant": false, "isLValue": false, "isPure": false, @@ -7329,20 +7329,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:15:25", + "src": "748:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3283, + "id": 3437, "nodeType": "ExpressionStatement", - "src": "748:15:25" + "src": "748:15:26" } ] }, "documentation": null, - "id": 3285, + "id": 3439, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7350,16 +7350,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 3268, + "id": 3422, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3265, + "id": 3419, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "672:6:25", + "scope": 3439, + "src": "672:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7367,10 +7367,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3264, + "id": 3418, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "672:4:25", + "src": "672:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7381,11 +7381,11 @@ }, { "constant": false, - "id": 3267, + "id": 3421, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "680:6:25", + "scope": 3439, + "src": "680:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7393,10 +7393,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3266, + "id": 3420, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "680:4:25", + "src": "680:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7406,20 +7406,20 @@ "visibility": "internal" } ], - "src": "671:16:25" + "src": "671:16:26" }, "payable": false, "returnParameters": { - "id": 3271, + "id": 3425, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3270, + "id": 3424, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "711:6:25", + "scope": 3439, + "src": "711:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7427,10 +7427,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3269, + "id": 3423, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "711:4:25", + "src": "711:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7440,19 +7440,19 @@ "visibility": "internal" } ], - "src": "710:8:25" + "src": "710:8:26" }, - "scope": 3358, - "src": "659:111:25", + "scope": 3512, + "src": "659:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3306, + "id": 3460, "nodeType": "Block", - "src": "835:51:25", + "src": "835:51:26", "statements": [ { "expression": { @@ -7464,19 +7464,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3297, + "id": 3451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3295, + "id": 3449, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "853:1:25", + "referencedDeclaration": 3443, + "src": "853:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7486,18 +7486,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 3296, + "id": 3450, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "858:1:25", + "referencedDeclaration": 3441, + "src": "858:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "853:6:25", + "src": "853:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7511,21 +7511,21 @@ "typeString": "bool" } ], - "id": 3294, + "id": 3448, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "845:7:25", + "referencedDeclaration": 4494, + "src": "845:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3298, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, @@ -7533,32 +7533,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:15:25", + "src": "845:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3299, + "id": 3453, "nodeType": "ExpressionStatement", - "src": "845:15:25" + "src": "845:15:26" }, { "expression": { "argumentTypes": null, - "id": 3304, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3300, + "id": 3454, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3292, - "src": "870:1:25", + "referencedDeclaration": 3446, + "src": "870:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7572,19 +7572,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3303, + "id": 3457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3301, + "id": 3455, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "874:1:25", + "referencedDeclaration": 3441, + "src": "874:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7594,37 +7594,37 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 3302, + "id": 3456, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "878:1:25", + "referencedDeclaration": 3443, + "src": "878:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "874:5:25", + "src": "874:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "870:9:25", + "src": "870:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3305, + "id": 3459, "nodeType": "ExpressionStatement", - "src": "870:9:25" + "src": "870:9:26" } ] }, "documentation": null, - "id": 3307, + "id": 3461, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7632,16 +7632,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 3290, + "id": 3444, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3287, + "id": 3441, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "788:6:25", + "scope": 3461, + "src": "788:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7649,10 +7649,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3286, + "id": 3440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "788:4:25", + "src": "788:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7663,11 +7663,11 @@ }, { "constant": false, - "id": 3289, + "id": 3443, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "796:6:25", + "scope": 3461, + "src": "796:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7675,10 +7675,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3288, + "id": 3442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "796:4:25", + "src": "796:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7688,20 +7688,20 @@ "visibility": "internal" } ], - "src": "787:16:25" + "src": "787:16:26" }, "payable": false, "returnParameters": { - "id": 3293, + "id": 3447, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3292, + "id": 3446, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "827:6:25", + "scope": 3461, + "src": "827:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7709,10 +7709,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3291, + "id": 3445, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:25", + "src": "827:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7722,36 +7722,36 @@ "visibility": "internal" } ], - "src": "826:8:25" + "src": "826:8:26" }, - "scope": 3358, - "src": "775:111:25", + "scope": 3512, + "src": "775:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3334, + "id": 3488, "nodeType": "Block", - "src": "951:65:25", + "src": "951:65:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3320, + "id": 3474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3316, + "id": 3470, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "961:1:25", + "referencedDeclaration": 3468, + "src": "961:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7765,19 +7765,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3319, + "id": 3473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3317, + "id": 3471, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "965:1:25", + "referencedDeclaration": 3463, + "src": "965:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7787,32 +7787,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 3318, + "id": 3472, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "969:1:25", + "referencedDeclaration": 3465, + "src": "969:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "965:5:25", + "src": "965:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "961:9:25", + "src": "961:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3321, + "id": 3475, "nodeType": "ExpressionStatement", - "src": "961:9:25" + "src": "961:9:26" }, { "expression": { @@ -7824,7 +7824,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3331, + "id": 3485, "isConstant": false, "isLValue": false, "isPure": false, @@ -7835,19 +7835,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3325, + "id": 3479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3323, + "id": 3477, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "988:1:25", + "referencedDeclaration": 3463, + "src": "988:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7858,14 +7858,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3324, + "id": 3478, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "993:1:25", + "src": "993:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7873,7 +7873,7 @@ }, "value": "0" }, - "src": "988:6:25", + "src": "988:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7887,7 +7887,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3330, + "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, @@ -7898,19 +7898,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3328, + "id": 3482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3326, + "id": 3480, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "998:1:25", + "referencedDeclaration": 3468, + "src": "998:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7920,18 +7920,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3327, + "id": 3481, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "1002:1:25", + "referencedDeclaration": 3463, + "src": "1002:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:5:25", + "src": "998:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7941,24 +7941,24 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3329, + "id": 3483, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "1007:1:25", + "referencedDeclaration": 3465, + "src": "1007:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:25", + "src": "998:10:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "988:20:25", + "src": "988:20:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7972,21 +7972,21 @@ "typeString": "bool" } ], - "id": 3322, + "id": 3476, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "980:7:25", + "referencedDeclaration": 4494, + "src": "980:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3332, + "id": 3486, "isConstant": false, "isLValue": false, "isPure": false, @@ -7994,20 +7994,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "980:29:25", + "src": "980:29:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3333, + "id": 3487, "nodeType": "ExpressionStatement", - "src": "980:29:25" + "src": "980:29:26" } ] }, "documentation": null, - "id": 3335, + "id": 3489, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8015,16 +8015,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 3312, + "id": 3466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3309, + "id": 3463, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "904:6:25", + "scope": 3489, + "src": "904:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8032,10 +8032,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3308, + "id": 3462, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "904:4:25", + "src": "904:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8046,11 +8046,11 @@ }, { "constant": false, - "id": 3311, + "id": 3465, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "912:6:25", + "scope": 3489, + "src": "912:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8058,10 +8058,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3310, + "id": 3464, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "912:4:25", + "src": "912:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8071,20 +8071,20 @@ "visibility": "internal" } ], - "src": "903:16:25" + "src": "903:16:26" }, "payable": false, "returnParameters": { - "id": 3315, + "id": 3469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3314, + "id": 3468, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "943:6:25", + "scope": 3489, + "src": "943:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8092,10 +8092,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3313, + "id": 3467, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "943:4:25", + "src": "943:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8105,19 +8105,19 @@ "visibility": "internal" } ], - "src": "942:8:25" + "src": "942:8:26" }, - "scope": 3358, - "src": "891:125:25", + "scope": 3512, + "src": "891:125:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3356, + "id": 3510, "nodeType": "Block", - "src": "1081:50:25", + "src": "1081:50:26", "statements": [ { "expression": { @@ -8129,19 +8129,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3347, + "id": 3501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3345, + "id": 3499, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1099:1:25", + "referencedDeclaration": 3493, + "src": "1099:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8152,14 +8152,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3346, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:1:25", + "src": "1103:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8167,7 +8167,7 @@ }, "value": "0" }, - "src": "1099:5:25", + "src": "1099:5:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8181,21 +8181,21 @@ "typeString": "bool" } ], - "id": 3344, + "id": 3498, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "1091:7:25", + "referencedDeclaration": 4494, + "src": "1091:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3348, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, @@ -8203,32 +8203,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:14:25", + "src": "1091:14:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3349, + "id": 3503, "nodeType": "ExpressionStatement", - "src": "1091:14:25" + "src": "1091:14:26" }, { "expression": { "argumentTypes": null, - "id": 3354, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3350, + "id": 3504, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3342, - "src": "1115:1:25", + "referencedDeclaration": 3496, + "src": "1115:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8242,19 +8242,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3353, + "id": 3507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3351, + "id": 3505, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "1119:1:25", + "referencedDeclaration": 3491, + "src": "1119:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8264,37 +8264,37 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3352, + "id": 3506, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1123:1:25", + "referencedDeclaration": 3493, + "src": "1123:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:5:25", + "src": "1119:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1115:9:25", + "src": "1115:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3355, + "id": 3509, "nodeType": "ExpressionStatement", - "src": "1115:9:25" + "src": "1115:9:26" } ] }, "documentation": null, - "id": 3357, + "id": 3511, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8302,16 +8302,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 3340, + "id": 3494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3337, + "id": 3491, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1034:6:25", + "scope": 3511, + "src": "1034:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8319,10 +8319,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3336, + "id": 3490, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1034:4:25", + "src": "1034:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8333,11 +8333,11 @@ }, { "constant": false, - "id": 3339, + "id": 3493, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1042:6:25", + "scope": 3511, + "src": "1042:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8345,10 +8345,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3338, + "id": 3492, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1042:4:25", + "src": "1042:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8358,20 +8358,20 @@ "visibility": "internal" } ], - "src": "1033:16:25" + "src": "1033:16:26" }, "payable": false, "returnParameters": { - "id": 3343, + "id": 3497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3342, + "id": 3496, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1073:6:25", + "scope": 3511, + "src": "1073:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8379,10 +8379,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3341, + "id": 3495, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1073:4:25", + "src": "1073:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8392,17 +8392,17 @@ "visibility": "internal" } ], - "src": "1072:8:25" + "src": "1072:8:26" }, - "scope": 3358, - "src": "1021:110:25", + "scope": 3512, + "src": "1021:110:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 3814, - "src": "636:497:25" + "scope": 3968, + "src": "636:497:26" }, { "baseContracts": [], @@ -8410,9 +8410,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3425, + "id": 3579, "linearizedBaseContracts": [ - 3425 + 3579 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", @@ -8420,7 +8420,7 @@ { "body": null, "documentation": null, - "id": 3363, + "id": 3517, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8428,23 +8428,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3359, + "id": 3513, "nodeType": "ParameterList", "parameters": [], - "src": "1445:2:25" + "src": "1445:2:26" }, "payable": false, "returnParameters": { - "id": 3362, + "id": 3516, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3361, + "id": 3515, "name": "", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "1473:4:25", + "scope": 3517, + "src": "1473:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8452,10 +8452,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3360, + "id": 3514, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1473:4:25", + "src": "1473:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8465,10 +8465,10 @@ "visibility": "internal" } ], - "src": "1472:6:25" + "src": "1472:6:26" }, - "scope": 3425, - "src": "1425:54:25", + "scope": 3579, + "src": "1425:54:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8476,7 +8476,7 @@ { "body": null, "documentation": null, - "id": 3370, + "id": 3524, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8484,16 +8484,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3366, + "id": 3520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3365, + "id": 3519, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1503:18:25", + "scope": 3524, + "src": "1503:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8501,10 +8501,10 @@ "typeString": "address" }, "typeName": { - "id": 3364, + "id": 3518, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1503:7:25", + "src": "1503:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8514,20 +8514,20 @@ "visibility": "internal" } ], - "src": "1502:20:25" + "src": "1502:20:26" }, "payable": false, "returnParameters": { - "id": 3369, + "id": 3523, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3368, + "id": 3522, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1548:12:25", + "scope": 3524, + "src": "1548:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8535,10 +8535,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3367, + "id": 3521, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:25", + "src": "1548:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8548,10 +8548,10 @@ "visibility": "internal" } ], - "src": "1547:14:25" + "src": "1547:14:26" }, - "scope": 3425, - "src": "1484:78:25", + "scope": 3579, + "src": "1484:78:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8559,7 +8559,7 @@ { "body": null, "documentation": null, - "id": 3379, + "id": 3533, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8567,16 +8567,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3375, + "id": 3529, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3372, + "id": 3526, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1586:18:25", + "scope": 3533, + "src": "1586:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8584,10 +8584,10 @@ "typeString": "address" }, "typeName": { - "id": 3371, + "id": 3525, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:25", + "src": "1586:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8598,11 +8598,11 @@ }, { "constant": false, - "id": 3374, + "id": 3528, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1606:15:25", + "scope": 3533, + "src": "1606:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8610,10 +8610,10 @@ "typeString": "address" }, "typeName": { - "id": 3373, + "id": 3527, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1606:7:25", + "src": "1606:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8623,20 +8623,20 @@ "visibility": "internal" } ], - "src": "1585:37:25" + "src": "1585:37:26" }, "payable": false, "returnParameters": { - "id": 3378, + "id": 3532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3377, + "id": 3531, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1648:14:25", + "scope": 3533, + "src": "1648:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8644,10 +8644,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3376, + "id": 3530, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1648:4:25", + "src": "1648:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8657,10 +8657,10 @@ "visibility": "internal" } ], - "src": "1647:16:25" + "src": "1647:16:26" }, - "scope": 3425, - "src": "1567:97:25", + "scope": 3579, + "src": "1567:97:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8668,7 +8668,7 @@ { "body": null, "documentation": null, - "id": 3388, + "id": 3542, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -8676,16 +8676,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3384, + "id": 3538, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3381, + "id": 3535, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1687:10:25", + "scope": 3542, + "src": "1687:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8693,10 +8693,10 @@ "typeString": "address" }, "typeName": { - "id": 3380, + "id": 3534, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:25", + "src": "1687:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8707,11 +8707,11 @@ }, { "constant": false, - "id": 3383, + "id": 3537, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1699:11:25", + "scope": 3542, + "src": "1699:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8719,10 +8719,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3382, + "id": 3536, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:25", + "src": "1699:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8732,20 +8732,20 @@ "visibility": "internal" } ], - "src": "1686:25:25" + "src": "1686:25:26" }, "payable": false, "returnParameters": { - "id": 3387, + "id": 3541, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3386, + "id": 3540, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1728:12:25", + "scope": 3542, + "src": "1728:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8753,10 +8753,10 @@ "typeString": "bool" }, "typeName": { - "id": 3385, + "id": 3539, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1728:4:25", + "src": "1728:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8766,10 +8766,10 @@ "visibility": "internal" } ], - "src": "1727:14:25" + "src": "1727:14:26" }, - "scope": 3425, - "src": "1669:73:25", + "scope": 3579, + "src": "1669:73:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -8777,7 +8777,7 @@ { "body": null, "documentation": null, - "id": 3397, + "id": 3551, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -8785,16 +8785,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3393, + "id": 3547, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3390, + "id": 3544, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1764:15:25", + "scope": 3551, + "src": "1764:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8802,10 +8802,10 @@ "typeString": "address" }, "typeName": { - "id": 3389, + "id": 3543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:25", + "src": "1764:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8816,11 +8816,11 @@ }, { "constant": false, - "id": 3392, + "id": 3546, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1781:11:25", + "scope": 3551, + "src": "1781:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8828,10 +8828,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3391, + "id": 3545, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:25", + "src": "1781:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8841,20 +8841,20 @@ "visibility": "internal" } ], - "src": "1763:30:25" + "src": "1763:30:26" }, "payable": false, "returnParameters": { - "id": 3396, + "id": 3550, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3395, + "id": 3549, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1810:12:25", + "scope": 3551, + "src": "1810:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8862,10 +8862,10 @@ "typeString": "bool" }, "typeName": { - "id": 3394, + "id": 3548, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1810:4:25", + "src": "1810:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8875,10 +8875,10 @@ "visibility": "internal" } ], - "src": "1809:14:25" + "src": "1809:14:26" }, - "scope": 3425, - "src": "1747:77:25", + "scope": 3579, + "src": "1747:77:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -8886,7 +8886,7 @@ { "body": null, "documentation": null, - "id": 3408, + "id": 3562, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -8894,16 +8894,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3404, + "id": 3558, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3399, + "id": 3553, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1851:12:25", + "scope": 3562, + "src": "1851:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8911,10 +8911,10 @@ "typeString": "address" }, "typeName": { - "id": 3398, + "id": 3552, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1851:7:25", + "src": "1851:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8925,11 +8925,11 @@ }, { "constant": false, - "id": 3401, + "id": 3555, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1865:10:25", + "scope": 3562, + "src": "1865:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8937,10 +8937,10 @@ "typeString": "address" }, "typeName": { - "id": 3400, + "id": 3554, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:25", + "src": "1865:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8951,11 +8951,11 @@ }, { "constant": false, - "id": 3403, + "id": 3557, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1877:11:25", + "scope": 3562, + "src": "1877:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8963,10 +8963,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3402, + "id": 3556, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1877:4:25", + "src": "1877:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8976,20 +8976,20 @@ "visibility": "internal" } ], - "src": "1850:39:25" + "src": "1850:39:26" }, "payable": false, "returnParameters": { - "id": 3407, + "id": 3561, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3406, + "id": 3560, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1906:12:25", + "scope": 3562, + "src": "1906:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8997,10 +8997,10 @@ "typeString": "bool" }, "typeName": { - "id": 3405, + "id": 3559, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1906:4:25", + "src": "1906:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9010,10 +9010,10 @@ "visibility": "internal" } ], - "src": "1905:14:25" + "src": "1905:14:26" }, - "scope": 3425, - "src": "1829:91:25", + "scope": 3579, + "src": "1829:91:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -9021,21 +9021,21 @@ { "anonymous": false, "documentation": null, - "id": 3416, + "id": 3570, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 3415, + "id": 3569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3410, + "id": 3564, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1941:20:25", + "scope": 3570, + "src": "1941:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9043,10 +9043,10 @@ "typeString": "address" }, "typeName": { - "id": 3409, + "id": 3563, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1941:7:25", + "src": "1941:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9057,12 +9057,12 @@ }, { "constant": false, - "id": 3412, + "id": 3566, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1963:18:25", + "scope": 3570, + "src": "1963:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9070,10 +9070,10 @@ "typeString": "address" }, "typeName": { - "id": 3411, + "id": 3565, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1963:7:25", + "src": "1963:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9084,12 +9084,12 @@ }, { "constant": false, - "id": 3414, + "id": 3568, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1983:11:25", + "scope": 3570, + "src": "1983:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9097,10 +9097,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3413, + "id": 3567, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:25", + "src": "1983:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9110,28 +9110,28 @@ "visibility": "internal" } ], - "src": "1940:55:25" + "src": "1940:55:26" }, - "src": "1926:70:25" + "src": "1926:70:26" }, { "anonymous": false, "documentation": null, - "id": 3424, + "id": 3578, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 3423, + "id": 3577, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3418, + "id": 3572, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2016:26:25", + "scope": 3578, + "src": "2016:26:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9139,10 +9139,10 @@ "typeString": "address" }, "typeName": { - "id": 3417, + "id": 3571, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2016:7:25", + "src": "2016:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9153,12 +9153,12 @@ }, { "constant": false, - "id": 3420, + "id": 3574, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2044:23:25", + "scope": 3578, + "src": "2044:23:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9166,10 +9166,10 @@ "typeString": "address" }, "typeName": { - "id": 3419, + "id": 3573, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2044:7:25", + "src": "2044:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9180,12 +9180,12 @@ }, { "constant": false, - "id": 3422, + "id": 3576, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2069:11:25", + "scope": 3578, + "src": "2069:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9193,10 +9193,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3421, + "id": 3575, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2069:4:25", + "src": "2069:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9206,13 +9206,13 @@ "visibility": "internal" } ], - "src": "2015:66:25" + "src": "2015:66:26" }, - "src": "2001:81:25" + "src": "2001:81:26" } ], - "scope": 3814, - "src": "1395:689:25" + "scope": 3968, + "src": "1395:689:26" }, { "baseContracts": [], @@ -9220,9 +9220,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3437, + "id": 3591, "linearizedBaseContracts": [ - 3437 + 3591 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", @@ -9230,7 +9230,7 @@ { "body": null, "documentation": null, - "id": 3436, + "id": 3590, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -9238,16 +9238,16 @@ "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 3434, + "id": 3588, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3427, + "id": 3581, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2416:12:25", + "scope": 3590, + "src": "2416:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9255,10 +9255,10 @@ "typeString": "address" }, "typeName": { - "id": 3426, + "id": 3580, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2416:7:25", + "src": "2416:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9269,11 +9269,11 @@ }, { "constant": false, - "id": 3429, + "id": 3583, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2430:14:25", + "scope": 3590, + "src": "2430:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9281,10 +9281,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3428, + "id": 3582, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2430:7:25", + "src": "2430:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9295,11 +9295,11 @@ }, { "constant": false, - "id": 3431, + "id": 3585, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2446:13:25", + "scope": 3590, + "src": "2446:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9307,10 +9307,10 @@ "typeString": "address" }, "typeName": { - "id": 3430, + "id": 3584, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2446:7:25", + "src": "2446:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9321,11 +9321,11 @@ }, { "constant": false, - "id": 3433, + "id": 3587, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2461:10:25", + "scope": 3590, + "src": "2461:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9333,10 +9333,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3432, + "id": 3586, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2461:5:25", + "src": "2461:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9346,24 +9346,24 @@ "visibility": "internal" } ], - "src": "2415:57:25" + "src": "2415:57:26" }, "payable": false, "returnParameters": { - "id": 3435, + "id": 3589, "nodeType": "ParameterList", "parameters": [], - "src": "2479:0:25" + "src": "2479:0:26" }, - "scope": 3437, - "src": "2391:89:25", + "scope": 3591, + "src": "2391:89:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2353:129:25" + "scope": 3968, + "src": "2353:129:26" }, { "baseContracts": [], @@ -9371,20 +9371,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3506, + "id": 3660, "linearizedBaseContracts": [ - 3506 + 3660 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 3439, + "id": 3593, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2684:20:25", + "scope": 3660, + "src": "2684:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -9392,10 +9392,10 @@ "typeString": "address" }, "typeName": { - "id": 3438, + "id": 3592, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2684:7:25", + "src": "2684:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9406,11 +9406,11 @@ }, { "constant": false, - "id": 3441, + "id": 3595, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2710:23:25", + "scope": 3660, + "src": "2710:23:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -9418,10 +9418,10 @@ "typeString": "address" }, "typeName": { - "id": 3440, + "id": 3594, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2710:7:25", + "src": "2710:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9433,21 +9433,21 @@ { "anonymous": false, "documentation": null, - "id": 3447, + "id": 3601, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 3446, + "id": 3600, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3443, + "id": 3597, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2767:21:25", + "scope": 3601, + "src": "2767:21:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9455,10 +9455,10 @@ "typeString": "address" }, "typeName": { - "id": 3442, + "id": 3596, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2767:7:25", + "src": "2767:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9469,12 +9469,12 @@ }, { "constant": false, - "id": 3445, + "id": 3599, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2790:19:25", + "scope": 3601, + "src": "2790:19:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9482,10 +9482,10 @@ "typeString": "address" }, "typeName": { - "id": 3444, + "id": 3598, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2790:7:25", + "src": "2790:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9495,32 +9495,32 @@ "visibility": "internal" } ], - "src": "2766:44:25" + "src": "2766:44:26" }, - "src": "2740:71:25" + "src": "2740:71:26" }, { "body": { - "id": 3455, + "id": 3609, "nodeType": "Block", - "src": "2838:35:25", + "src": "2838:35:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3453, + "id": 3607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3450, + "id": 3604, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2848:5:25", + "referencedDeclaration": 3593, + "src": "2848:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9532,18 +9532,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3451, + "id": 3605, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2856:3:25", + "referencedDeclaration": 4491, + "src": "2856:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3452, + "id": 3606, "isConstant": false, "isLValue": false, "isPure": false, @@ -9551,26 +9551,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2856:10:25", + "src": "2856:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2848:18:25", + "src": "2848:18:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3454, + "id": 3608, "nodeType": "ExpressionStatement", - "src": "2848:18:25" + "src": "2848:18:26" } ] }, "documentation": null, - "id": 3456, + "id": 3610, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -9578,29 +9578,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3448, + "id": 3602, "nodeType": "ParameterList", "parameters": [], - "src": "2828:2:25" + "src": "2828:2:26" }, "payable": false, "returnParameters": { - "id": 3449, + "id": 3603, "nodeType": "ParameterList", "parameters": [], - "src": "2838:0:25" + "src": "2838:0:26" }, - "scope": 3506, - "src": "2817:56:25", + "scope": 3660, + "src": "2817:56:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3466, + "id": 3620, "nodeType": "Block", - "src": "2898:56:25", + "src": "2898:56:26", "statements": [ { "expression": { @@ -9612,7 +9612,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3462, + "id": 3616, "isConstant": false, "isLValue": false, "isPure": false, @@ -9621,18 +9621,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3459, + "id": 3613, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2916:3:25", + "referencedDeclaration": 4491, + "src": "2916:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3460, + "id": 3614, "isConstant": false, "isLValue": false, "isPure": false, @@ -9640,7 +9640,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2916:10:25", + "src": "2916:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9650,18 +9650,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3461, + "id": 3615, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2930:5:25", + "referencedDeclaration": 3593, + "src": "2930:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2916:19:25", + "src": "2916:19:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9675,21 +9675,21 @@ "typeString": "bool" } ], - "id": 3458, + "id": 3612, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "2908:7:25", + "referencedDeclaration": 4494, + "src": "2908:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3463, + "id": 3617, "isConstant": false, "isLValue": false, "isPure": false, @@ -9697,58 +9697,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:28:25", + "src": "2908:28:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3464, + "id": 3618, "nodeType": "ExpressionStatement", - "src": "2908:28:25" + "src": "2908:28:26" }, { - "id": 3465, + "id": 3619, "nodeType": "PlaceholderStatement", - "src": "2946:1:25" + "src": "2946:1:26" } ] }, "documentation": null, - "id": 3467, + "id": 3621, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 3457, + "id": 3611, "nodeType": "ParameterList", "parameters": [], - "src": "2898:0:25" + "src": "2898:0:26" }, - "src": "2879:75:25", + "src": "2879:75:26", "visibility": "internal" }, { "body": { - "id": 3478, + "id": 3632, "nodeType": "Block", - "src": "3023:37:25", + "src": "3023:37:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3476, + "id": 3630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3474, + "id": 3628, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3033:8:25", + "referencedDeclaration": 3595, + "src": "3033:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9758,68 +9758,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3475, + "id": 3629, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3469, - "src": "3044:9:25", + "referencedDeclaration": 3623, + "src": "3044:9:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3033:20:25", + "src": "3033:20:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3477, + "id": 3631, "nodeType": "ExpressionStatement", - "src": "3033:20:25" + "src": "3033:20:26" } ] }, "documentation": null, - "id": 3479, + "id": 3633, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3472, + "id": 3626, "modifierName": { "argumentTypes": null, - "id": 3471, + "id": 3625, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3013:9:25", + "referencedDeclaration": 3621, + "src": "3013:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3013:9:25" + "src": "3013:9:26" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3470, + "id": 3624, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3469, + "id": 3623, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 3479, - "src": "2987:17:25", + "scope": 3633, + "src": "2987:17:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9827,10 +9827,10 @@ "typeString": "address" }, "typeName": { - "id": 3468, + "id": 3622, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2987:7:25", + "src": "2987:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9840,26 +9840,26 @@ "visibility": "internal" } ], - "src": "2986:19:25" + "src": "2986:19:26" }, "payable": false, "returnParameters": { - "id": 3473, + "id": 3627, "nodeType": "ParameterList", "parameters": [], - "src": "3023:0:25" + "src": "3023:0:26" }, - "scope": 3506, - "src": "2960:100:25", + "scope": 3660, + "src": "2960:100:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3504, + "id": 3658, "nodeType": "Block", - "src": "3099:157:25", + "src": "3099:157:26", "statements": [ { "expression": { @@ -9871,7 +9871,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3486, + "id": 3640, "isConstant": false, "isLValue": false, "isPure": false, @@ -9880,18 +9880,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3483, + "id": 3637, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "3117:3:25", + "referencedDeclaration": 4491, + "src": "3117:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3484, + "id": 3638, "isConstant": false, "isLValue": false, "isPure": false, @@ -9899,7 +9899,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3117:10:25", + "src": "3117:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9909,18 +9909,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3485, + "id": 3639, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3131:8:25", + "referencedDeclaration": 3595, + "src": "3131:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3117:22:25", + "src": "3117:22:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9934,21 +9934,21 @@ "typeString": "bool" } ], - "id": 3482, + "id": 3636, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "3109:7:25", + "referencedDeclaration": 4494, + "src": "3109:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3487, + "id": 3641, "isConstant": false, "isLValue": false, "isPure": false, @@ -9956,15 +9956,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3109:31:25", + "src": "3109:31:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3488, + "id": 3642, "nodeType": "ExpressionStatement", - "src": "3109:31:25" + "src": "3109:31:26" }, { "eventCall": { @@ -9972,12 +9972,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3490, + "id": 3644, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3176:5:25", + "referencedDeclaration": 3593, + "src": "3176:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9985,12 +9985,12 @@ }, { "argumentTypes": null, - "id": 3491, + "id": 3645, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3183:8:25", + "referencedDeclaration": 3595, + "src": "3183:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10008,18 +10008,18 @@ "typeString": "address" } ], - "id": 3489, + "id": 3643, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3447, - "src": "3155:20:25", + "referencedDeclaration": 3601, + "src": "3155:20:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 3492, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, @@ -10027,32 +10027,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3155:37:25", + "src": "3155:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3493, + "id": 3647, "nodeType": "EmitStatement", - "src": "3150:42:25" + "src": "3150:42:26" }, { "expression": { "argumentTypes": null, - "id": 3496, + "id": 3650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3494, + "id": 3648, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3202:5:25", + "referencedDeclaration": 3593, + "src": "3202:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10062,43 +10062,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3495, + "id": 3649, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3210:8:25", + "referencedDeclaration": 3595, + "src": "3210:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3202:16:25", + "src": "3202:16:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3497, + "id": 3651, "nodeType": "ExpressionStatement", - "src": "3202:16:25" + "src": "3202:16:26" }, { "expression": { "argumentTypes": null, - "id": 3502, + "id": 3656, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3498, + "id": 3652, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3228:8:25", + "referencedDeclaration": 3595, + "src": "3228:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10112,14 +10112,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3500, + "id": 3654, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3247:1:25", + "src": "3247:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10135,20 +10135,20 @@ "typeString": "int_const 0" } ], - "id": 3499, + "id": 3653, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:25", + "src": "3239:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3501, + "id": 3655, "isConstant": false, "isLValue": false, "isPure": true, @@ -10156,26 +10156,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3239:10:25", + "src": "3239:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3228:21:25", + "src": "3228:21:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3503, + "id": 3657, "nodeType": "ExpressionStatement", - "src": "3228:21:25" + "src": "3228:21:26" } ] }, "documentation": null, - "id": 3505, + "id": 3659, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -10183,27 +10183,27 @@ "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3480, + "id": 3634, "nodeType": "ParameterList", "parameters": [], - "src": "3089:2:25" + "src": "3089:2:26" }, "payable": false, "returnParameters": { - "id": 3481, + "id": 3635, "nodeType": "ParameterList", "parameters": [], - "src": "3099:0:25" + "src": "3099:0:26" }, - "scope": 3506, - "src": "3065:191:25", + "scope": 3660, + "src": "3065:191:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2663:595:25" + "scope": 3968, + "src": "2663:595:26" }, { "baseContracts": [ @@ -10211,76 +10211,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3507, + "id": 3661, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3425, - "src": "3528:14:25", + "referencedDeclaration": 3579, + "src": "3528:14:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3508, + "id": 3662, "nodeType": "InheritanceSpecifier", - "src": "3528:14:25" + "src": "3528:14:26" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3509, + "id": 3663, "name": "Owned", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3506, - "src": "3544:5:25", + "referencedDeclaration": 3660, + "src": "3544:5:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3506", + "typeIdentifier": "t_contract$_Owned_$3660", "typeString": "contract Owned" } }, - "id": 3510, + "id": 3664, "nodeType": "InheritanceSpecifier", - "src": "3544:5:25" + "src": "3544:5:26" } ], "contractDependencies": [ - 3425, - 3506 + 3579, + 3660 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3813, + "id": 3967, "linearizedBaseContracts": [ - 3813, - 3506, - 3425 + 3967, + 3660, + 3579 ], "name": "TestToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3513, + "id": 3667, "libraryName": { "contractScope": null, - "id": 3511, + "id": 3665, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3358, - "src": "3562:8:25", + "referencedDeclaration": 3512, + "src": "3562:8:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeIdentifier": "t_contract$_SafeMath_$3512", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3556:24:25", + "src": "3556:24:26", "typeName": { - "id": 3512, + "id": 3666, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3575:4:25", + "src": "3575:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10289,11 +10289,11 @@ }, { "constant": false, - "id": 3515, + "id": 3669, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3586:20:25", + "scope": 3967, + "src": "3586:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10301,10 +10301,10 @@ "typeString": "string" }, "typeName": { - "id": 3514, + "id": 3668, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3586:6:25", + "src": "3586:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -10315,11 +10315,11 @@ }, { "constant": false, - "id": 3517, + "id": 3671, "name": "name", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3612:19:25", + "scope": 3967, + "src": "3612:19:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10327,10 +10327,10 @@ "typeString": "string" }, "typeName": { - "id": 3516, + "id": 3670, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3612:6:25", + "src": "3612:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -10341,11 +10341,11 @@ }, { "constant": false, - "id": 3519, + "id": 3673, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3637:21:25", + "scope": 3967, + "src": "3637:21:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10353,10 +10353,10 @@ "typeString": "uint8" }, "typeName": { - "id": 3518, + "id": 3672, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3637:5:25", + "src": "3637:5:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10367,11 +10367,11 @@ }, { "constant": false, - "id": 3521, + "id": 3675, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3664:17:25", + "scope": 3967, + "src": "3664:17:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10379,10 +10379,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3520, + "id": 3674, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3664:4:25", + "src": "3664:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10393,11 +10393,11 @@ }, { "constant": false, - "id": 3525, + "id": 3679, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3688:33:25", + "scope": 3967, + "src": "3688:33:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10405,28 +10405,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 3524, + "id": 3678, "keyType": { - "id": 3522, + "id": 3676, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3696:7:25", + "src": "3696:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3688:24:25", + "src": "3688:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3523, + "id": 3677, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3707:4:25", + "src": "3707:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10438,11 +10438,11 @@ }, { "constant": false, - "id": 3531, + "id": 3685, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3727:52:25", + "scope": 3967, + "src": "3727:52:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10450,46 +10450,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 3530, + "id": 3684, "keyType": { - "id": 3526, + "id": 3680, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3735:7:25", + "src": "3735:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3727:44:25", + "src": "3727:44:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 3529, + "id": 3683, "keyType": { - "id": 3527, + "id": 3681, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3754:7:25", + "src": "3754:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3746:24:25", + "src": "3746:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3528, + "id": 3682, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3765:4:25", + "src": "3765:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10502,26 +10502,26 @@ }, { "body": { - "id": 3570, + "id": 3724, "nodeType": "Block", - "src": "3987:235:25", + "src": "3987:235:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3536, + "id": 3690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3534, + "id": 3688, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3997:6:25", + "referencedDeclaration": 3669, + "src": "3997:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -10532,14 +10532,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "544b4e", - "id": 3535, + "id": 3689, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4006:5:25", + "src": "4006:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", @@ -10547,32 +10547,32 @@ }, "value": "TKN" }, - "src": "3997:14:25", + "src": "3997:14:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3537, + "id": 3691, "nodeType": "ExpressionStatement", - "src": "3997:14:25" + "src": "3997:14:26" }, { "expression": { "argumentTypes": null, - "id": 3540, + "id": 3694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3538, + "id": 3692, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3517, - "src": "4021:4:25", + "referencedDeclaration": 3671, + "src": "4021:4:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -10583,14 +10583,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "546f6b656e204578616d706c65", - "id": 3539, + "id": 3693, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4028:15:25", + "src": "4028:15:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", @@ -10598,32 +10598,32 @@ }, "value": "Token Example" }, - "src": "4021:22:25", + "src": "4021:22:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3541, + "id": 3695, "nodeType": "ExpressionStatement", - "src": "4021:22:25" + "src": "4021:22:26" }, { "expression": { "argumentTypes": null, - "id": 3544, + "id": 3698, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3542, + "id": 3696, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4053:8:25", + "referencedDeclaration": 3673, + "src": "4053:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10634,14 +10634,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3138", - "id": 3543, + "id": 3697, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4064:2:25", + "src": "4064:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -10649,32 +10649,32 @@ }, "value": "18" }, - "src": "4053:13:25", + "src": "4053:13:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 3545, + "id": 3699, "nodeType": "ExpressionStatement", - "src": "4053:13:25" + "src": "4053:13:26" }, { "expression": { "argumentTypes": null, - "id": 3554, + "id": 3708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3546, + "id": 3700, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4076:12:25", + "referencedDeclaration": 3675, + "src": "4076:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10688,7 +10688,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3553, + "id": 3707, "isConstant": false, "isLValue": false, "isPure": false, @@ -10696,14 +10696,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 3547, + "id": 3701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4091:7:25", + "src": "4091:7:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -10719,7 +10719,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3552, + "id": 3706, "isConstant": false, "isLValue": false, "isPure": false, @@ -10727,14 +10727,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 3548, + "id": 3702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4101:2:25", + "src": "4101:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -10749,12 +10749,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3550, + "id": 3704, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4110:8:25", + "referencedDeclaration": 3673, + "src": "4110:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10768,20 +10768,20 @@ "typeString": "uint8" } ], - "id": 3549, + "id": 3703, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:25", + "src": "4105:4:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 3551, + "id": 3705, "isConstant": false, "isLValue": false, "isPure": false, @@ -10789,38 +10789,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4105:14:25", + "src": "4105:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4101:18:25", + "src": "4101:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4091:28:25", + "src": "4091:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4076:43:25", + "src": "4076:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3555, + "id": 3709, "nodeType": "ExpressionStatement", - "src": "4076:43:25" + "src": "4076:43:26" }, { "expression": { "argumentTypes": null, - "id": 3560, + "id": 3714, "isConstant": false, "isLValue": false, "isPure": false, @@ -10829,26 +10829,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3556, + "id": 3710, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4129:8:25", + "referencedDeclaration": 3679, + "src": "4129:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3558, + "id": 3712, "indexExpression": { "argumentTypes": null, - "id": 3557, + "id": 3711, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4138:5:25", + "referencedDeclaration": 3593, + "src": "4138:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10859,7 +10859,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4129:15:25", + "src": "4129:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10869,26 +10869,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3559, + "id": 3713, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4147:12:25", + "referencedDeclaration": 3675, + "src": "4147:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4129:30:25", + "src": "4129:30:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3561, + "id": 3715, "nodeType": "ExpressionStatement", - "src": "4129:30:25" + "src": "4129:30:26" }, { "eventCall": { @@ -10900,14 +10900,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3564, + "id": 3718, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4191:1:25", + "src": "4191:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10923,20 +10923,20 @@ "typeString": "int_const 0" } ], - "id": 3563, + "id": 3717, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:25", + "src": "4183:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3565, + "id": 3719, "isConstant": false, "isLValue": false, "isPure": true, @@ -10944,7 +10944,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4183:10:25", + "src": "4183:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10952,12 +10952,12 @@ }, { "argumentTypes": null, - "id": 3566, + "id": 3720, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4195:5:25", + "referencedDeclaration": 3593, + "src": "4195:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10965,12 +10965,12 @@ }, { "argumentTypes": null, - "id": 3567, + "id": 3721, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4202:12:25", + "referencedDeclaration": 3675, + "src": "4202:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10992,18 +10992,18 @@ "typeString": "uint256" } ], - "id": 3562, + "id": 3716, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "4174:8:25", + "referencedDeclaration": 3570, + "src": "4174:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3568, + "id": 3722, "isConstant": false, "isLValue": false, "isPure": false, @@ -11011,20 +11011,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4174:41:25", + "src": "4174:41:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3569, + "id": 3723, "nodeType": "EmitStatement", - "src": "4169:46:25" + "src": "4169:46:26" } ] }, "documentation": null, - "id": 3571, + "id": 3725, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -11032,29 +11032,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3532, + "id": 3686, "nodeType": "ParameterList", "parameters": [], - "src": "3977:2:25" + "src": "3977:2:26" }, "payable": false, "returnParameters": { - "id": 3533, + "id": 3687, "nodeType": "ParameterList", "parameters": [], - "src": "3987:0:25" + "src": "3987:0:26" }, - "scope": 3813, - "src": "3966:256:25", + "scope": 3967, + "src": "3966:256:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3585, + "id": 3739, "nodeType": "Block", - "src": "4459:62:25", + "src": "4459:62:26", "statements": [ { "expression": { @@ -11064,32 +11064,32 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3578, + "id": 3732, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4493:8:25", + "referencedDeclaration": 3679, + "src": "4493:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3582, + "id": 3736, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 3580, + "id": 3734, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4510:1:25", + "src": "4510:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11105,20 +11105,20 @@ "typeString": "int_const 0" } ], - "id": 3579, + "id": 3733, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:25", + "src": "4502:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3581, + "id": 3735, "isConstant": false, "isLValue": false, "isPure": true, @@ -11126,7 +11126,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4502:10:25", + "src": "4502:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11137,7 +11137,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4493:20:25", + "src": "4493:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11153,32 +11153,32 @@ ], "expression": { "argumentTypes": null, - "id": 3576, + "id": 3730, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4476:12:25", + "referencedDeclaration": 3675, + "src": "4476:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3577, + "id": 3731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "4476:16:25", + "referencedDeclaration": 3461, + "src": "4476:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3583, + "id": 3737, "isConstant": false, "isLValue": false, "isPure": false, @@ -11186,21 +11186,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4476:38:25", + "src": "4476:38:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3575, - "id": 3584, + "functionReturnParameters": 3729, + "id": 3738, "nodeType": "Return", - "src": "4469:45:25" + "src": "4469:45:26" } ] }, "documentation": null, - "id": 3586, + "id": 3740, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11208,23 +11208,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3572, + "id": 3726, "nodeType": "ParameterList", "parameters": [], - "src": "4429:2:25" + "src": "4429:2:26" }, "payable": false, "returnParameters": { - "id": 3575, + "id": 3729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3574, + "id": 3728, "name": "", "nodeType": "VariableDeclaration", - "scope": 3586, - "src": "4453:4:25", + "scope": 3740, + "src": "4453:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11232,10 +11232,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3573, + "id": 3727, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4453:4:25", + "src": "4453:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11245,45 +11245,45 @@ "visibility": "internal" } ], - "src": "4452:6:25" + "src": "4452:6:26" }, - "scope": 3813, - "src": "4409:112:25", + "scope": 3967, + "src": "4409:112:26", "stateMutability": "view", - "superFunction": 3363, + "superFunction": 3517, "visibility": "public" }, { "body": { - "id": 3597, + "id": 3751, "nodeType": "Block", - "src": "4816:44:25", + "src": "4816:44:26", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3593, + "id": 3747, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4833:8:25", + "referencedDeclaration": 3679, + "src": "4833:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3595, + "id": 3749, "indexExpression": { "argumentTypes": null, - "id": 3594, + "id": 3748, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3588, - "src": "4842:10:25", + "referencedDeclaration": 3742, + "src": "4842:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11294,21 +11294,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4833:20:25", + "src": "4833:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3592, - "id": 3596, + "functionReturnParameters": 3746, + "id": 3750, "nodeType": "Return", - "src": "4826:27:25" + "src": "4826:27:26" } ] }, "documentation": null, - "id": 3598, + "id": 3752, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11316,16 +11316,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3589, + "id": 3743, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3588, + "id": 3742, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4761:18:25", + "scope": 3752, + "src": "4761:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11333,10 +11333,10 @@ "typeString": "address" }, "typeName": { - "id": 3587, + "id": 3741, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4761:7:25", + "src": "4761:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11346,20 +11346,20 @@ "visibility": "internal" } ], - "src": "4760:20:25" + "src": "4760:20:26" }, "payable": false, "returnParameters": { - "id": 3592, + "id": 3746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3591, + "id": 3745, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4802:12:25", + "scope": 3752, + "src": "4802:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11367,10 +11367,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3590, + "id": 3744, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4802:4:25", + "src": "4802:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11380,24 +11380,24 @@ "visibility": "internal" } ], - "src": "4801:14:25" + "src": "4801:14:26" }, - "scope": 3813, - "src": "4742:118:25", + "scope": 3967, + "src": "4742:118:26", "stateMutability": "view", - "superFunction": 3370, + "superFunction": 3524, "visibility": "public" }, { "body": { - "id": 3640, + "id": 3794, "nodeType": "Block", - "src": "5276:189:25", + "src": "5276:189:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3618, + "id": 3772, "isConstant": false, "isLValue": false, "isPure": false, @@ -11406,34 +11406,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3607, + "id": 3761, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5286:8:25", + "referencedDeclaration": 3679, + "src": "5286:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3610, + "id": 3764, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3608, + "id": 3762, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5295:3:25", + "referencedDeclaration": 4491, + "src": "5295:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3609, + "id": 3763, "isConstant": false, "isLValue": false, "isPure": false, @@ -11441,7 +11441,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5295:10:25", + "src": "5295:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11452,7 +11452,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5286:20:25", + "src": "5286:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11465,12 +11465,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3616, + "id": 3770, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5334:6:25", + "referencedDeclaration": 3756, + "src": "5334:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11488,34 +11488,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3611, + "id": 3765, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5309:8:25", + "referencedDeclaration": 3679, + "src": "5309:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3614, + "id": 3768, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3612, + "id": 3766, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5318:3:25", + "referencedDeclaration": 4491, + "src": "5318:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3613, + "id": 3767, "isConstant": false, "isLValue": false, "isPure": false, @@ -11523,7 +11523,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5318:10:25", + "src": "5318:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11534,27 +11534,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5309:20:25", + "src": "5309:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3615, + "id": 3769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "5309:24:25", + "referencedDeclaration": 3461, + "src": "5309:24:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3617, + "id": 3771, "isConstant": false, "isLValue": false, "isPure": false, @@ -11562,26 +11562,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5309:32:25", + "src": "5309:32:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5286:55:25", + "src": "5286:55:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3619, + "id": 3773, "nodeType": "ExpressionStatement", - "src": "5286:55:25" + "src": "5286:55:26" }, { "expression": { "argumentTypes": null, - "id": 3629, + "id": 3783, "isConstant": false, "isLValue": false, "isPure": false, @@ -11590,26 +11590,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3620, + "id": 3774, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5351:8:25", + "referencedDeclaration": 3679, + "src": "5351:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3622, + "id": 3776, "indexExpression": { "argumentTypes": null, - "id": 3621, + "id": 3775, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5360:2:25", + "referencedDeclaration": 3754, + "src": "5360:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11620,7 +11620,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5351:12:25", + "src": "5351:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11633,12 +11633,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3627, + "id": 3781, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5383:6:25", + "referencedDeclaration": 3756, + "src": "5383:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11656,26 +11656,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3623, + "id": 3777, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5366:8:25", + "referencedDeclaration": 3679, + "src": "5366:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3625, + "id": 3779, "indexExpression": { "argumentTypes": null, - "id": 3624, + "id": 3778, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5375:2:25", + "referencedDeclaration": 3754, + "src": "5375:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11686,27 +11686,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5366:12:25", + "src": "5366:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3626, + "id": 3780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "5366:16:25", + "referencedDeclaration": 3439, + "src": "5366:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3628, + "id": 3782, "isConstant": false, "isLValue": false, "isPure": false, @@ -11714,21 +11714,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5366:24:25", + "src": "5366:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5351:39:25", + "src": "5351:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3630, + "id": 3784, "nodeType": "ExpressionStatement", - "src": "5351:39:25" + "src": "5351:39:26" }, { "eventCall": { @@ -11738,18 +11738,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3632, + "id": 3786, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5414:3:25", + "referencedDeclaration": 4491, + "src": "5414:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3633, + "id": 3787, "isConstant": false, "isLValue": false, "isPure": false, @@ -11757,7 +11757,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:25", + "src": "5414:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11765,12 +11765,12 @@ }, { "argumentTypes": null, - "id": 3634, + "id": 3788, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5426:2:25", + "referencedDeclaration": 3754, + "src": "5426:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11778,12 +11778,12 @@ }, { "argumentTypes": null, - "id": 3635, + "id": 3789, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5430:6:25", + "referencedDeclaration": 3756, + "src": "5430:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11805,18 +11805,18 @@ "typeString": "uint256" } ], - "id": 3631, + "id": 3785, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5405:8:25", + "referencedDeclaration": 3570, + "src": "5405:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3636, + "id": 3790, "isConstant": false, "isLValue": false, "isPure": false, @@ -11824,28 +11824,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5405:32:25", + "src": "5405:32:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3637, + "id": 3791, "nodeType": "EmitStatement", - "src": "5400:37:25" + "src": "5400:37:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3638, + "id": 3792, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5454:4:25", + "src": "5454:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11853,15 +11853,15 @@ }, "value": "true" }, - "functionReturnParameters": 3606, - "id": 3639, + "functionReturnParameters": 3760, + "id": 3793, "nodeType": "Return", - "src": "5447:11:25" + "src": "5447:11:26" } ] }, "documentation": null, - "id": 3641, + "id": 3795, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -11869,16 +11869,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3603, + "id": 3757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3600, + "id": 3754, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5221:10:25", + "scope": 3795, + "src": "5221:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11886,10 +11886,10 @@ "typeString": "address" }, "typeName": { - "id": 3599, + "id": 3753, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5221:7:25", + "src": "5221:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11900,11 +11900,11 @@ }, { "constant": false, - "id": 3602, + "id": 3756, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5233:11:25", + "scope": 3795, + "src": "5233:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11912,10 +11912,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3601, + "id": 3755, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5233:4:25", + "src": "5233:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11925,20 +11925,20 @@ "visibility": "internal" } ], - "src": "5220:25:25" + "src": "5220:25:26" }, "payable": false, "returnParameters": { - "id": 3606, + "id": 3760, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3605, + "id": 3759, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5262:12:25", + "scope": 3795, + "src": "5262:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11946,10 +11946,10 @@ "typeString": "bool" }, "typeName": { - "id": 3604, + "id": 3758, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5262:4:25", + "src": "5262:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11959,24 +11959,24 @@ "visibility": "internal" } ], - "src": "5261:14:25" + "src": "5261:14:26" }, - "scope": 3813, - "src": "5203:262:25", + "scope": 3967, + "src": "5203:262:26", "stateMutability": "nonpayable", - "superFunction": 3388, + "superFunction": 3542, "visibility": "public" }, { "body": { - "id": 3668, + "id": 3822, "nodeType": "Block", - "src": "6048:127:25", + "src": "6048:127:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3657, + "id": 3811, "isConstant": false, "isLValue": false, "isPure": false, @@ -11987,34 +11987,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3650, + "id": 3804, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6058:7:25", + "referencedDeclaration": 3685, + "src": "6058:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3654, + "id": 3808, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3651, + "id": 3805, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6066:3:25", + "referencedDeclaration": 4491, + "src": "6066:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3652, + "id": 3806, "isConstant": false, "isLValue": false, "isPure": false, @@ -12022,7 +12022,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6066:10:25", + "src": "6066:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12033,21 +12033,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6058:19:25", + "src": "6058:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3655, + "id": 3809, "indexExpression": { "argumentTypes": null, - "id": 3653, + "id": 3807, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6078:7:25", + "referencedDeclaration": 3797, + "src": "6078:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12058,7 +12058,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6058:28:25", + "src": "6058:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12068,26 +12068,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3656, + "id": 3810, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6089:6:25", + "referencedDeclaration": 3799, + "src": "6089:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6058:37:25", + "src": "6058:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3658, + "id": 3812, "nodeType": "ExpressionStatement", - "src": "6058:37:25" + "src": "6058:37:26" }, { "eventCall": { @@ -12097,18 +12097,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3660, + "id": 3814, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6119:3:25", + "referencedDeclaration": 4491, + "src": "6119:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3661, + "id": 3815, "isConstant": false, "isLValue": false, "isPure": false, @@ -12116,7 +12116,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6119:10:25", + "src": "6119:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12124,12 +12124,12 @@ }, { "argumentTypes": null, - "id": 3662, + "id": 3816, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6131:7:25", + "referencedDeclaration": 3797, + "src": "6131:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12137,12 +12137,12 @@ }, { "argumentTypes": null, - "id": 3663, + "id": 3817, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6140:6:25", + "referencedDeclaration": 3799, + "src": "6140:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12164,18 +12164,18 @@ "typeString": "uint256" } ], - "id": 3659, + "id": 3813, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "6110:8:25", + "referencedDeclaration": 3578, + "src": "6110:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3664, + "id": 3818, "isConstant": false, "isLValue": false, "isPure": false, @@ -12183,28 +12183,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6110:37:25", + "src": "6110:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3665, + "id": 3819, "nodeType": "EmitStatement", - "src": "6105:42:25" + "src": "6105:42:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3666, + "id": 3820, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6164:4:25", + "src": "6164:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12212,15 +12212,15 @@ }, "value": "true" }, - "functionReturnParameters": 3649, - "id": 3667, + "functionReturnParameters": 3803, + "id": 3821, "nodeType": "Return", - "src": "6157:11:25" + "src": "6157:11:26" } ] }, "documentation": null, - "id": 3669, + "id": 3823, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12228,16 +12228,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3646, + "id": 3800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3643, + "id": 3797, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "5988:15:25", + "scope": 3823, + "src": "5988:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12245,10 +12245,10 @@ "typeString": "address" }, "typeName": { - "id": 3642, + "id": 3796, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5988:7:25", + "src": "5988:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12259,11 +12259,11 @@ }, { "constant": false, - "id": 3645, + "id": 3799, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6005:11:25", + "scope": 3823, + "src": "6005:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12271,10 +12271,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3644, + "id": 3798, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6005:4:25", + "src": "6005:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12284,20 +12284,20 @@ "visibility": "internal" } ], - "src": "5987:30:25" + "src": "5987:30:26" }, "payable": false, "returnParameters": { - "id": 3649, + "id": 3803, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3648, + "id": 3802, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6034:12:25", + "scope": 3823, + "src": "6034:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12305,10 +12305,10 @@ "typeString": "bool" }, "typeName": { - "id": 3647, + "id": 3801, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6034:4:25", + "src": "6034:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12318,24 +12318,24 @@ "visibility": "internal" } ], - "src": "6033:14:25" + "src": "6033:14:26" }, - "scope": 3813, - "src": "5971:204:25", + "scope": 3967, + "src": "5971:204:26", "stateMutability": "nonpayable", - "superFunction": 3397, + "superFunction": 3551, "visibility": "public" }, { "body": { - "id": 3727, + "id": 3881, "nodeType": "Block", - "src": "6798:246:25", + "src": "6798:246:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3689, + "id": 3843, "isConstant": false, "isLValue": false, "isPure": false, @@ -12344,26 +12344,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3680, + "id": 3834, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6808:8:25", + "referencedDeclaration": 3679, + "src": "6808:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3682, + "id": 3836, "indexExpression": { "argumentTypes": null, - "id": 3681, + "id": 3835, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6817:4:25", + "referencedDeclaration": 3825, + "src": "6817:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12374,7 +12374,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6808:14:25", + "src": "6808:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12387,12 +12387,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3687, + "id": 3841, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6844:6:25", + "referencedDeclaration": 3829, + "src": "6844:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12410,26 +12410,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3683, + "id": 3837, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6825:8:25", + "referencedDeclaration": 3679, + "src": "6825:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3685, + "id": 3839, "indexExpression": { "argumentTypes": null, - "id": 3684, + "id": 3838, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6834:4:25", + "referencedDeclaration": 3825, + "src": "6834:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12440,27 +12440,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6825:14:25", + "src": "6825:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3686, + "id": 3840, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6825:18:25", + "referencedDeclaration": 3461, + "src": "6825:18:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3688, + "id": 3842, "isConstant": false, "isLValue": false, "isPure": false, @@ -12468,26 +12468,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6825:26:25", + "src": "6825:26:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6808:43:25", + "src": "6808:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3690, + "id": 3844, "nodeType": "ExpressionStatement", - "src": "6808:43:25" + "src": "6808:43:26" }, { "expression": { "argumentTypes": null, - "id": 3706, + "id": 3860, "isConstant": false, "isLValue": false, "isPure": false, @@ -12498,26 +12498,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3691, + "id": 3845, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6861:7:25", + "referencedDeclaration": 3685, + "src": "6861:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3695, + "id": 3849, "indexExpression": { "argumentTypes": null, - "id": 3692, + "id": 3846, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6869:4:25", + "referencedDeclaration": 3825, + "src": "6869:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12528,29 +12528,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6861:13:25", + "src": "6861:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3696, + "id": 3850, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3693, + "id": 3847, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6875:3:25", + "referencedDeclaration": 4491, + "src": "6875:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3694, + "id": 3848, "isConstant": false, "isLValue": false, "isPure": false, @@ -12558,7 +12558,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6875:10:25", + "src": "6875:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12569,7 +12569,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6861:25:25", + "src": "6861:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12582,12 +12582,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3704, + "id": 3858, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6919:6:25", + "referencedDeclaration": 3829, + "src": "6919:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12607,26 +12607,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3697, + "id": 3851, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6889:7:25", + "referencedDeclaration": 3685, + "src": "6889:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3699, + "id": 3853, "indexExpression": { "argumentTypes": null, - "id": 3698, + "id": 3852, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6897:4:25", + "referencedDeclaration": 3825, + "src": "6897:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12637,29 +12637,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:13:25", + "src": "6889:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3702, + "id": 3856, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3700, + "id": 3854, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6903:3:25", + "referencedDeclaration": 4491, + "src": "6903:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3701, + "id": 3855, "isConstant": false, "isLValue": false, "isPure": false, @@ -12667,7 +12667,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6903:10:25", + "src": "6903:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12678,27 +12678,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:25:25", + "src": "6889:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3703, + "id": 3857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6889:29:25", + "referencedDeclaration": 3461, + "src": "6889:29:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3705, + "id": 3859, "isConstant": false, "isLValue": false, "isPure": false, @@ -12706,26 +12706,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6889:37:25", + "src": "6889:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6861:65:25", + "src": "6861:65:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3707, + "id": 3861, "nodeType": "ExpressionStatement", - "src": "6861:65:25" + "src": "6861:65:26" }, { "expression": { "argumentTypes": null, - "id": 3717, + "id": 3871, "isConstant": false, "isLValue": false, "isPure": false, @@ -12734,26 +12734,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3708, + "id": 3862, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6936:8:25", + "referencedDeclaration": 3679, + "src": "6936:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3710, + "id": 3864, "indexExpression": { "argumentTypes": null, - "id": 3709, + "id": 3863, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6945:2:25", + "referencedDeclaration": 3827, + "src": "6945:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12764,7 +12764,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6936:12:25", + "src": "6936:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12777,12 +12777,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3715, + "id": 3869, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6968:6:25", + "referencedDeclaration": 3829, + "src": "6968:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12800,26 +12800,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3711, + "id": 3865, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6951:8:25", + "referencedDeclaration": 3679, + "src": "6951:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3713, + "id": 3867, "indexExpression": { "argumentTypes": null, - "id": 3712, + "id": 3866, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6960:2:25", + "referencedDeclaration": 3827, + "src": "6960:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12830,27 +12830,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6951:12:25", + "src": "6951:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3714, + "id": 3868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "6951:16:25", + "referencedDeclaration": 3439, + "src": "6951:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3716, + "id": 3870, "isConstant": false, "isLValue": false, "isPure": false, @@ -12858,21 +12858,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6951:24:25", + "src": "6951:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6936:39:25", + "src": "6936:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3718, + "id": 3872, "nodeType": "ExpressionStatement", - "src": "6936:39:25" + "src": "6936:39:26" }, { "eventCall": { @@ -12880,12 +12880,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3720, + "id": 3874, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6999:4:25", + "referencedDeclaration": 3825, + "src": "6999:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12893,12 +12893,12 @@ }, { "argumentTypes": null, - "id": 3721, + "id": 3875, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "7005:2:25", + "referencedDeclaration": 3827, + "src": "7005:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12906,12 +12906,12 @@ }, { "argumentTypes": null, - "id": 3722, + "id": 3876, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "7009:6:25", + "referencedDeclaration": 3829, + "src": "7009:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12933,18 +12933,18 @@ "typeString": "uint256" } ], - "id": 3719, + "id": 3873, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "6990:8:25", + "referencedDeclaration": 3570, + "src": "6990:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3723, + "id": 3877, "isConstant": false, "isLValue": false, "isPure": false, @@ -12952,28 +12952,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6990:26:25", + "src": "6990:26:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3724, + "id": 3878, "nodeType": "EmitStatement", - "src": "6985:31:25" + "src": "6985:31:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3725, + "id": 3879, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7033:4:25", + "src": "7033:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12981,15 +12981,15 @@ }, "value": "true" }, - "functionReturnParameters": 3679, - "id": 3726, + "functionReturnParameters": 3833, + "id": 3880, "nodeType": "Return", - "src": "7026:11:25" + "src": "7026:11:26" } ] }, "documentation": null, - "id": 3728, + "id": 3882, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12997,16 +12997,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3676, + "id": 3830, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3671, + "id": 3825, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6729:12:25", + "scope": 3882, + "src": "6729:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13014,10 +13014,10 @@ "typeString": "address" }, "typeName": { - "id": 3670, + "id": 3824, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6729:7:25", + "src": "6729:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13028,11 +13028,11 @@ }, { "constant": false, - "id": 3673, + "id": 3827, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6743:10:25", + "scope": 3882, + "src": "6743:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13040,10 +13040,10 @@ "typeString": "address" }, "typeName": { - "id": 3672, + "id": 3826, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6743:7:25", + "src": "6743:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13054,11 +13054,11 @@ }, { "constant": false, - "id": 3675, + "id": 3829, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6755:11:25", + "scope": 3882, + "src": "6755:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13066,10 +13066,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3674, + "id": 3828, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6755:4:25", + "src": "6755:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13079,20 +13079,20 @@ "visibility": "internal" } ], - "src": "6728:39:25" + "src": "6728:39:26" }, "payable": false, "returnParameters": { - "id": 3679, + "id": 3833, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3678, + "id": 3832, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6784:12:25", + "scope": 3882, + "src": "6784:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13100,10 +13100,10 @@ "typeString": "bool" }, "typeName": { - "id": 3677, + "id": 3831, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6784:4:25", + "src": "6784:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13113,19 +13113,19 @@ "visibility": "internal" } ], - "src": "6783:14:25" + "src": "6783:14:26" }, - "scope": 3813, - "src": "6707:337:25", + "scope": 3967, + "src": "6707:337:26", "stateMutability": "nonpayable", - "superFunction": 3408, + "superFunction": 3562, "visibility": "public" }, { "body": { - "id": 3743, + "id": 3897, "nodeType": "Block", - "src": "7418:52:25", + "src": "7418:52:26", "statements": [ { "expression": { @@ -13134,26 +13134,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3737, + "id": 3891, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7435:7:25", + "referencedDeclaration": 3685, + "src": "7435:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3739, + "id": 3893, "indexExpression": { "argumentTypes": null, - "id": 3738, + "id": 3892, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3730, - "src": "7443:10:25", + "referencedDeclaration": 3884, + "src": "7443:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13164,21 +13164,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:19:25", + "src": "7435:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3741, + "id": 3895, "indexExpression": { "argumentTypes": null, - "id": 3740, + "id": 3894, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "7455:7:25", + "referencedDeclaration": 3886, + "src": "7455:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13189,21 +13189,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:28:25", + "src": "7435:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3736, - "id": 3742, + "functionReturnParameters": 3890, + "id": 3896, "nodeType": "Return", - "src": "7428:35:25" + "src": "7428:35:26" } ] }, "documentation": null, - "id": 3744, + "id": 3898, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13211,16 +13211,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3733, + "id": 3887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3730, + "id": 3884, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7344:18:25", + "scope": 3898, + "src": "7344:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13228,10 +13228,10 @@ "typeString": "address" }, "typeName": { - "id": 3729, + "id": 3883, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7344:7:25", + "src": "7344:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13242,11 +13242,11 @@ }, { "constant": false, - "id": 3732, + "id": 3886, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7364:15:25", + "scope": 3898, + "src": "7364:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13254,10 +13254,10 @@ "typeString": "address" }, "typeName": { - "id": 3731, + "id": 3885, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7364:7:25", + "src": "7364:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13267,20 +13267,20 @@ "visibility": "internal" } ], - "src": "7343:37:25" + "src": "7343:37:26" }, "payable": false, "returnParameters": { - "id": 3736, + "id": 3890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3735, + "id": 3889, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7402:14:25", + "scope": 3898, + "src": "7402:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13288,10 +13288,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3734, + "id": 3888, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7402:4:25", + "src": "7402:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13301,24 +13301,24 @@ "visibility": "internal" } ], - "src": "7401:16:25" + "src": "7401:16:26" }, - "scope": 3813, - "src": "7325:145:25", + "scope": 3967, + "src": "7325:145:26", "stateMutability": "view", - "superFunction": 3379, + "superFunction": 3533, "visibility": "public" }, { "body": { - "id": 3784, + "id": 3938, "nodeType": "Block", - "src": "7926:216:25", + "src": "7926:216:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3762, + "id": 3916, "isConstant": false, "isLValue": false, "isPure": false, @@ -13329,34 +13329,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3755, + "id": 3909, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7936:7:25", + "referencedDeclaration": 3685, + "src": "7936:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3759, + "id": 3913, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3756, + "id": 3910, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7944:3:25", + "referencedDeclaration": 4491, + "src": "7944:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3757, + "id": 3911, "isConstant": false, "isLValue": false, "isPure": false, @@ -13364,7 +13364,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7944:10:25", + "src": "7944:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13375,21 +13375,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7936:19:25", + "src": "7936:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3760, + "id": 3914, "indexExpression": { "argumentTypes": null, - "id": 3758, + "id": 3912, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "7956:7:25", + "referencedDeclaration": 3900, + "src": "7956:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13400,7 +13400,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7936:28:25", + "src": "7936:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13410,26 +13410,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3761, + "id": 3915, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "7967:6:25", + "referencedDeclaration": 3902, + "src": "7967:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7936:37:25", + "src": "7936:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3763, + "id": 3917, "nodeType": "ExpressionStatement", - "src": "7936:37:25" + "src": "7936:37:26" }, { "eventCall": { @@ -13439,18 +13439,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3765, + "id": 3919, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7997:3:25", + "referencedDeclaration": 4491, + "src": "7997:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3766, + "id": 3920, "isConstant": false, "isLValue": false, "isPure": false, @@ -13458,7 +13458,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7997:10:25", + "src": "7997:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13466,12 +13466,12 @@ }, { "argumentTypes": null, - "id": 3767, + "id": 3921, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8009:7:25", + "referencedDeclaration": 3900, + "src": "8009:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13479,12 +13479,12 @@ }, { "argumentTypes": null, - "id": 3768, + "id": 3922, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8018:6:25", + "referencedDeclaration": 3902, + "src": "8018:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13506,18 +13506,18 @@ "typeString": "uint256" } ], - "id": 3764, + "id": 3918, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "7988:8:25", + "referencedDeclaration": 3578, + "src": "7988:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3769, + "id": 3923, "isConstant": false, "isLValue": false, "isPure": false, @@ -13525,15 +13525,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7988:37:25", + "src": "7988:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3770, + "id": 3924, "nodeType": "EmitStatement", - "src": "7983:42:25" + "src": "7983:42:26" }, { "expression": { @@ -13543,18 +13543,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3775, + "id": 3929, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "8083:3:25", + "referencedDeclaration": 4491, + "src": "8083:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3776, + "id": 3930, "isConstant": false, "isLValue": false, "isPure": false, @@ -13562,7 +13562,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8083:10:25", + "src": "8083:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13570,12 +13570,12 @@ }, { "argumentTypes": null, - "id": 3777, + "id": 3931, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8095:6:25", + "referencedDeclaration": 3902, + "src": "8095:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13583,25 +13583,25 @@ }, { "argumentTypes": null, - "id": 3778, + "id": 3932, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3907, - "src": "8103:4:25", + "referencedDeclaration": 4574, + "src": "8103:4:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" } }, { "argumentTypes": null, - "id": 3779, + "id": 3933, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3750, - "src": "8109:4:25", + "referencedDeclaration": 3904, + "src": "8109:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -13619,7 +13619,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" }, { @@ -13632,12 +13632,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3772, + "id": 3926, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8058:7:25", + "referencedDeclaration": 3900, + "src": "8058:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13651,18 +13651,18 @@ "typeString": "address" } ], - "id": 3771, + "id": 3925, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3437, - "src": "8035:22:25", + "referencedDeclaration": 3591, + "src": "8035:22:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, - "id": 3773, + "id": 3927, "isConstant": false, "isLValue": false, "isPure": false, @@ -13670,27 +13670,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:31:25", + "src": "8035:31:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", "typeString": "contract ApproveAndCallFallBack" } }, - "id": 3774, + "id": 3928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", - "referencedDeclaration": 3436, - "src": "8035:47:25", + "referencedDeclaration": 3590, + "src": "8035:47:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,address,bytes memory) external" } }, - "id": 3780, + "id": 3934, "isConstant": false, "isLValue": false, "isPure": false, @@ -13698,28 +13698,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:79:25", + "src": "8035:79:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3781, + "id": 3935, "nodeType": "ExpressionStatement", - "src": "8035:79:25" + "src": "8035:79:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3782, + "id": 3936, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8131:4:25", + "src": "8131:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13727,15 +13727,15 @@ }, "value": "true" }, - "functionReturnParameters": 3754, - "id": 3783, + "functionReturnParameters": 3908, + "id": 3937, "nodeType": "Return", - "src": "8124:11:25" + "src": "8124:11:26" } ] }, "documentation": null, - "id": 3785, + "id": 3939, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -13743,16 +13743,16 @@ "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 3751, + "id": 3905, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3746, + "id": 3900, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7854:15:25", + "scope": 3939, + "src": "7854:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13760,10 +13760,10 @@ "typeString": "address" }, "typeName": { - "id": 3745, + "id": 3899, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7854:7:25", + "src": "7854:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13774,11 +13774,11 @@ }, { "constant": false, - "id": 3748, + "id": 3902, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7871:11:25", + "scope": 3939, + "src": "7871:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13786,10 +13786,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3747, + "id": 3901, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7871:4:25", + "src": "7871:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13800,11 +13800,11 @@ }, { "constant": false, - "id": 3750, + "id": 3904, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7884:10:25", + "scope": 3939, + "src": "7884:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13812,10 +13812,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3749, + "id": 3903, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7884:5:25", + "src": "7884:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -13825,20 +13825,20 @@ "visibility": "internal" } ], - "src": "7853:42:25" + "src": "7853:42:26" }, "payable": false, "returnParameters": { - "id": 3754, + "id": 3908, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3753, + "id": 3907, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7912:12:25", + "scope": 3939, + "src": "7912:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13846,10 +13846,10 @@ "typeString": "bool" }, "typeName": { - "id": 3752, + "id": 3906, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7912:4:25", + "src": "7912:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13859,19 +13859,19 @@ "visibility": "internal" } ], - "src": "7911:14:25" + "src": "7911:14:26" }, - "scope": 3813, - "src": "7830:312:25", + "scope": 3967, + "src": "7830:312:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3791, + "id": 3945, "nodeType": "Block", - "src": "8360:25:25", + "src": "8360:25:26", "statements": [ { "expression": { @@ -13879,21 +13879,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3788, + "id": 3942, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 3833, - 3834 + 4496, + 4497 ], - "referencedDeclaration": 3833, - "src": "8370:6:25", + "referencedDeclaration": 4496, + "src": "8370:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 3789, + "id": 3943, "isConstant": false, "isLValue": false, "isPure": false, @@ -13901,20 +13901,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8370:8:25", + "src": "8370:8:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3790, + "id": 3944, "nodeType": "ExpressionStatement", - "src": "8370:8:25" + "src": "8370:8:26" } ] }, "documentation": null, - "id": 3792, + "id": 3946, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -13922,29 +13922,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3786, + "id": 3940, "nodeType": "ParameterList", "parameters": [], - "src": "8342:2:25" + "src": "8342:2:26" }, "payable": true, "returnParameters": { - "id": 3787, + "id": 3941, "nodeType": "ParameterList", "parameters": [], - "src": "8360:0:25" + "src": "8360:0:26" }, - "scope": 3813, - "src": "8333:52:25", + "scope": 3967, + "src": "8333:52:26", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3811, + "id": 3965, "nodeType": "Block", - "src": "8723:76:25", + "src": "8723:76:26", "statements": [ { "expression": { @@ -13952,12 +13952,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3807, + "id": 3961, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "8778:5:25", + "referencedDeclaration": 3593, + "src": "8778:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13965,12 +13965,12 @@ }, { "argumentTypes": null, - "id": 3808, + "id": 3962, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3796, - "src": "8785:6:25", + "referencedDeclaration": 3950, + "src": "8785:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13993,12 +13993,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3804, + "id": 3958, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3794, - "src": "8755:12:25", + "referencedDeclaration": 3948, + "src": "8755:12:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14012,18 +14012,18 @@ "typeString": "address" } ], - "id": 3803, + "id": 3957, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3425, - "src": "8740:14:25", + "referencedDeclaration": 3579, + "src": "8740:14:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", "typeString": "type(contract ERC20Interface)" } }, - "id": 3805, + "id": 3959, "isConstant": false, "isLValue": false, "isPure": false, @@ -14031,27 +14031,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:28:25", + "src": "8740:28:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3806, + "id": 3960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 3388, - "src": "8740:37:25", + "referencedDeclaration": 3542, + "src": "8740:37:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 3809, + "id": 3963, "isConstant": false, "isLValue": false, "isPure": false, @@ -14059,58 +14059,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:52:25", + "src": "8740:52:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3802, - "id": 3810, + "functionReturnParameters": 3956, + "id": 3964, "nodeType": "Return", - "src": "8733:59:25" + "src": "8733:59:26" } ] }, "documentation": null, - "id": 3812, + "id": 3966, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3799, + "id": 3953, "modifierName": { "argumentTypes": null, - "id": 3798, + "id": 3952, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "8690:9:25", + "referencedDeclaration": 3621, + "src": "8690:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8690:9:25" + "src": "8690:9:26" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 3797, + "id": 3951, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3794, + "id": 3948, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8648:20:25", + "scope": 3966, + "src": "8648:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14118,10 +14118,10 @@ "typeString": "address" }, "typeName": { - "id": 3793, + "id": 3947, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8648:7:25", + "src": "8648:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14132,11 +14132,11 @@ }, { "constant": false, - "id": 3796, + "id": 3950, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8670:11:25", + "scope": 3966, + "src": "8670:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14144,10 +14144,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3795, + "id": 3949, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8670:4:25", + "src": "8670:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14157,20 +14157,20 @@ "visibility": "internal" } ], - "src": "8647:35:25" + "src": "8647:35:26" }, "payable": false, "returnParameters": { - "id": 3802, + "id": 3956, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3801, + "id": 3955, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8709:12:25", + "scope": 3966, + "src": "8709:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14178,10 +14178,10 @@ "typeString": "bool" }, "typeName": { - "id": 3800, + "id": 3954, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8709:4:25", + "src": "8709:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14191,20 +14191,20 @@ "visibility": "internal" } ], - "src": "8708:14:25" + "src": "8708:14:26" }, - "scope": 3813, - "src": "8617:182:25", + "scope": 3967, + "src": "8617:182:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "3506:5295:25" + "scope": 3968, + "src": "3506:5295:26" } ], - "src": "0:8801:25" + "src": "0:8801:26" }, "compiler": { "name": "solc", @@ -14212,5 +14212,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.098Z" + "updatedAt": "2018-09-26T08:32:07.651Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/ERC20Interface.json b/safe-contracts/build/contracts/test/ERC20Interface.json index f69d8f5f..223532fb 100644 --- a/safe-contracts/build/contracts/test/ERC20Interface.json +++ b/safe-contracts/build/contracts/test/ERC20Interface.json @@ -185,26 +185,26 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ - 3437 + 3591 ], "ERC20Interface": [ - 3425 + 3579 ], "Owned": [ - 3506 + 3660 ], "SafeMath": [ - 3358 + 3512 ], "TestToken": [ - 3813 + 3967 ] }, - "id": 3814, + "id": 3968, "nodeType": "SourceUnit", "nodes": [ { - "id": 3263, + "id": 3417, "literals": [ "solidity", "^", @@ -212,7 +212,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:24:26" }, { "baseContracts": [], @@ -220,35 +220,35 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 3358, + "id": 3512, "linearizedBaseContracts": [ - 3358 + 3512 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3284, + "id": 3438, "nodeType": "Block", - "src": "719:51:25", + "src": "719:51:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3276, + "id": 3430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3272, + "id": 3426, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "729:1:25", + "referencedDeclaration": 3424, + "src": "729:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -262,19 +262,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3275, + "id": 3429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3273, + "id": 3427, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "733:1:25", + "referencedDeclaration": 3419, + "src": "733:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -284,32 +284,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 3274, + "id": 3428, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3267, - "src": "737:1:25", + "referencedDeclaration": 3421, + "src": "737:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:5:25", + "src": "733:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "729:9:25", + "src": "729:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3277, + "id": 3431, "nodeType": "ExpressionStatement", - "src": "729:9:25" + "src": "729:9:26" }, { "expression": { @@ -321,19 +321,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3281, + "id": 3435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3279, + "id": 3433, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "756:1:25", + "referencedDeclaration": 3424, + "src": "756:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -343,18 +343,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 3280, + "id": 3434, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "761:1:25", + "referencedDeclaration": 3419, + "src": "761:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "756:6:25", + "src": "756:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -368,21 +368,21 @@ "typeString": "bool" } ], - "id": 3278, + "id": 3432, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "748:7:25", + "referencedDeclaration": 4494, + "src": "748:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3282, + "id": 3436, "isConstant": false, "isLValue": false, "isPure": false, @@ -390,20 +390,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:15:25", + "src": "748:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3283, + "id": 3437, "nodeType": "ExpressionStatement", - "src": "748:15:25" + "src": "748:15:26" } ] }, "documentation": null, - "id": 3285, + "id": 3439, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -411,16 +411,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 3268, + "id": 3422, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3265, + "id": 3419, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "672:6:25", + "scope": 3439, + "src": "672:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -428,10 +428,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3264, + "id": 3418, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "672:4:25", + "src": "672:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -442,11 +442,11 @@ }, { "constant": false, - "id": 3267, + "id": 3421, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "680:6:25", + "scope": 3439, + "src": "680:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -454,10 +454,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3266, + "id": 3420, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "680:4:25", + "src": "680:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -467,20 +467,20 @@ "visibility": "internal" } ], - "src": "671:16:25" + "src": "671:16:26" }, "payable": false, "returnParameters": { - "id": 3271, + "id": 3425, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3270, + "id": 3424, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "711:6:25", + "scope": 3439, + "src": "711:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -488,10 +488,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3269, + "id": 3423, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "711:4:25", + "src": "711:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -501,19 +501,19 @@ "visibility": "internal" } ], - "src": "710:8:25" + "src": "710:8:26" }, - "scope": 3358, - "src": "659:111:25", + "scope": 3512, + "src": "659:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3306, + "id": 3460, "nodeType": "Block", - "src": "835:51:25", + "src": "835:51:26", "statements": [ { "expression": { @@ -525,19 +525,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3297, + "id": 3451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3295, + "id": 3449, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "853:1:25", + "referencedDeclaration": 3443, + "src": "853:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -547,18 +547,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 3296, + "id": 3450, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "858:1:25", + "referencedDeclaration": 3441, + "src": "858:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "853:6:25", + "src": "853:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -572,21 +572,21 @@ "typeString": "bool" } ], - "id": 3294, + "id": 3448, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "845:7:25", + "referencedDeclaration": 4494, + "src": "845:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3298, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, @@ -594,32 +594,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:15:25", + "src": "845:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3299, + "id": 3453, "nodeType": "ExpressionStatement", - "src": "845:15:25" + "src": "845:15:26" }, { "expression": { "argumentTypes": null, - "id": 3304, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3300, + "id": 3454, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3292, - "src": "870:1:25", + "referencedDeclaration": 3446, + "src": "870:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -633,19 +633,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3303, + "id": 3457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3301, + "id": 3455, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "874:1:25", + "referencedDeclaration": 3441, + "src": "874:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -655,37 +655,37 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 3302, + "id": 3456, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "878:1:25", + "referencedDeclaration": 3443, + "src": "878:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "874:5:25", + "src": "874:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "870:9:25", + "src": "870:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3305, + "id": 3459, "nodeType": "ExpressionStatement", - "src": "870:9:25" + "src": "870:9:26" } ] }, "documentation": null, - "id": 3307, + "id": 3461, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -693,16 +693,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 3290, + "id": 3444, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3287, + "id": 3441, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "788:6:25", + "scope": 3461, + "src": "788:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -710,10 +710,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3286, + "id": 3440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "788:4:25", + "src": "788:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -724,11 +724,11 @@ }, { "constant": false, - "id": 3289, + "id": 3443, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "796:6:25", + "scope": 3461, + "src": "796:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -736,10 +736,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3288, + "id": 3442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "796:4:25", + "src": "796:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -749,20 +749,20 @@ "visibility": "internal" } ], - "src": "787:16:25" + "src": "787:16:26" }, "payable": false, "returnParameters": { - "id": 3293, + "id": 3447, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3292, + "id": 3446, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "827:6:25", + "scope": 3461, + "src": "827:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -770,10 +770,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3291, + "id": 3445, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:25", + "src": "827:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -783,36 +783,36 @@ "visibility": "internal" } ], - "src": "826:8:25" + "src": "826:8:26" }, - "scope": 3358, - "src": "775:111:25", + "scope": 3512, + "src": "775:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3334, + "id": 3488, "nodeType": "Block", - "src": "951:65:25", + "src": "951:65:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3320, + "id": 3474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3316, + "id": 3470, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "961:1:25", + "referencedDeclaration": 3468, + "src": "961:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -826,19 +826,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3319, + "id": 3473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3317, + "id": 3471, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "965:1:25", + "referencedDeclaration": 3463, + "src": "965:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -848,32 +848,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 3318, + "id": 3472, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "969:1:25", + "referencedDeclaration": 3465, + "src": "969:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "965:5:25", + "src": "965:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "961:9:25", + "src": "961:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3321, + "id": 3475, "nodeType": "ExpressionStatement", - "src": "961:9:25" + "src": "961:9:26" }, { "expression": { @@ -885,7 +885,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3331, + "id": 3485, "isConstant": false, "isLValue": false, "isPure": false, @@ -896,19 +896,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3325, + "id": 3479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3323, + "id": 3477, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "988:1:25", + "referencedDeclaration": 3463, + "src": "988:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -919,14 +919,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3324, + "id": 3478, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "993:1:25", + "src": "993:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -934,7 +934,7 @@ }, "value": "0" }, - "src": "988:6:25", + "src": "988:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -948,7 +948,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3330, + "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, @@ -959,19 +959,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3328, + "id": 3482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3326, + "id": 3480, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "998:1:25", + "referencedDeclaration": 3468, + "src": "998:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -981,18 +981,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3327, + "id": 3481, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "1002:1:25", + "referencedDeclaration": 3463, + "src": "1002:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:5:25", + "src": "998:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1002,24 +1002,24 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3329, + "id": 3483, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "1007:1:25", + "referencedDeclaration": 3465, + "src": "1007:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:25", + "src": "998:10:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "988:20:25", + "src": "988:20:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1033,21 +1033,21 @@ "typeString": "bool" } ], - "id": 3322, + "id": 3476, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "980:7:25", + "referencedDeclaration": 4494, + "src": "980:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3332, + "id": 3486, "isConstant": false, "isLValue": false, "isPure": false, @@ -1055,20 +1055,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "980:29:25", + "src": "980:29:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3333, + "id": 3487, "nodeType": "ExpressionStatement", - "src": "980:29:25" + "src": "980:29:26" } ] }, "documentation": null, - "id": 3335, + "id": 3489, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1076,16 +1076,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 3312, + "id": 3466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3309, + "id": 3463, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "904:6:25", + "scope": 3489, + "src": "904:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1093,10 +1093,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3308, + "id": 3462, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "904:4:25", + "src": "904:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1107,11 +1107,11 @@ }, { "constant": false, - "id": 3311, + "id": 3465, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "912:6:25", + "scope": 3489, + "src": "912:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1119,10 +1119,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3310, + "id": 3464, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "912:4:25", + "src": "912:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1132,20 +1132,20 @@ "visibility": "internal" } ], - "src": "903:16:25" + "src": "903:16:26" }, "payable": false, "returnParameters": { - "id": 3315, + "id": 3469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3314, + "id": 3468, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "943:6:25", + "scope": 3489, + "src": "943:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1153,10 +1153,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3313, + "id": 3467, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "943:4:25", + "src": "943:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1166,19 +1166,19 @@ "visibility": "internal" } ], - "src": "942:8:25" + "src": "942:8:26" }, - "scope": 3358, - "src": "891:125:25", + "scope": 3512, + "src": "891:125:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3356, + "id": 3510, "nodeType": "Block", - "src": "1081:50:25", + "src": "1081:50:26", "statements": [ { "expression": { @@ -1190,19 +1190,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3347, + "id": 3501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3345, + "id": 3499, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1099:1:25", + "referencedDeclaration": 3493, + "src": "1099:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1213,14 +1213,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3346, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:1:25", + "src": "1103:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1228,7 +1228,7 @@ }, "value": "0" }, - "src": "1099:5:25", + "src": "1099:5:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1242,21 +1242,21 @@ "typeString": "bool" } ], - "id": 3344, + "id": 3498, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "1091:7:25", + "referencedDeclaration": 4494, + "src": "1091:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3348, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, @@ -1264,32 +1264,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:14:25", + "src": "1091:14:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3349, + "id": 3503, "nodeType": "ExpressionStatement", - "src": "1091:14:25" + "src": "1091:14:26" }, { "expression": { "argumentTypes": null, - "id": 3354, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3350, + "id": 3504, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3342, - "src": "1115:1:25", + "referencedDeclaration": 3496, + "src": "1115:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1303,19 +1303,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3353, + "id": 3507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3351, + "id": 3505, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "1119:1:25", + "referencedDeclaration": 3491, + "src": "1119:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1325,37 +1325,37 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3352, + "id": 3506, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1123:1:25", + "referencedDeclaration": 3493, + "src": "1123:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:5:25", + "src": "1119:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1115:9:25", + "src": "1115:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3355, + "id": 3509, "nodeType": "ExpressionStatement", - "src": "1115:9:25" + "src": "1115:9:26" } ] }, "documentation": null, - "id": 3357, + "id": 3511, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1363,16 +1363,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 3340, + "id": 3494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3337, + "id": 3491, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1034:6:25", + "scope": 3511, + "src": "1034:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1380,10 +1380,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3336, + "id": 3490, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1034:4:25", + "src": "1034:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1394,11 +1394,11 @@ }, { "constant": false, - "id": 3339, + "id": 3493, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1042:6:25", + "scope": 3511, + "src": "1042:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1406,10 +1406,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3338, + "id": 3492, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1042:4:25", + "src": "1042:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1419,20 +1419,20 @@ "visibility": "internal" } ], - "src": "1033:16:25" + "src": "1033:16:26" }, "payable": false, "returnParameters": { - "id": 3343, + "id": 3497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3342, + "id": 3496, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1073:6:25", + "scope": 3511, + "src": "1073:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1440,10 +1440,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3341, + "id": 3495, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1073:4:25", + "src": "1073:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1453,17 +1453,17 @@ "visibility": "internal" } ], - "src": "1072:8:25" + "src": "1072:8:26" }, - "scope": 3358, - "src": "1021:110:25", + "scope": 3512, + "src": "1021:110:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 3814, - "src": "636:497:25" + "scope": 3968, + "src": "636:497:26" }, { "baseContracts": [], @@ -1471,9 +1471,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3425, + "id": 3579, "linearizedBaseContracts": [ - 3425 + 3579 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", @@ -1481,7 +1481,7 @@ { "body": null, "documentation": null, - "id": 3363, + "id": 3517, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1489,23 +1489,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3359, + "id": 3513, "nodeType": "ParameterList", "parameters": [], - "src": "1445:2:25" + "src": "1445:2:26" }, "payable": false, "returnParameters": { - "id": 3362, + "id": 3516, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3361, + "id": 3515, "name": "", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "1473:4:25", + "scope": 3517, + "src": "1473:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1513,10 +1513,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3360, + "id": 3514, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1473:4:25", + "src": "1473:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1526,10 +1526,10 @@ "visibility": "internal" } ], - "src": "1472:6:25" + "src": "1472:6:26" }, - "scope": 3425, - "src": "1425:54:25", + "scope": 3579, + "src": "1425:54:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1537,7 +1537,7 @@ { "body": null, "documentation": null, - "id": 3370, + "id": 3524, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1545,16 +1545,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3366, + "id": 3520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3365, + "id": 3519, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1503:18:25", + "scope": 3524, + "src": "1503:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1562,10 +1562,10 @@ "typeString": "address" }, "typeName": { - "id": 3364, + "id": 3518, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1503:7:25", + "src": "1503:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1575,20 +1575,20 @@ "visibility": "internal" } ], - "src": "1502:20:25" + "src": "1502:20:26" }, "payable": false, "returnParameters": { - "id": 3369, + "id": 3523, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3368, + "id": 3522, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1548:12:25", + "scope": 3524, + "src": "1548:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1596,10 +1596,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3367, + "id": 3521, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:25", + "src": "1548:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1609,10 +1609,10 @@ "visibility": "internal" } ], - "src": "1547:14:25" + "src": "1547:14:26" }, - "scope": 3425, - "src": "1484:78:25", + "scope": 3579, + "src": "1484:78:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1620,7 +1620,7 @@ { "body": null, "documentation": null, - "id": 3379, + "id": 3533, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1628,16 +1628,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3375, + "id": 3529, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3372, + "id": 3526, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1586:18:25", + "scope": 3533, + "src": "1586:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1645,10 +1645,10 @@ "typeString": "address" }, "typeName": { - "id": 3371, + "id": 3525, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:25", + "src": "1586:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1659,11 +1659,11 @@ }, { "constant": false, - "id": 3374, + "id": 3528, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1606:15:25", + "scope": 3533, + "src": "1606:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1671,10 +1671,10 @@ "typeString": "address" }, "typeName": { - "id": 3373, + "id": 3527, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1606:7:25", + "src": "1606:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1684,20 +1684,20 @@ "visibility": "internal" } ], - "src": "1585:37:25" + "src": "1585:37:26" }, "payable": false, "returnParameters": { - "id": 3378, + "id": 3532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3377, + "id": 3531, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1648:14:25", + "scope": 3533, + "src": "1648:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1705,10 +1705,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3376, + "id": 3530, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1648:4:25", + "src": "1648:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1718,10 +1718,10 @@ "visibility": "internal" } ], - "src": "1647:16:25" + "src": "1647:16:26" }, - "scope": 3425, - "src": "1567:97:25", + "scope": 3579, + "src": "1567:97:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1729,7 +1729,7 @@ { "body": null, "documentation": null, - "id": 3388, + "id": 3542, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1737,16 +1737,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3384, + "id": 3538, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3381, + "id": 3535, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1687:10:25", + "scope": 3542, + "src": "1687:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1754,10 +1754,10 @@ "typeString": "address" }, "typeName": { - "id": 3380, + "id": 3534, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:25", + "src": "1687:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1768,11 +1768,11 @@ }, { "constant": false, - "id": 3383, + "id": 3537, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1699:11:25", + "scope": 3542, + "src": "1699:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1780,10 +1780,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3382, + "id": 3536, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:25", + "src": "1699:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1793,20 +1793,20 @@ "visibility": "internal" } ], - "src": "1686:25:25" + "src": "1686:25:26" }, "payable": false, "returnParameters": { - "id": 3387, + "id": 3541, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3386, + "id": 3540, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1728:12:25", + "scope": 3542, + "src": "1728:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1814,10 +1814,10 @@ "typeString": "bool" }, "typeName": { - "id": 3385, + "id": 3539, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1728:4:25", + "src": "1728:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1827,10 +1827,10 @@ "visibility": "internal" } ], - "src": "1727:14:25" + "src": "1727:14:26" }, - "scope": 3425, - "src": "1669:73:25", + "scope": 3579, + "src": "1669:73:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1838,7 +1838,7 @@ { "body": null, "documentation": null, - "id": 3397, + "id": 3551, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1846,16 +1846,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3393, + "id": 3547, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3390, + "id": 3544, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1764:15:25", + "scope": 3551, + "src": "1764:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1863,10 +1863,10 @@ "typeString": "address" }, "typeName": { - "id": 3389, + "id": 3543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:25", + "src": "1764:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1877,11 +1877,11 @@ }, { "constant": false, - "id": 3392, + "id": 3546, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1781:11:25", + "scope": 3551, + "src": "1781:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1889,10 +1889,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3391, + "id": 3545, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:25", + "src": "1781:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1902,20 +1902,20 @@ "visibility": "internal" } ], - "src": "1763:30:25" + "src": "1763:30:26" }, "payable": false, "returnParameters": { - "id": 3396, + "id": 3550, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3395, + "id": 3549, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1810:12:25", + "scope": 3551, + "src": "1810:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1923,10 +1923,10 @@ "typeString": "bool" }, "typeName": { - "id": 3394, + "id": 3548, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1810:4:25", + "src": "1810:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1936,10 +1936,10 @@ "visibility": "internal" } ], - "src": "1809:14:25" + "src": "1809:14:26" }, - "scope": 3425, - "src": "1747:77:25", + "scope": 3579, + "src": "1747:77:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1947,7 +1947,7 @@ { "body": null, "documentation": null, - "id": 3408, + "id": 3562, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1955,16 +1955,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3404, + "id": 3558, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3399, + "id": 3553, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1851:12:25", + "scope": 3562, + "src": "1851:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1972,10 +1972,10 @@ "typeString": "address" }, "typeName": { - "id": 3398, + "id": 3552, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1851:7:25", + "src": "1851:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1986,11 +1986,11 @@ }, { "constant": false, - "id": 3401, + "id": 3555, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1865:10:25", + "scope": 3562, + "src": "1865:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1998,10 +1998,10 @@ "typeString": "address" }, "typeName": { - "id": 3400, + "id": 3554, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:25", + "src": "1865:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2012,11 +2012,11 @@ }, { "constant": false, - "id": 3403, + "id": 3557, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1877:11:25", + "scope": 3562, + "src": "1877:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2024,10 +2024,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3402, + "id": 3556, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1877:4:25", + "src": "1877:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2037,20 +2037,20 @@ "visibility": "internal" } ], - "src": "1850:39:25" + "src": "1850:39:26" }, "payable": false, "returnParameters": { - "id": 3407, + "id": 3561, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3406, + "id": 3560, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1906:12:25", + "scope": 3562, + "src": "1906:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2058,10 +2058,10 @@ "typeString": "bool" }, "typeName": { - "id": 3405, + "id": 3559, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1906:4:25", + "src": "1906:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2071,10 +2071,10 @@ "visibility": "internal" } ], - "src": "1905:14:25" + "src": "1905:14:26" }, - "scope": 3425, - "src": "1829:91:25", + "scope": 3579, + "src": "1829:91:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2082,21 +2082,21 @@ { "anonymous": false, "documentation": null, - "id": 3416, + "id": 3570, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 3415, + "id": 3569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3410, + "id": 3564, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1941:20:25", + "scope": 3570, + "src": "1941:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2104,10 +2104,10 @@ "typeString": "address" }, "typeName": { - "id": 3409, + "id": 3563, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1941:7:25", + "src": "1941:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2118,12 +2118,12 @@ }, { "constant": false, - "id": 3412, + "id": 3566, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1963:18:25", + "scope": 3570, + "src": "1963:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2131,10 +2131,10 @@ "typeString": "address" }, "typeName": { - "id": 3411, + "id": 3565, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1963:7:25", + "src": "1963:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2145,12 +2145,12 @@ }, { "constant": false, - "id": 3414, + "id": 3568, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1983:11:25", + "scope": 3570, + "src": "1983:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2158,10 +2158,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3413, + "id": 3567, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:25", + "src": "1983:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2171,28 +2171,28 @@ "visibility": "internal" } ], - "src": "1940:55:25" + "src": "1940:55:26" }, - "src": "1926:70:25" + "src": "1926:70:26" }, { "anonymous": false, "documentation": null, - "id": 3424, + "id": 3578, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 3423, + "id": 3577, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3418, + "id": 3572, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2016:26:25", + "scope": 3578, + "src": "2016:26:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2200,10 +2200,10 @@ "typeString": "address" }, "typeName": { - "id": 3417, + "id": 3571, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2016:7:25", + "src": "2016:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2214,12 +2214,12 @@ }, { "constant": false, - "id": 3420, + "id": 3574, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2044:23:25", + "scope": 3578, + "src": "2044:23:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2227,10 +2227,10 @@ "typeString": "address" }, "typeName": { - "id": 3419, + "id": 3573, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2044:7:25", + "src": "2044:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2241,12 +2241,12 @@ }, { "constant": false, - "id": 3422, + "id": 3576, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2069:11:25", + "scope": 3578, + "src": "2069:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2254,10 +2254,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3421, + "id": 3575, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2069:4:25", + "src": "2069:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2267,13 +2267,13 @@ "visibility": "internal" } ], - "src": "2015:66:25" + "src": "2015:66:26" }, - "src": "2001:81:25" + "src": "2001:81:26" } ], - "scope": 3814, - "src": "1395:689:25" + "scope": 3968, + "src": "1395:689:26" }, { "baseContracts": [], @@ -2281,9 +2281,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3437, + "id": 3591, "linearizedBaseContracts": [ - 3437 + 3591 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", @@ -2291,7 +2291,7 @@ { "body": null, "documentation": null, - "id": 3436, + "id": 3590, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -2299,16 +2299,16 @@ "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 3434, + "id": 3588, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3427, + "id": 3581, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2416:12:25", + "scope": 3590, + "src": "2416:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2316,10 +2316,10 @@ "typeString": "address" }, "typeName": { - "id": 3426, + "id": 3580, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2416:7:25", + "src": "2416:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2330,11 +2330,11 @@ }, { "constant": false, - "id": 3429, + "id": 3583, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2430:14:25", + "scope": 3590, + "src": "2430:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2342,10 +2342,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3428, + "id": 3582, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2430:7:25", + "src": "2430:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2356,11 +2356,11 @@ }, { "constant": false, - "id": 3431, + "id": 3585, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2446:13:25", + "scope": 3590, + "src": "2446:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2368,10 +2368,10 @@ "typeString": "address" }, "typeName": { - "id": 3430, + "id": 3584, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2446:7:25", + "src": "2446:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2382,11 +2382,11 @@ }, { "constant": false, - "id": 3433, + "id": 3587, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2461:10:25", + "scope": 3590, + "src": "2461:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2394,10 +2394,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3432, + "id": 3586, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2461:5:25", + "src": "2461:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2407,24 +2407,24 @@ "visibility": "internal" } ], - "src": "2415:57:25" + "src": "2415:57:26" }, "payable": false, "returnParameters": { - "id": 3435, + "id": 3589, "nodeType": "ParameterList", "parameters": [], - "src": "2479:0:25" + "src": "2479:0:26" }, - "scope": 3437, - "src": "2391:89:25", + "scope": 3591, + "src": "2391:89:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2353:129:25" + "scope": 3968, + "src": "2353:129:26" }, { "baseContracts": [], @@ -2432,20 +2432,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3506, + "id": 3660, "linearizedBaseContracts": [ - 3506 + 3660 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 3439, + "id": 3593, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2684:20:25", + "scope": 3660, + "src": "2684:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2453,10 +2453,10 @@ "typeString": "address" }, "typeName": { - "id": 3438, + "id": 3592, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2684:7:25", + "src": "2684:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2467,11 +2467,11 @@ }, { "constant": false, - "id": 3441, + "id": 3595, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2710:23:25", + "scope": 3660, + "src": "2710:23:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2479,10 +2479,10 @@ "typeString": "address" }, "typeName": { - "id": 3440, + "id": 3594, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2710:7:25", + "src": "2710:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2494,21 +2494,21 @@ { "anonymous": false, "documentation": null, - "id": 3447, + "id": 3601, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 3446, + "id": 3600, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3443, + "id": 3597, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2767:21:25", + "scope": 3601, + "src": "2767:21:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2516,10 +2516,10 @@ "typeString": "address" }, "typeName": { - "id": 3442, + "id": 3596, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2767:7:25", + "src": "2767:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2530,12 +2530,12 @@ }, { "constant": false, - "id": 3445, + "id": 3599, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2790:19:25", + "scope": 3601, + "src": "2790:19:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2543,10 +2543,10 @@ "typeString": "address" }, "typeName": { - "id": 3444, + "id": 3598, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2790:7:25", + "src": "2790:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2556,32 +2556,32 @@ "visibility": "internal" } ], - "src": "2766:44:25" + "src": "2766:44:26" }, - "src": "2740:71:25" + "src": "2740:71:26" }, { "body": { - "id": 3455, + "id": 3609, "nodeType": "Block", - "src": "2838:35:25", + "src": "2838:35:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3453, + "id": 3607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3450, + "id": 3604, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2848:5:25", + "referencedDeclaration": 3593, + "src": "2848:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2593,18 +2593,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3451, + "id": 3605, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2856:3:25", + "referencedDeclaration": 4491, + "src": "2856:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3452, + "id": 3606, "isConstant": false, "isLValue": false, "isPure": false, @@ -2612,26 +2612,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2856:10:25", + "src": "2856:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2848:18:25", + "src": "2848:18:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3454, + "id": 3608, "nodeType": "ExpressionStatement", - "src": "2848:18:25" + "src": "2848:18:26" } ] }, "documentation": null, - "id": 3456, + "id": 3610, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -2639,29 +2639,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3448, + "id": 3602, "nodeType": "ParameterList", "parameters": [], - "src": "2828:2:25" + "src": "2828:2:26" }, "payable": false, "returnParameters": { - "id": 3449, + "id": 3603, "nodeType": "ParameterList", "parameters": [], - "src": "2838:0:25" + "src": "2838:0:26" }, - "scope": 3506, - "src": "2817:56:25", + "scope": 3660, + "src": "2817:56:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3466, + "id": 3620, "nodeType": "Block", - "src": "2898:56:25", + "src": "2898:56:26", "statements": [ { "expression": { @@ -2673,7 +2673,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3462, + "id": 3616, "isConstant": false, "isLValue": false, "isPure": false, @@ -2682,18 +2682,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3459, + "id": 3613, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2916:3:25", + "referencedDeclaration": 4491, + "src": "2916:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3460, + "id": 3614, "isConstant": false, "isLValue": false, "isPure": false, @@ -2701,7 +2701,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2916:10:25", + "src": "2916:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2711,18 +2711,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3461, + "id": 3615, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2930:5:25", + "referencedDeclaration": 3593, + "src": "2930:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2916:19:25", + "src": "2916:19:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2736,21 +2736,21 @@ "typeString": "bool" } ], - "id": 3458, + "id": 3612, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "2908:7:25", + "referencedDeclaration": 4494, + "src": "2908:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3463, + "id": 3617, "isConstant": false, "isLValue": false, "isPure": false, @@ -2758,58 +2758,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:28:25", + "src": "2908:28:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3464, + "id": 3618, "nodeType": "ExpressionStatement", - "src": "2908:28:25" + "src": "2908:28:26" }, { - "id": 3465, + "id": 3619, "nodeType": "PlaceholderStatement", - "src": "2946:1:25" + "src": "2946:1:26" } ] }, "documentation": null, - "id": 3467, + "id": 3621, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 3457, + "id": 3611, "nodeType": "ParameterList", "parameters": [], - "src": "2898:0:25" + "src": "2898:0:26" }, - "src": "2879:75:25", + "src": "2879:75:26", "visibility": "internal" }, { "body": { - "id": 3478, + "id": 3632, "nodeType": "Block", - "src": "3023:37:25", + "src": "3023:37:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3476, + "id": 3630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3474, + "id": 3628, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3033:8:25", + "referencedDeclaration": 3595, + "src": "3033:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2819,68 +2819,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3475, + "id": 3629, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3469, - "src": "3044:9:25", + "referencedDeclaration": 3623, + "src": "3044:9:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3033:20:25", + "src": "3033:20:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3477, + "id": 3631, "nodeType": "ExpressionStatement", - "src": "3033:20:25" + "src": "3033:20:26" } ] }, "documentation": null, - "id": 3479, + "id": 3633, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3472, + "id": 3626, "modifierName": { "argumentTypes": null, - "id": 3471, + "id": 3625, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3013:9:25", + "referencedDeclaration": 3621, + "src": "3013:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3013:9:25" + "src": "3013:9:26" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3470, + "id": 3624, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3469, + "id": 3623, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 3479, - "src": "2987:17:25", + "scope": 3633, + "src": "2987:17:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2888,10 +2888,10 @@ "typeString": "address" }, "typeName": { - "id": 3468, + "id": 3622, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2987:7:25", + "src": "2987:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2901,26 +2901,26 @@ "visibility": "internal" } ], - "src": "2986:19:25" + "src": "2986:19:26" }, "payable": false, "returnParameters": { - "id": 3473, + "id": 3627, "nodeType": "ParameterList", "parameters": [], - "src": "3023:0:25" + "src": "3023:0:26" }, - "scope": 3506, - "src": "2960:100:25", + "scope": 3660, + "src": "2960:100:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3504, + "id": 3658, "nodeType": "Block", - "src": "3099:157:25", + "src": "3099:157:26", "statements": [ { "expression": { @@ -2932,7 +2932,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3486, + "id": 3640, "isConstant": false, "isLValue": false, "isPure": false, @@ -2941,18 +2941,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3483, + "id": 3637, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "3117:3:25", + "referencedDeclaration": 4491, + "src": "3117:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3484, + "id": 3638, "isConstant": false, "isLValue": false, "isPure": false, @@ -2960,7 +2960,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3117:10:25", + "src": "3117:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2970,18 +2970,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3485, + "id": 3639, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3131:8:25", + "referencedDeclaration": 3595, + "src": "3131:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3117:22:25", + "src": "3117:22:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2995,21 +2995,21 @@ "typeString": "bool" } ], - "id": 3482, + "id": 3636, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "3109:7:25", + "referencedDeclaration": 4494, + "src": "3109:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3487, + "id": 3641, "isConstant": false, "isLValue": false, "isPure": false, @@ -3017,15 +3017,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3109:31:25", + "src": "3109:31:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3488, + "id": 3642, "nodeType": "ExpressionStatement", - "src": "3109:31:25" + "src": "3109:31:26" }, { "eventCall": { @@ -3033,12 +3033,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3490, + "id": 3644, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3176:5:25", + "referencedDeclaration": 3593, + "src": "3176:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3046,12 +3046,12 @@ }, { "argumentTypes": null, - "id": 3491, + "id": 3645, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3183:8:25", + "referencedDeclaration": 3595, + "src": "3183:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3069,18 +3069,18 @@ "typeString": "address" } ], - "id": 3489, + "id": 3643, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3447, - "src": "3155:20:25", + "referencedDeclaration": 3601, + "src": "3155:20:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 3492, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, @@ -3088,32 +3088,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3155:37:25", + "src": "3155:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3493, + "id": 3647, "nodeType": "EmitStatement", - "src": "3150:42:25" + "src": "3150:42:26" }, { "expression": { "argumentTypes": null, - "id": 3496, + "id": 3650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3494, + "id": 3648, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3202:5:25", + "referencedDeclaration": 3593, + "src": "3202:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3123,43 +3123,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3495, + "id": 3649, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3210:8:25", + "referencedDeclaration": 3595, + "src": "3210:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3202:16:25", + "src": "3202:16:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3497, + "id": 3651, "nodeType": "ExpressionStatement", - "src": "3202:16:25" + "src": "3202:16:26" }, { "expression": { "argumentTypes": null, - "id": 3502, + "id": 3656, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3498, + "id": 3652, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3228:8:25", + "referencedDeclaration": 3595, + "src": "3228:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3173,14 +3173,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3500, + "id": 3654, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3247:1:25", + "src": "3247:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3196,20 +3196,20 @@ "typeString": "int_const 0" } ], - "id": 3499, + "id": 3653, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:25", + "src": "3239:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3501, + "id": 3655, "isConstant": false, "isLValue": false, "isPure": true, @@ -3217,26 +3217,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3239:10:25", + "src": "3239:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3228:21:25", + "src": "3228:21:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3503, + "id": 3657, "nodeType": "ExpressionStatement", - "src": "3228:21:25" + "src": "3228:21:26" } ] }, "documentation": null, - "id": 3505, + "id": 3659, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3244,27 +3244,27 @@ "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3480, + "id": 3634, "nodeType": "ParameterList", "parameters": [], - "src": "3089:2:25" + "src": "3089:2:26" }, "payable": false, "returnParameters": { - "id": 3481, + "id": 3635, "nodeType": "ParameterList", "parameters": [], - "src": "3099:0:25" + "src": "3099:0:26" }, - "scope": 3506, - "src": "3065:191:25", + "scope": 3660, + "src": "3065:191:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2663:595:25" + "scope": 3968, + "src": "2663:595:26" }, { "baseContracts": [ @@ -3272,76 +3272,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3507, + "id": 3661, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3425, - "src": "3528:14:25", + "referencedDeclaration": 3579, + "src": "3528:14:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3508, + "id": 3662, "nodeType": "InheritanceSpecifier", - "src": "3528:14:25" + "src": "3528:14:26" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3509, + "id": 3663, "name": "Owned", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3506, - "src": "3544:5:25", + "referencedDeclaration": 3660, + "src": "3544:5:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3506", + "typeIdentifier": "t_contract$_Owned_$3660", "typeString": "contract Owned" } }, - "id": 3510, + "id": 3664, "nodeType": "InheritanceSpecifier", - "src": "3544:5:25" + "src": "3544:5:26" } ], "contractDependencies": [ - 3425, - 3506 + 3579, + 3660 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3813, + "id": 3967, "linearizedBaseContracts": [ - 3813, - 3506, - 3425 + 3967, + 3660, + 3579 ], "name": "TestToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3513, + "id": 3667, "libraryName": { "contractScope": null, - "id": 3511, + "id": 3665, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3358, - "src": "3562:8:25", + "referencedDeclaration": 3512, + "src": "3562:8:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeIdentifier": "t_contract$_SafeMath_$3512", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3556:24:25", + "src": "3556:24:26", "typeName": { - "id": 3512, + "id": 3666, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3575:4:25", + "src": "3575:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3350,11 +3350,11 @@ }, { "constant": false, - "id": 3515, + "id": 3669, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3586:20:25", + "scope": 3967, + "src": "3586:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3362,10 +3362,10 @@ "typeString": "string" }, "typeName": { - "id": 3514, + "id": 3668, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3586:6:25", + "src": "3586:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3376,11 +3376,11 @@ }, { "constant": false, - "id": 3517, + "id": 3671, "name": "name", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3612:19:25", + "scope": 3967, + "src": "3612:19:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3388,10 +3388,10 @@ "typeString": "string" }, "typeName": { - "id": 3516, + "id": 3670, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3612:6:25", + "src": "3612:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3402,11 +3402,11 @@ }, { "constant": false, - "id": 3519, + "id": 3673, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3637:21:25", + "scope": 3967, + "src": "3637:21:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3414,10 +3414,10 @@ "typeString": "uint8" }, "typeName": { - "id": 3518, + "id": 3672, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3637:5:25", + "src": "3637:5:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3428,11 +3428,11 @@ }, { "constant": false, - "id": 3521, + "id": 3675, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3664:17:25", + "scope": 3967, + "src": "3664:17:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3440,10 +3440,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3520, + "id": 3674, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3664:4:25", + "src": "3664:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3454,11 +3454,11 @@ }, { "constant": false, - "id": 3525, + "id": 3679, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3688:33:25", + "scope": 3967, + "src": "3688:33:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3466,28 +3466,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 3524, + "id": 3678, "keyType": { - "id": 3522, + "id": 3676, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3696:7:25", + "src": "3696:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3688:24:25", + "src": "3688:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3523, + "id": 3677, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3707:4:25", + "src": "3707:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3499,11 +3499,11 @@ }, { "constant": false, - "id": 3531, + "id": 3685, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3727:52:25", + "scope": 3967, + "src": "3727:52:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3511,46 +3511,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 3530, + "id": 3684, "keyType": { - "id": 3526, + "id": 3680, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3735:7:25", + "src": "3735:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3727:44:25", + "src": "3727:44:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 3529, + "id": 3683, "keyType": { - "id": 3527, + "id": 3681, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3754:7:25", + "src": "3754:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3746:24:25", + "src": "3746:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3528, + "id": 3682, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3765:4:25", + "src": "3765:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3563,26 +3563,26 @@ }, { "body": { - "id": 3570, + "id": 3724, "nodeType": "Block", - "src": "3987:235:25", + "src": "3987:235:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3536, + "id": 3690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3534, + "id": 3688, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3997:6:25", + "referencedDeclaration": 3669, + "src": "3997:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3593,14 +3593,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "544b4e", - "id": 3535, + "id": 3689, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4006:5:25", + "src": "4006:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", @@ -3608,32 +3608,32 @@ }, "value": "TKN" }, - "src": "3997:14:25", + "src": "3997:14:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3537, + "id": 3691, "nodeType": "ExpressionStatement", - "src": "3997:14:25" + "src": "3997:14:26" }, { "expression": { "argumentTypes": null, - "id": 3540, + "id": 3694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3538, + "id": 3692, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3517, - "src": "4021:4:25", + "referencedDeclaration": 3671, + "src": "4021:4:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3644,14 +3644,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "546f6b656e204578616d706c65", - "id": 3539, + "id": 3693, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4028:15:25", + "src": "4028:15:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", @@ -3659,32 +3659,32 @@ }, "value": "Token Example" }, - "src": "4021:22:25", + "src": "4021:22:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3541, + "id": 3695, "nodeType": "ExpressionStatement", - "src": "4021:22:25" + "src": "4021:22:26" }, { "expression": { "argumentTypes": null, - "id": 3544, + "id": 3698, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3542, + "id": 3696, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4053:8:25", + "referencedDeclaration": 3673, + "src": "4053:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3695,14 +3695,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3138", - "id": 3543, + "id": 3697, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4064:2:25", + "src": "4064:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -3710,32 +3710,32 @@ }, "value": "18" }, - "src": "4053:13:25", + "src": "4053:13:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 3545, + "id": 3699, "nodeType": "ExpressionStatement", - "src": "4053:13:25" + "src": "4053:13:26" }, { "expression": { "argumentTypes": null, - "id": 3554, + "id": 3708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3546, + "id": 3700, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4076:12:25", + "referencedDeclaration": 3675, + "src": "4076:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3749,7 +3749,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3553, + "id": 3707, "isConstant": false, "isLValue": false, "isPure": false, @@ -3757,14 +3757,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 3547, + "id": 3701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4091:7:25", + "src": "4091:7:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -3780,7 +3780,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3552, + "id": 3706, "isConstant": false, "isLValue": false, "isPure": false, @@ -3788,14 +3788,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 3548, + "id": 3702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4101:2:25", + "src": "4101:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -3810,12 +3810,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3550, + "id": 3704, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4110:8:25", + "referencedDeclaration": 3673, + "src": "4110:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3829,20 +3829,20 @@ "typeString": "uint8" } ], - "id": 3549, + "id": 3703, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:25", + "src": "4105:4:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 3551, + "id": 3705, "isConstant": false, "isLValue": false, "isPure": false, @@ -3850,38 +3850,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4105:14:25", + "src": "4105:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4101:18:25", + "src": "4101:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4091:28:25", + "src": "4091:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4076:43:25", + "src": "4076:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3555, + "id": 3709, "nodeType": "ExpressionStatement", - "src": "4076:43:25" + "src": "4076:43:26" }, { "expression": { "argumentTypes": null, - "id": 3560, + "id": 3714, "isConstant": false, "isLValue": false, "isPure": false, @@ -3890,26 +3890,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3556, + "id": 3710, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4129:8:25", + "referencedDeclaration": 3679, + "src": "4129:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3558, + "id": 3712, "indexExpression": { "argumentTypes": null, - "id": 3557, + "id": 3711, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4138:5:25", + "referencedDeclaration": 3593, + "src": "4138:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3920,7 +3920,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4129:15:25", + "src": "4129:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3930,26 +3930,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3559, + "id": 3713, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4147:12:25", + "referencedDeclaration": 3675, + "src": "4147:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4129:30:25", + "src": "4129:30:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3561, + "id": 3715, "nodeType": "ExpressionStatement", - "src": "4129:30:25" + "src": "4129:30:26" }, { "eventCall": { @@ -3961,14 +3961,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3564, + "id": 3718, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4191:1:25", + "src": "4191:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3984,20 +3984,20 @@ "typeString": "int_const 0" } ], - "id": 3563, + "id": 3717, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:25", + "src": "4183:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3565, + "id": 3719, "isConstant": false, "isLValue": false, "isPure": true, @@ -4005,7 +4005,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4183:10:25", + "src": "4183:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4013,12 +4013,12 @@ }, { "argumentTypes": null, - "id": 3566, + "id": 3720, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4195:5:25", + "referencedDeclaration": 3593, + "src": "4195:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4026,12 +4026,12 @@ }, { "argumentTypes": null, - "id": 3567, + "id": 3721, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4202:12:25", + "referencedDeclaration": 3675, + "src": "4202:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4053,18 +4053,18 @@ "typeString": "uint256" } ], - "id": 3562, + "id": 3716, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "4174:8:25", + "referencedDeclaration": 3570, + "src": "4174:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3568, + "id": 3722, "isConstant": false, "isLValue": false, "isPure": false, @@ -4072,20 +4072,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4174:41:25", + "src": "4174:41:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3569, + "id": 3723, "nodeType": "EmitStatement", - "src": "4169:46:25" + "src": "4169:46:26" } ] }, "documentation": null, - "id": 3571, + "id": 3725, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -4093,29 +4093,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3532, + "id": 3686, "nodeType": "ParameterList", "parameters": [], - "src": "3977:2:25" + "src": "3977:2:26" }, "payable": false, "returnParameters": { - "id": 3533, + "id": 3687, "nodeType": "ParameterList", "parameters": [], - "src": "3987:0:25" + "src": "3987:0:26" }, - "scope": 3813, - "src": "3966:256:25", + "scope": 3967, + "src": "3966:256:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3585, + "id": 3739, "nodeType": "Block", - "src": "4459:62:25", + "src": "4459:62:26", "statements": [ { "expression": { @@ -4125,32 +4125,32 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3578, + "id": 3732, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4493:8:25", + "referencedDeclaration": 3679, + "src": "4493:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3582, + "id": 3736, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 3580, + "id": 3734, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4510:1:25", + "src": "4510:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4166,20 +4166,20 @@ "typeString": "int_const 0" } ], - "id": 3579, + "id": 3733, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:25", + "src": "4502:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3581, + "id": 3735, "isConstant": false, "isLValue": false, "isPure": true, @@ -4187,7 +4187,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4502:10:25", + "src": "4502:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4198,7 +4198,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4493:20:25", + "src": "4493:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4214,32 +4214,32 @@ ], "expression": { "argumentTypes": null, - "id": 3576, + "id": 3730, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4476:12:25", + "referencedDeclaration": 3675, + "src": "4476:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3577, + "id": 3731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "4476:16:25", + "referencedDeclaration": 3461, + "src": "4476:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3583, + "id": 3737, "isConstant": false, "isLValue": false, "isPure": false, @@ -4247,21 +4247,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4476:38:25", + "src": "4476:38:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3575, - "id": 3584, + "functionReturnParameters": 3729, + "id": 3738, "nodeType": "Return", - "src": "4469:45:25" + "src": "4469:45:26" } ] }, "documentation": null, - "id": 3586, + "id": 3740, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4269,23 +4269,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3572, + "id": 3726, "nodeType": "ParameterList", "parameters": [], - "src": "4429:2:25" + "src": "4429:2:26" }, "payable": false, "returnParameters": { - "id": 3575, + "id": 3729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3574, + "id": 3728, "name": "", "nodeType": "VariableDeclaration", - "scope": 3586, - "src": "4453:4:25", + "scope": 3740, + "src": "4453:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4293,10 +4293,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3573, + "id": 3727, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4453:4:25", + "src": "4453:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4306,45 +4306,45 @@ "visibility": "internal" } ], - "src": "4452:6:25" + "src": "4452:6:26" }, - "scope": 3813, - "src": "4409:112:25", + "scope": 3967, + "src": "4409:112:26", "stateMutability": "view", - "superFunction": 3363, + "superFunction": 3517, "visibility": "public" }, { "body": { - "id": 3597, + "id": 3751, "nodeType": "Block", - "src": "4816:44:25", + "src": "4816:44:26", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3593, + "id": 3747, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4833:8:25", + "referencedDeclaration": 3679, + "src": "4833:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3595, + "id": 3749, "indexExpression": { "argumentTypes": null, - "id": 3594, + "id": 3748, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3588, - "src": "4842:10:25", + "referencedDeclaration": 3742, + "src": "4842:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4355,21 +4355,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4833:20:25", + "src": "4833:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3592, - "id": 3596, + "functionReturnParameters": 3746, + "id": 3750, "nodeType": "Return", - "src": "4826:27:25" + "src": "4826:27:26" } ] }, "documentation": null, - "id": 3598, + "id": 3752, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4377,16 +4377,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3589, + "id": 3743, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3588, + "id": 3742, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4761:18:25", + "scope": 3752, + "src": "4761:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4394,10 +4394,10 @@ "typeString": "address" }, "typeName": { - "id": 3587, + "id": 3741, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4761:7:25", + "src": "4761:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4407,20 +4407,20 @@ "visibility": "internal" } ], - "src": "4760:20:25" + "src": "4760:20:26" }, "payable": false, "returnParameters": { - "id": 3592, + "id": 3746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3591, + "id": 3745, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4802:12:25", + "scope": 3752, + "src": "4802:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4428,10 +4428,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3590, + "id": 3744, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4802:4:25", + "src": "4802:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4441,24 +4441,24 @@ "visibility": "internal" } ], - "src": "4801:14:25" + "src": "4801:14:26" }, - "scope": 3813, - "src": "4742:118:25", + "scope": 3967, + "src": "4742:118:26", "stateMutability": "view", - "superFunction": 3370, + "superFunction": 3524, "visibility": "public" }, { "body": { - "id": 3640, + "id": 3794, "nodeType": "Block", - "src": "5276:189:25", + "src": "5276:189:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3618, + "id": 3772, "isConstant": false, "isLValue": false, "isPure": false, @@ -4467,34 +4467,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3607, + "id": 3761, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5286:8:25", + "referencedDeclaration": 3679, + "src": "5286:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3610, + "id": 3764, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3608, + "id": 3762, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5295:3:25", + "referencedDeclaration": 4491, + "src": "5295:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3609, + "id": 3763, "isConstant": false, "isLValue": false, "isPure": false, @@ -4502,7 +4502,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5295:10:25", + "src": "5295:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4513,7 +4513,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5286:20:25", + "src": "5286:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4526,12 +4526,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3616, + "id": 3770, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5334:6:25", + "referencedDeclaration": 3756, + "src": "5334:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4549,34 +4549,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3611, + "id": 3765, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5309:8:25", + "referencedDeclaration": 3679, + "src": "5309:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3614, + "id": 3768, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3612, + "id": 3766, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5318:3:25", + "referencedDeclaration": 4491, + "src": "5318:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3613, + "id": 3767, "isConstant": false, "isLValue": false, "isPure": false, @@ -4584,7 +4584,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5318:10:25", + "src": "5318:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4595,27 +4595,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5309:20:25", + "src": "5309:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3615, + "id": 3769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "5309:24:25", + "referencedDeclaration": 3461, + "src": "5309:24:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3617, + "id": 3771, "isConstant": false, "isLValue": false, "isPure": false, @@ -4623,26 +4623,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5309:32:25", + "src": "5309:32:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5286:55:25", + "src": "5286:55:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3619, + "id": 3773, "nodeType": "ExpressionStatement", - "src": "5286:55:25" + "src": "5286:55:26" }, { "expression": { "argumentTypes": null, - "id": 3629, + "id": 3783, "isConstant": false, "isLValue": false, "isPure": false, @@ -4651,26 +4651,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3620, + "id": 3774, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5351:8:25", + "referencedDeclaration": 3679, + "src": "5351:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3622, + "id": 3776, "indexExpression": { "argumentTypes": null, - "id": 3621, + "id": 3775, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5360:2:25", + "referencedDeclaration": 3754, + "src": "5360:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4681,7 +4681,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5351:12:25", + "src": "5351:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4694,12 +4694,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3627, + "id": 3781, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5383:6:25", + "referencedDeclaration": 3756, + "src": "5383:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4717,26 +4717,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3623, + "id": 3777, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5366:8:25", + "referencedDeclaration": 3679, + "src": "5366:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3625, + "id": 3779, "indexExpression": { "argumentTypes": null, - "id": 3624, + "id": 3778, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5375:2:25", + "referencedDeclaration": 3754, + "src": "5375:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4747,27 +4747,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5366:12:25", + "src": "5366:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3626, + "id": 3780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "5366:16:25", + "referencedDeclaration": 3439, + "src": "5366:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3628, + "id": 3782, "isConstant": false, "isLValue": false, "isPure": false, @@ -4775,21 +4775,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5366:24:25", + "src": "5366:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5351:39:25", + "src": "5351:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3630, + "id": 3784, "nodeType": "ExpressionStatement", - "src": "5351:39:25" + "src": "5351:39:26" }, { "eventCall": { @@ -4799,18 +4799,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3632, + "id": 3786, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5414:3:25", + "referencedDeclaration": 4491, + "src": "5414:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3633, + "id": 3787, "isConstant": false, "isLValue": false, "isPure": false, @@ -4818,7 +4818,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:25", + "src": "5414:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4826,12 +4826,12 @@ }, { "argumentTypes": null, - "id": 3634, + "id": 3788, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5426:2:25", + "referencedDeclaration": 3754, + "src": "5426:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4839,12 +4839,12 @@ }, { "argumentTypes": null, - "id": 3635, + "id": 3789, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5430:6:25", + "referencedDeclaration": 3756, + "src": "5430:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4866,18 +4866,18 @@ "typeString": "uint256" } ], - "id": 3631, + "id": 3785, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5405:8:25", + "referencedDeclaration": 3570, + "src": "5405:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3636, + "id": 3790, "isConstant": false, "isLValue": false, "isPure": false, @@ -4885,28 +4885,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5405:32:25", + "src": "5405:32:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3637, + "id": 3791, "nodeType": "EmitStatement", - "src": "5400:37:25" + "src": "5400:37:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3638, + "id": 3792, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5454:4:25", + "src": "5454:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4914,15 +4914,15 @@ }, "value": "true" }, - "functionReturnParameters": 3606, - "id": 3639, + "functionReturnParameters": 3760, + "id": 3793, "nodeType": "Return", - "src": "5447:11:25" + "src": "5447:11:26" } ] }, "documentation": null, - "id": 3641, + "id": 3795, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4930,16 +4930,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3603, + "id": 3757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3600, + "id": 3754, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5221:10:25", + "scope": 3795, + "src": "5221:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4947,10 +4947,10 @@ "typeString": "address" }, "typeName": { - "id": 3599, + "id": 3753, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5221:7:25", + "src": "5221:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4961,11 +4961,11 @@ }, { "constant": false, - "id": 3602, + "id": 3756, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5233:11:25", + "scope": 3795, + "src": "5233:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4973,10 +4973,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3601, + "id": 3755, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5233:4:25", + "src": "5233:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4986,20 +4986,20 @@ "visibility": "internal" } ], - "src": "5220:25:25" + "src": "5220:25:26" }, "payable": false, "returnParameters": { - "id": 3606, + "id": 3760, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3605, + "id": 3759, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5262:12:25", + "scope": 3795, + "src": "5262:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5007,10 +5007,10 @@ "typeString": "bool" }, "typeName": { - "id": 3604, + "id": 3758, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5262:4:25", + "src": "5262:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5020,24 +5020,24 @@ "visibility": "internal" } ], - "src": "5261:14:25" + "src": "5261:14:26" }, - "scope": 3813, - "src": "5203:262:25", + "scope": 3967, + "src": "5203:262:26", "stateMutability": "nonpayable", - "superFunction": 3388, + "superFunction": 3542, "visibility": "public" }, { "body": { - "id": 3668, + "id": 3822, "nodeType": "Block", - "src": "6048:127:25", + "src": "6048:127:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3657, + "id": 3811, "isConstant": false, "isLValue": false, "isPure": false, @@ -5048,34 +5048,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3650, + "id": 3804, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6058:7:25", + "referencedDeclaration": 3685, + "src": "6058:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3654, + "id": 3808, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3651, + "id": 3805, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6066:3:25", + "referencedDeclaration": 4491, + "src": "6066:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3652, + "id": 3806, "isConstant": false, "isLValue": false, "isPure": false, @@ -5083,7 +5083,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6066:10:25", + "src": "6066:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5094,21 +5094,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6058:19:25", + "src": "6058:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3655, + "id": 3809, "indexExpression": { "argumentTypes": null, - "id": 3653, + "id": 3807, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6078:7:25", + "referencedDeclaration": 3797, + "src": "6078:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5119,7 +5119,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6058:28:25", + "src": "6058:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5129,26 +5129,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3656, + "id": 3810, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6089:6:25", + "referencedDeclaration": 3799, + "src": "6089:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6058:37:25", + "src": "6058:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3658, + "id": 3812, "nodeType": "ExpressionStatement", - "src": "6058:37:25" + "src": "6058:37:26" }, { "eventCall": { @@ -5158,18 +5158,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3660, + "id": 3814, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6119:3:25", + "referencedDeclaration": 4491, + "src": "6119:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3661, + "id": 3815, "isConstant": false, "isLValue": false, "isPure": false, @@ -5177,7 +5177,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6119:10:25", + "src": "6119:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5185,12 +5185,12 @@ }, { "argumentTypes": null, - "id": 3662, + "id": 3816, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6131:7:25", + "referencedDeclaration": 3797, + "src": "6131:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5198,12 +5198,12 @@ }, { "argumentTypes": null, - "id": 3663, + "id": 3817, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6140:6:25", + "referencedDeclaration": 3799, + "src": "6140:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5225,18 +5225,18 @@ "typeString": "uint256" } ], - "id": 3659, + "id": 3813, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "6110:8:25", + "referencedDeclaration": 3578, + "src": "6110:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3664, + "id": 3818, "isConstant": false, "isLValue": false, "isPure": false, @@ -5244,28 +5244,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6110:37:25", + "src": "6110:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3665, + "id": 3819, "nodeType": "EmitStatement", - "src": "6105:42:25" + "src": "6105:42:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3666, + "id": 3820, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6164:4:25", + "src": "6164:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5273,15 +5273,15 @@ }, "value": "true" }, - "functionReturnParameters": 3649, - "id": 3667, + "functionReturnParameters": 3803, + "id": 3821, "nodeType": "Return", - "src": "6157:11:25" + "src": "6157:11:26" } ] }, "documentation": null, - "id": 3669, + "id": 3823, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5289,16 +5289,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3646, + "id": 3800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3643, + "id": 3797, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "5988:15:25", + "scope": 3823, + "src": "5988:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5306,10 +5306,10 @@ "typeString": "address" }, "typeName": { - "id": 3642, + "id": 3796, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5988:7:25", + "src": "5988:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5320,11 +5320,11 @@ }, { "constant": false, - "id": 3645, + "id": 3799, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6005:11:25", + "scope": 3823, + "src": "6005:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5332,10 +5332,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3644, + "id": 3798, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6005:4:25", + "src": "6005:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5345,20 +5345,20 @@ "visibility": "internal" } ], - "src": "5987:30:25" + "src": "5987:30:26" }, "payable": false, "returnParameters": { - "id": 3649, + "id": 3803, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3648, + "id": 3802, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6034:12:25", + "scope": 3823, + "src": "6034:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5366,10 +5366,10 @@ "typeString": "bool" }, "typeName": { - "id": 3647, + "id": 3801, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6034:4:25", + "src": "6034:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5379,24 +5379,24 @@ "visibility": "internal" } ], - "src": "6033:14:25" + "src": "6033:14:26" }, - "scope": 3813, - "src": "5971:204:25", + "scope": 3967, + "src": "5971:204:26", "stateMutability": "nonpayable", - "superFunction": 3397, + "superFunction": 3551, "visibility": "public" }, { "body": { - "id": 3727, + "id": 3881, "nodeType": "Block", - "src": "6798:246:25", + "src": "6798:246:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3689, + "id": 3843, "isConstant": false, "isLValue": false, "isPure": false, @@ -5405,26 +5405,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3680, + "id": 3834, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6808:8:25", + "referencedDeclaration": 3679, + "src": "6808:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3682, + "id": 3836, "indexExpression": { "argumentTypes": null, - "id": 3681, + "id": 3835, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6817:4:25", + "referencedDeclaration": 3825, + "src": "6817:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5435,7 +5435,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6808:14:25", + "src": "6808:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5448,12 +5448,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3687, + "id": 3841, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6844:6:25", + "referencedDeclaration": 3829, + "src": "6844:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5471,26 +5471,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3683, + "id": 3837, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6825:8:25", + "referencedDeclaration": 3679, + "src": "6825:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3685, + "id": 3839, "indexExpression": { "argumentTypes": null, - "id": 3684, + "id": 3838, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6834:4:25", + "referencedDeclaration": 3825, + "src": "6834:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5501,27 +5501,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6825:14:25", + "src": "6825:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3686, + "id": 3840, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6825:18:25", + "referencedDeclaration": 3461, + "src": "6825:18:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3688, + "id": 3842, "isConstant": false, "isLValue": false, "isPure": false, @@ -5529,26 +5529,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6825:26:25", + "src": "6825:26:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6808:43:25", + "src": "6808:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3690, + "id": 3844, "nodeType": "ExpressionStatement", - "src": "6808:43:25" + "src": "6808:43:26" }, { "expression": { "argumentTypes": null, - "id": 3706, + "id": 3860, "isConstant": false, "isLValue": false, "isPure": false, @@ -5559,26 +5559,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3691, + "id": 3845, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6861:7:25", + "referencedDeclaration": 3685, + "src": "6861:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3695, + "id": 3849, "indexExpression": { "argumentTypes": null, - "id": 3692, + "id": 3846, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6869:4:25", + "referencedDeclaration": 3825, + "src": "6869:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5589,29 +5589,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6861:13:25", + "src": "6861:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3696, + "id": 3850, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3693, + "id": 3847, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6875:3:25", + "referencedDeclaration": 4491, + "src": "6875:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3694, + "id": 3848, "isConstant": false, "isLValue": false, "isPure": false, @@ -5619,7 +5619,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6875:10:25", + "src": "6875:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5630,7 +5630,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6861:25:25", + "src": "6861:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5643,12 +5643,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3704, + "id": 3858, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6919:6:25", + "referencedDeclaration": 3829, + "src": "6919:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5668,26 +5668,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3697, + "id": 3851, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6889:7:25", + "referencedDeclaration": 3685, + "src": "6889:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3699, + "id": 3853, "indexExpression": { "argumentTypes": null, - "id": 3698, + "id": 3852, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6897:4:25", + "referencedDeclaration": 3825, + "src": "6897:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5698,29 +5698,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:13:25", + "src": "6889:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3702, + "id": 3856, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3700, + "id": 3854, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6903:3:25", + "referencedDeclaration": 4491, + "src": "6903:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3701, + "id": 3855, "isConstant": false, "isLValue": false, "isPure": false, @@ -5728,7 +5728,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6903:10:25", + "src": "6903:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5739,27 +5739,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:25:25", + "src": "6889:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3703, + "id": 3857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6889:29:25", + "referencedDeclaration": 3461, + "src": "6889:29:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3705, + "id": 3859, "isConstant": false, "isLValue": false, "isPure": false, @@ -5767,26 +5767,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6889:37:25", + "src": "6889:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6861:65:25", + "src": "6861:65:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3707, + "id": 3861, "nodeType": "ExpressionStatement", - "src": "6861:65:25" + "src": "6861:65:26" }, { "expression": { "argumentTypes": null, - "id": 3717, + "id": 3871, "isConstant": false, "isLValue": false, "isPure": false, @@ -5795,26 +5795,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3708, + "id": 3862, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6936:8:25", + "referencedDeclaration": 3679, + "src": "6936:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3710, + "id": 3864, "indexExpression": { "argumentTypes": null, - "id": 3709, + "id": 3863, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6945:2:25", + "referencedDeclaration": 3827, + "src": "6945:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5825,7 +5825,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6936:12:25", + "src": "6936:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5838,12 +5838,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3715, + "id": 3869, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6968:6:25", + "referencedDeclaration": 3829, + "src": "6968:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5861,26 +5861,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3711, + "id": 3865, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6951:8:25", + "referencedDeclaration": 3679, + "src": "6951:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3713, + "id": 3867, "indexExpression": { "argumentTypes": null, - "id": 3712, + "id": 3866, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6960:2:25", + "referencedDeclaration": 3827, + "src": "6960:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5891,27 +5891,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6951:12:25", + "src": "6951:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3714, + "id": 3868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "6951:16:25", + "referencedDeclaration": 3439, + "src": "6951:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3716, + "id": 3870, "isConstant": false, "isLValue": false, "isPure": false, @@ -5919,21 +5919,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6951:24:25", + "src": "6951:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6936:39:25", + "src": "6936:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3718, + "id": 3872, "nodeType": "ExpressionStatement", - "src": "6936:39:25" + "src": "6936:39:26" }, { "eventCall": { @@ -5941,12 +5941,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3720, + "id": 3874, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6999:4:25", + "referencedDeclaration": 3825, + "src": "6999:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5954,12 +5954,12 @@ }, { "argumentTypes": null, - "id": 3721, + "id": 3875, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "7005:2:25", + "referencedDeclaration": 3827, + "src": "7005:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5967,12 +5967,12 @@ }, { "argumentTypes": null, - "id": 3722, + "id": 3876, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "7009:6:25", + "referencedDeclaration": 3829, + "src": "7009:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5994,18 +5994,18 @@ "typeString": "uint256" } ], - "id": 3719, + "id": 3873, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "6990:8:25", + "referencedDeclaration": 3570, + "src": "6990:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3723, + "id": 3877, "isConstant": false, "isLValue": false, "isPure": false, @@ -6013,28 +6013,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6990:26:25", + "src": "6990:26:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3724, + "id": 3878, "nodeType": "EmitStatement", - "src": "6985:31:25" + "src": "6985:31:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3725, + "id": 3879, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7033:4:25", + "src": "7033:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6042,15 +6042,15 @@ }, "value": "true" }, - "functionReturnParameters": 3679, - "id": 3726, + "functionReturnParameters": 3833, + "id": 3880, "nodeType": "Return", - "src": "7026:11:25" + "src": "7026:11:26" } ] }, "documentation": null, - "id": 3728, + "id": 3882, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6058,16 +6058,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3676, + "id": 3830, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3671, + "id": 3825, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6729:12:25", + "scope": 3882, + "src": "6729:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6075,10 +6075,10 @@ "typeString": "address" }, "typeName": { - "id": 3670, + "id": 3824, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6729:7:25", + "src": "6729:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6089,11 +6089,11 @@ }, { "constant": false, - "id": 3673, + "id": 3827, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6743:10:25", + "scope": 3882, + "src": "6743:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6101,10 +6101,10 @@ "typeString": "address" }, "typeName": { - "id": 3672, + "id": 3826, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6743:7:25", + "src": "6743:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6115,11 +6115,11 @@ }, { "constant": false, - "id": 3675, + "id": 3829, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6755:11:25", + "scope": 3882, + "src": "6755:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6127,10 +6127,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3674, + "id": 3828, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6755:4:25", + "src": "6755:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6140,20 +6140,20 @@ "visibility": "internal" } ], - "src": "6728:39:25" + "src": "6728:39:26" }, "payable": false, "returnParameters": { - "id": 3679, + "id": 3833, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3678, + "id": 3832, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6784:12:25", + "scope": 3882, + "src": "6784:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6161,10 +6161,10 @@ "typeString": "bool" }, "typeName": { - "id": 3677, + "id": 3831, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6784:4:25", + "src": "6784:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6174,19 +6174,19 @@ "visibility": "internal" } ], - "src": "6783:14:25" + "src": "6783:14:26" }, - "scope": 3813, - "src": "6707:337:25", + "scope": 3967, + "src": "6707:337:26", "stateMutability": "nonpayable", - "superFunction": 3408, + "superFunction": 3562, "visibility": "public" }, { "body": { - "id": 3743, + "id": 3897, "nodeType": "Block", - "src": "7418:52:25", + "src": "7418:52:26", "statements": [ { "expression": { @@ -6195,26 +6195,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3737, + "id": 3891, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7435:7:25", + "referencedDeclaration": 3685, + "src": "7435:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3739, + "id": 3893, "indexExpression": { "argumentTypes": null, - "id": 3738, + "id": 3892, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3730, - "src": "7443:10:25", + "referencedDeclaration": 3884, + "src": "7443:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6225,21 +6225,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:19:25", + "src": "7435:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3741, + "id": 3895, "indexExpression": { "argumentTypes": null, - "id": 3740, + "id": 3894, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "7455:7:25", + "referencedDeclaration": 3886, + "src": "7455:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6250,21 +6250,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:28:25", + "src": "7435:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3736, - "id": 3742, + "functionReturnParameters": 3890, + "id": 3896, "nodeType": "Return", - "src": "7428:35:25" + "src": "7428:35:26" } ] }, "documentation": null, - "id": 3744, + "id": 3898, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6272,16 +6272,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3733, + "id": 3887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3730, + "id": 3884, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7344:18:25", + "scope": 3898, + "src": "7344:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6289,10 +6289,10 @@ "typeString": "address" }, "typeName": { - "id": 3729, + "id": 3883, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7344:7:25", + "src": "7344:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6303,11 +6303,11 @@ }, { "constant": false, - "id": 3732, + "id": 3886, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7364:15:25", + "scope": 3898, + "src": "7364:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6315,10 +6315,10 @@ "typeString": "address" }, "typeName": { - "id": 3731, + "id": 3885, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7364:7:25", + "src": "7364:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6328,20 +6328,20 @@ "visibility": "internal" } ], - "src": "7343:37:25" + "src": "7343:37:26" }, "payable": false, "returnParameters": { - "id": 3736, + "id": 3890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3735, + "id": 3889, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7402:14:25", + "scope": 3898, + "src": "7402:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6349,10 +6349,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3734, + "id": 3888, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7402:4:25", + "src": "7402:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6362,24 +6362,24 @@ "visibility": "internal" } ], - "src": "7401:16:25" + "src": "7401:16:26" }, - "scope": 3813, - "src": "7325:145:25", + "scope": 3967, + "src": "7325:145:26", "stateMutability": "view", - "superFunction": 3379, + "superFunction": 3533, "visibility": "public" }, { "body": { - "id": 3784, + "id": 3938, "nodeType": "Block", - "src": "7926:216:25", + "src": "7926:216:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3762, + "id": 3916, "isConstant": false, "isLValue": false, "isPure": false, @@ -6390,34 +6390,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3755, + "id": 3909, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7936:7:25", + "referencedDeclaration": 3685, + "src": "7936:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3759, + "id": 3913, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3756, + "id": 3910, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7944:3:25", + "referencedDeclaration": 4491, + "src": "7944:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3757, + "id": 3911, "isConstant": false, "isLValue": false, "isPure": false, @@ -6425,7 +6425,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7944:10:25", + "src": "7944:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6436,21 +6436,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7936:19:25", + "src": "7936:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3760, + "id": 3914, "indexExpression": { "argumentTypes": null, - "id": 3758, + "id": 3912, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "7956:7:25", + "referencedDeclaration": 3900, + "src": "7956:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6461,7 +6461,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7936:28:25", + "src": "7936:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6471,26 +6471,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3761, + "id": 3915, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "7967:6:25", + "referencedDeclaration": 3902, + "src": "7967:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7936:37:25", + "src": "7936:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3763, + "id": 3917, "nodeType": "ExpressionStatement", - "src": "7936:37:25" + "src": "7936:37:26" }, { "eventCall": { @@ -6500,18 +6500,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3765, + "id": 3919, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7997:3:25", + "referencedDeclaration": 4491, + "src": "7997:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3766, + "id": 3920, "isConstant": false, "isLValue": false, "isPure": false, @@ -6519,7 +6519,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7997:10:25", + "src": "7997:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6527,12 +6527,12 @@ }, { "argumentTypes": null, - "id": 3767, + "id": 3921, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8009:7:25", + "referencedDeclaration": 3900, + "src": "8009:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6540,12 +6540,12 @@ }, { "argumentTypes": null, - "id": 3768, + "id": 3922, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8018:6:25", + "referencedDeclaration": 3902, + "src": "8018:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6567,18 +6567,18 @@ "typeString": "uint256" } ], - "id": 3764, + "id": 3918, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "7988:8:25", + "referencedDeclaration": 3578, + "src": "7988:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3769, + "id": 3923, "isConstant": false, "isLValue": false, "isPure": false, @@ -6586,15 +6586,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7988:37:25", + "src": "7988:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3770, + "id": 3924, "nodeType": "EmitStatement", - "src": "7983:42:25" + "src": "7983:42:26" }, { "expression": { @@ -6604,18 +6604,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3775, + "id": 3929, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "8083:3:25", + "referencedDeclaration": 4491, + "src": "8083:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3776, + "id": 3930, "isConstant": false, "isLValue": false, "isPure": false, @@ -6623,7 +6623,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8083:10:25", + "src": "8083:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6631,12 +6631,12 @@ }, { "argumentTypes": null, - "id": 3777, + "id": 3931, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8095:6:25", + "referencedDeclaration": 3902, + "src": "8095:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6644,25 +6644,25 @@ }, { "argumentTypes": null, - "id": 3778, + "id": 3932, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3907, - "src": "8103:4:25", + "referencedDeclaration": 4574, + "src": "8103:4:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" } }, { "argumentTypes": null, - "id": 3779, + "id": 3933, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3750, - "src": "8109:4:25", + "referencedDeclaration": 3904, + "src": "8109:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6680,7 +6680,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" }, { @@ -6693,12 +6693,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3772, + "id": 3926, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8058:7:25", + "referencedDeclaration": 3900, + "src": "8058:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6712,18 +6712,18 @@ "typeString": "address" } ], - "id": 3771, + "id": 3925, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3437, - "src": "8035:22:25", + "referencedDeclaration": 3591, + "src": "8035:22:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, - "id": 3773, + "id": 3927, "isConstant": false, "isLValue": false, "isPure": false, @@ -6731,27 +6731,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:31:25", + "src": "8035:31:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", "typeString": "contract ApproveAndCallFallBack" } }, - "id": 3774, + "id": 3928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", - "referencedDeclaration": 3436, - "src": "8035:47:25", + "referencedDeclaration": 3590, + "src": "8035:47:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,address,bytes memory) external" } }, - "id": 3780, + "id": 3934, "isConstant": false, "isLValue": false, "isPure": false, @@ -6759,28 +6759,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:79:25", + "src": "8035:79:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3781, + "id": 3935, "nodeType": "ExpressionStatement", - "src": "8035:79:25" + "src": "8035:79:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3782, + "id": 3936, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8131:4:25", + "src": "8131:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6788,15 +6788,15 @@ }, "value": "true" }, - "functionReturnParameters": 3754, - "id": 3783, + "functionReturnParameters": 3908, + "id": 3937, "nodeType": "Return", - "src": "8124:11:25" + "src": "8124:11:26" } ] }, "documentation": null, - "id": 3785, + "id": 3939, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6804,16 +6804,16 @@ "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 3751, + "id": 3905, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3746, + "id": 3900, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7854:15:25", + "scope": 3939, + "src": "7854:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6821,10 +6821,10 @@ "typeString": "address" }, "typeName": { - "id": 3745, + "id": 3899, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7854:7:25", + "src": "7854:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6835,11 +6835,11 @@ }, { "constant": false, - "id": 3748, + "id": 3902, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7871:11:25", + "scope": 3939, + "src": "7871:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6847,10 +6847,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3747, + "id": 3901, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7871:4:25", + "src": "7871:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6861,11 +6861,11 @@ }, { "constant": false, - "id": 3750, + "id": 3904, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7884:10:25", + "scope": 3939, + "src": "7884:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6873,10 +6873,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3749, + "id": 3903, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7884:5:25", + "src": "7884:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6886,20 +6886,20 @@ "visibility": "internal" } ], - "src": "7853:42:25" + "src": "7853:42:26" }, "payable": false, "returnParameters": { - "id": 3754, + "id": 3908, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3753, + "id": 3907, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7912:12:25", + "scope": 3939, + "src": "7912:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6907,10 +6907,10 @@ "typeString": "bool" }, "typeName": { - "id": 3752, + "id": 3906, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7912:4:25", + "src": "7912:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6920,19 +6920,19 @@ "visibility": "internal" } ], - "src": "7911:14:25" + "src": "7911:14:26" }, - "scope": 3813, - "src": "7830:312:25", + "scope": 3967, + "src": "7830:312:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3791, + "id": 3945, "nodeType": "Block", - "src": "8360:25:25", + "src": "8360:25:26", "statements": [ { "expression": { @@ -6940,21 +6940,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3788, + "id": 3942, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 3833, - 3834 + 4496, + 4497 ], - "referencedDeclaration": 3833, - "src": "8370:6:25", + "referencedDeclaration": 4496, + "src": "8370:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 3789, + "id": 3943, "isConstant": false, "isLValue": false, "isPure": false, @@ -6962,20 +6962,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8370:8:25", + "src": "8370:8:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3790, + "id": 3944, "nodeType": "ExpressionStatement", - "src": "8370:8:25" + "src": "8370:8:26" } ] }, "documentation": null, - "id": 3792, + "id": 3946, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6983,29 +6983,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3786, + "id": 3940, "nodeType": "ParameterList", "parameters": [], - "src": "8342:2:25" + "src": "8342:2:26" }, "payable": true, "returnParameters": { - "id": 3787, + "id": 3941, "nodeType": "ParameterList", "parameters": [], - "src": "8360:0:25" + "src": "8360:0:26" }, - "scope": 3813, - "src": "8333:52:25", + "scope": 3967, + "src": "8333:52:26", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3811, + "id": 3965, "nodeType": "Block", - "src": "8723:76:25", + "src": "8723:76:26", "statements": [ { "expression": { @@ -7013,12 +7013,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3807, + "id": 3961, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "8778:5:25", + "referencedDeclaration": 3593, + "src": "8778:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7026,12 +7026,12 @@ }, { "argumentTypes": null, - "id": 3808, + "id": 3962, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3796, - "src": "8785:6:25", + "referencedDeclaration": 3950, + "src": "8785:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7054,12 +7054,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3804, + "id": 3958, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3794, - "src": "8755:12:25", + "referencedDeclaration": 3948, + "src": "8755:12:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7073,18 +7073,18 @@ "typeString": "address" } ], - "id": 3803, + "id": 3957, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3425, - "src": "8740:14:25", + "referencedDeclaration": 3579, + "src": "8740:14:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", "typeString": "type(contract ERC20Interface)" } }, - "id": 3805, + "id": 3959, "isConstant": false, "isLValue": false, "isPure": false, @@ -7092,27 +7092,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:28:25", + "src": "8740:28:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3806, + "id": 3960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 3388, - "src": "8740:37:25", + "referencedDeclaration": 3542, + "src": "8740:37:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 3809, + "id": 3963, "isConstant": false, "isLValue": false, "isPure": false, @@ -7120,58 +7120,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:52:25", + "src": "8740:52:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3802, - "id": 3810, + "functionReturnParameters": 3956, + "id": 3964, "nodeType": "Return", - "src": "8733:59:25" + "src": "8733:59:26" } ] }, "documentation": null, - "id": 3812, + "id": 3966, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3799, + "id": 3953, "modifierName": { "argumentTypes": null, - "id": 3798, + "id": 3952, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "8690:9:25", + "referencedDeclaration": 3621, + "src": "8690:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8690:9:25" + "src": "8690:9:26" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 3797, + "id": 3951, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3794, + "id": 3948, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8648:20:25", + "scope": 3966, + "src": "8648:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7179,10 +7179,10 @@ "typeString": "address" }, "typeName": { - "id": 3793, + "id": 3947, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8648:7:25", + "src": "8648:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7193,11 +7193,11 @@ }, { "constant": false, - "id": 3796, + "id": 3950, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8670:11:25", + "scope": 3966, + "src": "8670:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7205,10 +7205,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3795, + "id": 3949, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8670:4:25", + "src": "8670:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7218,20 +7218,20 @@ "visibility": "internal" } ], - "src": "8647:35:25" + "src": "8647:35:26" }, "payable": false, "returnParameters": { - "id": 3802, + "id": 3956, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3801, + "id": 3955, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8709:12:25", + "scope": 3966, + "src": "8709:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7239,10 +7239,10 @@ "typeString": "bool" }, "typeName": { - "id": 3800, + "id": 3954, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8709:4:25", + "src": "8709:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7252,45 +7252,45 @@ "visibility": "internal" } ], - "src": "8708:14:25" + "src": "8708:14:26" }, - "scope": 3813, - "src": "8617:182:25", + "scope": 3967, + "src": "8617:182:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "3506:5295:25" + "scope": 3968, + "src": "3506:5295:26" } ], - "src": "0:8801:25" + "src": "0:8801:26" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ - 3437 + 3591 ], "ERC20Interface": [ - 3425 + 3579 ], "Owned": [ - 3506 + 3660 ], "SafeMath": [ - 3358 + 3512 ], "TestToken": [ - 3813 + 3967 ] }, - "id": 3814, + "id": 3968, "nodeType": "SourceUnit", "nodes": [ { - "id": 3263, + "id": 3417, "literals": [ "solidity", "^", @@ -7298,7 +7298,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:24:26" }, { "baseContracts": [], @@ -7306,35 +7306,35 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 3358, + "id": 3512, "linearizedBaseContracts": [ - 3358 + 3512 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3284, + "id": 3438, "nodeType": "Block", - "src": "719:51:25", + "src": "719:51:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3276, + "id": 3430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3272, + "id": 3426, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "729:1:25", + "referencedDeclaration": 3424, + "src": "729:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7348,19 +7348,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3275, + "id": 3429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3273, + "id": 3427, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "733:1:25", + "referencedDeclaration": 3419, + "src": "733:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7370,32 +7370,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 3274, + "id": 3428, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3267, - "src": "737:1:25", + "referencedDeclaration": 3421, + "src": "737:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:5:25", + "src": "733:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "729:9:25", + "src": "729:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3277, + "id": 3431, "nodeType": "ExpressionStatement", - "src": "729:9:25" + "src": "729:9:26" }, { "expression": { @@ -7407,19 +7407,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3281, + "id": 3435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3279, + "id": 3433, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "756:1:25", + "referencedDeclaration": 3424, + "src": "756:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7429,18 +7429,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 3280, + "id": 3434, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "761:1:25", + "referencedDeclaration": 3419, + "src": "761:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "756:6:25", + "src": "756:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7454,21 +7454,21 @@ "typeString": "bool" } ], - "id": 3278, + "id": 3432, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "748:7:25", + "referencedDeclaration": 4494, + "src": "748:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3282, + "id": 3436, "isConstant": false, "isLValue": false, "isPure": false, @@ -7476,20 +7476,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:15:25", + "src": "748:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3283, + "id": 3437, "nodeType": "ExpressionStatement", - "src": "748:15:25" + "src": "748:15:26" } ] }, "documentation": null, - "id": 3285, + "id": 3439, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7497,16 +7497,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 3268, + "id": 3422, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3265, + "id": 3419, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "672:6:25", + "scope": 3439, + "src": "672:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7514,10 +7514,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3264, + "id": 3418, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "672:4:25", + "src": "672:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7528,11 +7528,11 @@ }, { "constant": false, - "id": 3267, + "id": 3421, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "680:6:25", + "scope": 3439, + "src": "680:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7540,10 +7540,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3266, + "id": 3420, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "680:4:25", + "src": "680:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7553,20 +7553,20 @@ "visibility": "internal" } ], - "src": "671:16:25" + "src": "671:16:26" }, "payable": false, "returnParameters": { - "id": 3271, + "id": 3425, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3270, + "id": 3424, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "711:6:25", + "scope": 3439, + "src": "711:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7574,10 +7574,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3269, + "id": 3423, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "711:4:25", + "src": "711:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7587,19 +7587,19 @@ "visibility": "internal" } ], - "src": "710:8:25" + "src": "710:8:26" }, - "scope": 3358, - "src": "659:111:25", + "scope": 3512, + "src": "659:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3306, + "id": 3460, "nodeType": "Block", - "src": "835:51:25", + "src": "835:51:26", "statements": [ { "expression": { @@ -7611,19 +7611,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3297, + "id": 3451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3295, + "id": 3449, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "853:1:25", + "referencedDeclaration": 3443, + "src": "853:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7633,18 +7633,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 3296, + "id": 3450, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "858:1:25", + "referencedDeclaration": 3441, + "src": "858:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "853:6:25", + "src": "853:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7658,21 +7658,21 @@ "typeString": "bool" } ], - "id": 3294, + "id": 3448, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "845:7:25", + "referencedDeclaration": 4494, + "src": "845:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3298, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, @@ -7680,32 +7680,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:15:25", + "src": "845:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3299, + "id": 3453, "nodeType": "ExpressionStatement", - "src": "845:15:25" + "src": "845:15:26" }, { "expression": { "argumentTypes": null, - "id": 3304, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3300, + "id": 3454, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3292, - "src": "870:1:25", + "referencedDeclaration": 3446, + "src": "870:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7719,19 +7719,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3303, + "id": 3457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3301, + "id": 3455, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "874:1:25", + "referencedDeclaration": 3441, + "src": "874:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7741,37 +7741,37 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 3302, + "id": 3456, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "878:1:25", + "referencedDeclaration": 3443, + "src": "878:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "874:5:25", + "src": "874:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "870:9:25", + "src": "870:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3305, + "id": 3459, "nodeType": "ExpressionStatement", - "src": "870:9:25" + "src": "870:9:26" } ] }, "documentation": null, - "id": 3307, + "id": 3461, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7779,16 +7779,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 3290, + "id": 3444, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3287, + "id": 3441, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "788:6:25", + "scope": 3461, + "src": "788:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7796,10 +7796,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3286, + "id": 3440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "788:4:25", + "src": "788:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7810,11 +7810,11 @@ }, { "constant": false, - "id": 3289, + "id": 3443, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "796:6:25", + "scope": 3461, + "src": "796:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7822,10 +7822,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3288, + "id": 3442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "796:4:25", + "src": "796:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7835,20 +7835,20 @@ "visibility": "internal" } ], - "src": "787:16:25" + "src": "787:16:26" }, "payable": false, "returnParameters": { - "id": 3293, + "id": 3447, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3292, + "id": 3446, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "827:6:25", + "scope": 3461, + "src": "827:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7856,10 +7856,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3291, + "id": 3445, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:25", + "src": "827:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7869,36 +7869,36 @@ "visibility": "internal" } ], - "src": "826:8:25" + "src": "826:8:26" }, - "scope": 3358, - "src": "775:111:25", + "scope": 3512, + "src": "775:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3334, + "id": 3488, "nodeType": "Block", - "src": "951:65:25", + "src": "951:65:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3320, + "id": 3474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3316, + "id": 3470, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "961:1:25", + "referencedDeclaration": 3468, + "src": "961:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7912,19 +7912,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3319, + "id": 3473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3317, + "id": 3471, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "965:1:25", + "referencedDeclaration": 3463, + "src": "965:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7934,32 +7934,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 3318, + "id": 3472, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "969:1:25", + "referencedDeclaration": 3465, + "src": "969:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "965:5:25", + "src": "965:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "961:9:25", + "src": "961:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3321, + "id": 3475, "nodeType": "ExpressionStatement", - "src": "961:9:25" + "src": "961:9:26" }, { "expression": { @@ -7971,7 +7971,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3331, + "id": 3485, "isConstant": false, "isLValue": false, "isPure": false, @@ -7982,19 +7982,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3325, + "id": 3479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3323, + "id": 3477, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "988:1:25", + "referencedDeclaration": 3463, + "src": "988:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8005,14 +8005,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3324, + "id": 3478, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "993:1:25", + "src": "993:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8020,7 +8020,7 @@ }, "value": "0" }, - "src": "988:6:25", + "src": "988:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8034,7 +8034,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3330, + "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, @@ -8045,19 +8045,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3328, + "id": 3482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3326, + "id": 3480, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "998:1:25", + "referencedDeclaration": 3468, + "src": "998:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8067,18 +8067,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3327, + "id": 3481, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "1002:1:25", + "referencedDeclaration": 3463, + "src": "1002:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:5:25", + "src": "998:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8088,24 +8088,24 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3329, + "id": 3483, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "1007:1:25", + "referencedDeclaration": 3465, + "src": "1007:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:25", + "src": "998:10:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "988:20:25", + "src": "988:20:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8119,21 +8119,21 @@ "typeString": "bool" } ], - "id": 3322, + "id": 3476, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "980:7:25", + "referencedDeclaration": 4494, + "src": "980:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3332, + "id": 3486, "isConstant": false, "isLValue": false, "isPure": false, @@ -8141,20 +8141,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "980:29:25", + "src": "980:29:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3333, + "id": 3487, "nodeType": "ExpressionStatement", - "src": "980:29:25" + "src": "980:29:26" } ] }, "documentation": null, - "id": 3335, + "id": 3489, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8162,16 +8162,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 3312, + "id": 3466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3309, + "id": 3463, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "904:6:25", + "scope": 3489, + "src": "904:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8179,10 +8179,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3308, + "id": 3462, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "904:4:25", + "src": "904:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8193,11 +8193,11 @@ }, { "constant": false, - "id": 3311, + "id": 3465, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "912:6:25", + "scope": 3489, + "src": "912:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8205,10 +8205,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3310, + "id": 3464, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "912:4:25", + "src": "912:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8218,20 +8218,20 @@ "visibility": "internal" } ], - "src": "903:16:25" + "src": "903:16:26" }, "payable": false, "returnParameters": { - "id": 3315, + "id": 3469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3314, + "id": 3468, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "943:6:25", + "scope": 3489, + "src": "943:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8239,10 +8239,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3313, + "id": 3467, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "943:4:25", + "src": "943:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8252,19 +8252,19 @@ "visibility": "internal" } ], - "src": "942:8:25" + "src": "942:8:26" }, - "scope": 3358, - "src": "891:125:25", + "scope": 3512, + "src": "891:125:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3356, + "id": 3510, "nodeType": "Block", - "src": "1081:50:25", + "src": "1081:50:26", "statements": [ { "expression": { @@ -8276,19 +8276,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3347, + "id": 3501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3345, + "id": 3499, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1099:1:25", + "referencedDeclaration": 3493, + "src": "1099:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8299,14 +8299,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3346, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:1:25", + "src": "1103:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8314,7 +8314,7 @@ }, "value": "0" }, - "src": "1099:5:25", + "src": "1099:5:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8328,21 +8328,21 @@ "typeString": "bool" } ], - "id": 3344, + "id": 3498, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "1091:7:25", + "referencedDeclaration": 4494, + "src": "1091:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3348, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, @@ -8350,32 +8350,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:14:25", + "src": "1091:14:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3349, + "id": 3503, "nodeType": "ExpressionStatement", - "src": "1091:14:25" + "src": "1091:14:26" }, { "expression": { "argumentTypes": null, - "id": 3354, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3350, + "id": 3504, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3342, - "src": "1115:1:25", + "referencedDeclaration": 3496, + "src": "1115:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8389,19 +8389,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3353, + "id": 3507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3351, + "id": 3505, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "1119:1:25", + "referencedDeclaration": 3491, + "src": "1119:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8411,37 +8411,37 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3352, + "id": 3506, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1123:1:25", + "referencedDeclaration": 3493, + "src": "1123:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:5:25", + "src": "1119:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1115:9:25", + "src": "1115:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3355, + "id": 3509, "nodeType": "ExpressionStatement", - "src": "1115:9:25" + "src": "1115:9:26" } ] }, "documentation": null, - "id": 3357, + "id": 3511, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8449,16 +8449,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 3340, + "id": 3494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3337, + "id": 3491, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1034:6:25", + "scope": 3511, + "src": "1034:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8466,10 +8466,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3336, + "id": 3490, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1034:4:25", + "src": "1034:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8480,11 +8480,11 @@ }, { "constant": false, - "id": 3339, + "id": 3493, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1042:6:25", + "scope": 3511, + "src": "1042:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8492,10 +8492,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3338, + "id": 3492, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1042:4:25", + "src": "1042:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8505,20 +8505,20 @@ "visibility": "internal" } ], - "src": "1033:16:25" + "src": "1033:16:26" }, "payable": false, "returnParameters": { - "id": 3343, + "id": 3497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3342, + "id": 3496, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1073:6:25", + "scope": 3511, + "src": "1073:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8526,10 +8526,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3341, + "id": 3495, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1073:4:25", + "src": "1073:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8539,17 +8539,17 @@ "visibility": "internal" } ], - "src": "1072:8:25" + "src": "1072:8:26" }, - "scope": 3358, - "src": "1021:110:25", + "scope": 3512, + "src": "1021:110:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 3814, - "src": "636:497:25" + "scope": 3968, + "src": "636:497:26" }, { "baseContracts": [], @@ -8557,9 +8557,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3425, + "id": 3579, "linearizedBaseContracts": [ - 3425 + 3579 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", @@ -8567,7 +8567,7 @@ { "body": null, "documentation": null, - "id": 3363, + "id": 3517, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8575,23 +8575,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3359, + "id": 3513, "nodeType": "ParameterList", "parameters": [], - "src": "1445:2:25" + "src": "1445:2:26" }, "payable": false, "returnParameters": { - "id": 3362, + "id": 3516, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3361, + "id": 3515, "name": "", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "1473:4:25", + "scope": 3517, + "src": "1473:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8599,10 +8599,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3360, + "id": 3514, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1473:4:25", + "src": "1473:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8612,10 +8612,10 @@ "visibility": "internal" } ], - "src": "1472:6:25" + "src": "1472:6:26" }, - "scope": 3425, - "src": "1425:54:25", + "scope": 3579, + "src": "1425:54:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8623,7 +8623,7 @@ { "body": null, "documentation": null, - "id": 3370, + "id": 3524, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8631,16 +8631,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3366, + "id": 3520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3365, + "id": 3519, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1503:18:25", + "scope": 3524, + "src": "1503:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8648,10 +8648,10 @@ "typeString": "address" }, "typeName": { - "id": 3364, + "id": 3518, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1503:7:25", + "src": "1503:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8661,20 +8661,20 @@ "visibility": "internal" } ], - "src": "1502:20:25" + "src": "1502:20:26" }, "payable": false, "returnParameters": { - "id": 3369, + "id": 3523, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3368, + "id": 3522, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1548:12:25", + "scope": 3524, + "src": "1548:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8682,10 +8682,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3367, + "id": 3521, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:25", + "src": "1548:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8695,10 +8695,10 @@ "visibility": "internal" } ], - "src": "1547:14:25" + "src": "1547:14:26" }, - "scope": 3425, - "src": "1484:78:25", + "scope": 3579, + "src": "1484:78:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8706,7 +8706,7 @@ { "body": null, "documentation": null, - "id": 3379, + "id": 3533, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8714,16 +8714,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3375, + "id": 3529, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3372, + "id": 3526, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1586:18:25", + "scope": 3533, + "src": "1586:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8731,10 +8731,10 @@ "typeString": "address" }, "typeName": { - "id": 3371, + "id": 3525, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:25", + "src": "1586:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8745,11 +8745,11 @@ }, { "constant": false, - "id": 3374, + "id": 3528, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1606:15:25", + "scope": 3533, + "src": "1606:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8757,10 +8757,10 @@ "typeString": "address" }, "typeName": { - "id": 3373, + "id": 3527, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1606:7:25", + "src": "1606:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8770,20 +8770,20 @@ "visibility": "internal" } ], - "src": "1585:37:25" + "src": "1585:37:26" }, "payable": false, "returnParameters": { - "id": 3378, + "id": 3532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3377, + "id": 3531, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1648:14:25", + "scope": 3533, + "src": "1648:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8791,10 +8791,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3376, + "id": 3530, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1648:4:25", + "src": "1648:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8804,10 +8804,10 @@ "visibility": "internal" } ], - "src": "1647:16:25" + "src": "1647:16:26" }, - "scope": 3425, - "src": "1567:97:25", + "scope": 3579, + "src": "1567:97:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8815,7 +8815,7 @@ { "body": null, "documentation": null, - "id": 3388, + "id": 3542, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -8823,16 +8823,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3384, + "id": 3538, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3381, + "id": 3535, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1687:10:25", + "scope": 3542, + "src": "1687:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8840,10 +8840,10 @@ "typeString": "address" }, "typeName": { - "id": 3380, + "id": 3534, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:25", + "src": "1687:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8854,11 +8854,11 @@ }, { "constant": false, - "id": 3383, + "id": 3537, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1699:11:25", + "scope": 3542, + "src": "1699:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8866,10 +8866,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3382, + "id": 3536, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:25", + "src": "1699:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8879,20 +8879,20 @@ "visibility": "internal" } ], - "src": "1686:25:25" + "src": "1686:25:26" }, "payable": false, "returnParameters": { - "id": 3387, + "id": 3541, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3386, + "id": 3540, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1728:12:25", + "scope": 3542, + "src": "1728:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8900,10 +8900,10 @@ "typeString": "bool" }, "typeName": { - "id": 3385, + "id": 3539, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1728:4:25", + "src": "1728:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8913,10 +8913,10 @@ "visibility": "internal" } ], - "src": "1727:14:25" + "src": "1727:14:26" }, - "scope": 3425, - "src": "1669:73:25", + "scope": 3579, + "src": "1669:73:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -8924,7 +8924,7 @@ { "body": null, "documentation": null, - "id": 3397, + "id": 3551, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -8932,16 +8932,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3393, + "id": 3547, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3390, + "id": 3544, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1764:15:25", + "scope": 3551, + "src": "1764:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8949,10 +8949,10 @@ "typeString": "address" }, "typeName": { - "id": 3389, + "id": 3543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:25", + "src": "1764:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8963,11 +8963,11 @@ }, { "constant": false, - "id": 3392, + "id": 3546, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1781:11:25", + "scope": 3551, + "src": "1781:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8975,10 +8975,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3391, + "id": 3545, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:25", + "src": "1781:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8988,20 +8988,20 @@ "visibility": "internal" } ], - "src": "1763:30:25" + "src": "1763:30:26" }, "payable": false, "returnParameters": { - "id": 3396, + "id": 3550, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3395, + "id": 3549, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1810:12:25", + "scope": 3551, + "src": "1810:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9009,10 +9009,10 @@ "typeString": "bool" }, "typeName": { - "id": 3394, + "id": 3548, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1810:4:25", + "src": "1810:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9022,10 +9022,10 @@ "visibility": "internal" } ], - "src": "1809:14:25" + "src": "1809:14:26" }, - "scope": 3425, - "src": "1747:77:25", + "scope": 3579, + "src": "1747:77:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -9033,7 +9033,7 @@ { "body": null, "documentation": null, - "id": 3408, + "id": 3562, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -9041,16 +9041,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3404, + "id": 3558, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3399, + "id": 3553, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1851:12:25", + "scope": 3562, + "src": "1851:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9058,10 +9058,10 @@ "typeString": "address" }, "typeName": { - "id": 3398, + "id": 3552, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1851:7:25", + "src": "1851:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9072,11 +9072,11 @@ }, { "constant": false, - "id": 3401, + "id": 3555, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1865:10:25", + "scope": 3562, + "src": "1865:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9084,10 +9084,10 @@ "typeString": "address" }, "typeName": { - "id": 3400, + "id": 3554, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:25", + "src": "1865:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9098,11 +9098,11 @@ }, { "constant": false, - "id": 3403, + "id": 3557, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1877:11:25", + "scope": 3562, + "src": "1877:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9110,10 +9110,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3402, + "id": 3556, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1877:4:25", + "src": "1877:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9123,20 +9123,20 @@ "visibility": "internal" } ], - "src": "1850:39:25" + "src": "1850:39:26" }, "payable": false, "returnParameters": { - "id": 3407, + "id": 3561, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3406, + "id": 3560, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1906:12:25", + "scope": 3562, + "src": "1906:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9144,10 +9144,10 @@ "typeString": "bool" }, "typeName": { - "id": 3405, + "id": 3559, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1906:4:25", + "src": "1906:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9157,10 +9157,10 @@ "visibility": "internal" } ], - "src": "1905:14:25" + "src": "1905:14:26" }, - "scope": 3425, - "src": "1829:91:25", + "scope": 3579, + "src": "1829:91:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -9168,21 +9168,21 @@ { "anonymous": false, "documentation": null, - "id": 3416, + "id": 3570, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 3415, + "id": 3569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3410, + "id": 3564, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1941:20:25", + "scope": 3570, + "src": "1941:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9190,10 +9190,10 @@ "typeString": "address" }, "typeName": { - "id": 3409, + "id": 3563, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1941:7:25", + "src": "1941:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9204,12 +9204,12 @@ }, { "constant": false, - "id": 3412, + "id": 3566, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1963:18:25", + "scope": 3570, + "src": "1963:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9217,10 +9217,10 @@ "typeString": "address" }, "typeName": { - "id": 3411, + "id": 3565, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1963:7:25", + "src": "1963:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9231,12 +9231,12 @@ }, { "constant": false, - "id": 3414, + "id": 3568, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1983:11:25", + "scope": 3570, + "src": "1983:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9244,10 +9244,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3413, + "id": 3567, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:25", + "src": "1983:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9257,28 +9257,28 @@ "visibility": "internal" } ], - "src": "1940:55:25" + "src": "1940:55:26" }, - "src": "1926:70:25" + "src": "1926:70:26" }, { "anonymous": false, "documentation": null, - "id": 3424, + "id": 3578, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 3423, + "id": 3577, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3418, + "id": 3572, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2016:26:25", + "scope": 3578, + "src": "2016:26:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9286,10 +9286,10 @@ "typeString": "address" }, "typeName": { - "id": 3417, + "id": 3571, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2016:7:25", + "src": "2016:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9300,12 +9300,12 @@ }, { "constant": false, - "id": 3420, + "id": 3574, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2044:23:25", + "scope": 3578, + "src": "2044:23:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9313,10 +9313,10 @@ "typeString": "address" }, "typeName": { - "id": 3419, + "id": 3573, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2044:7:25", + "src": "2044:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9327,12 +9327,12 @@ }, { "constant": false, - "id": 3422, + "id": 3576, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2069:11:25", + "scope": 3578, + "src": "2069:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9340,10 +9340,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3421, + "id": 3575, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2069:4:25", + "src": "2069:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9353,13 +9353,13 @@ "visibility": "internal" } ], - "src": "2015:66:25" + "src": "2015:66:26" }, - "src": "2001:81:25" + "src": "2001:81:26" } ], - "scope": 3814, - "src": "1395:689:25" + "scope": 3968, + "src": "1395:689:26" }, { "baseContracts": [], @@ -9367,9 +9367,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3437, + "id": 3591, "linearizedBaseContracts": [ - 3437 + 3591 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", @@ -9377,7 +9377,7 @@ { "body": null, "documentation": null, - "id": 3436, + "id": 3590, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -9385,16 +9385,16 @@ "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 3434, + "id": 3588, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3427, + "id": 3581, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2416:12:25", + "scope": 3590, + "src": "2416:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9402,10 +9402,10 @@ "typeString": "address" }, "typeName": { - "id": 3426, + "id": 3580, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2416:7:25", + "src": "2416:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9416,11 +9416,11 @@ }, { "constant": false, - "id": 3429, + "id": 3583, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2430:14:25", + "scope": 3590, + "src": "2430:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9428,10 +9428,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3428, + "id": 3582, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2430:7:25", + "src": "2430:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9442,11 +9442,11 @@ }, { "constant": false, - "id": 3431, + "id": 3585, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2446:13:25", + "scope": 3590, + "src": "2446:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9454,10 +9454,10 @@ "typeString": "address" }, "typeName": { - "id": 3430, + "id": 3584, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2446:7:25", + "src": "2446:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9468,11 +9468,11 @@ }, { "constant": false, - "id": 3433, + "id": 3587, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2461:10:25", + "scope": 3590, + "src": "2461:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9480,10 +9480,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3432, + "id": 3586, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2461:5:25", + "src": "2461:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9493,24 +9493,24 @@ "visibility": "internal" } ], - "src": "2415:57:25" + "src": "2415:57:26" }, "payable": false, "returnParameters": { - "id": 3435, + "id": 3589, "nodeType": "ParameterList", "parameters": [], - "src": "2479:0:25" + "src": "2479:0:26" }, - "scope": 3437, - "src": "2391:89:25", + "scope": 3591, + "src": "2391:89:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2353:129:25" + "scope": 3968, + "src": "2353:129:26" }, { "baseContracts": [], @@ -9518,20 +9518,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3506, + "id": 3660, "linearizedBaseContracts": [ - 3506 + 3660 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 3439, + "id": 3593, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2684:20:25", + "scope": 3660, + "src": "2684:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -9539,10 +9539,10 @@ "typeString": "address" }, "typeName": { - "id": 3438, + "id": 3592, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2684:7:25", + "src": "2684:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9553,11 +9553,11 @@ }, { "constant": false, - "id": 3441, + "id": 3595, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2710:23:25", + "scope": 3660, + "src": "2710:23:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -9565,10 +9565,10 @@ "typeString": "address" }, "typeName": { - "id": 3440, + "id": 3594, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2710:7:25", + "src": "2710:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9580,21 +9580,21 @@ { "anonymous": false, "documentation": null, - "id": 3447, + "id": 3601, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 3446, + "id": 3600, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3443, + "id": 3597, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2767:21:25", + "scope": 3601, + "src": "2767:21:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9602,10 +9602,10 @@ "typeString": "address" }, "typeName": { - "id": 3442, + "id": 3596, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2767:7:25", + "src": "2767:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9616,12 +9616,12 @@ }, { "constant": false, - "id": 3445, + "id": 3599, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2790:19:25", + "scope": 3601, + "src": "2790:19:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9629,10 +9629,10 @@ "typeString": "address" }, "typeName": { - "id": 3444, + "id": 3598, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2790:7:25", + "src": "2790:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9642,32 +9642,32 @@ "visibility": "internal" } ], - "src": "2766:44:25" + "src": "2766:44:26" }, - "src": "2740:71:25" + "src": "2740:71:26" }, { "body": { - "id": 3455, + "id": 3609, "nodeType": "Block", - "src": "2838:35:25", + "src": "2838:35:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3453, + "id": 3607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3450, + "id": 3604, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2848:5:25", + "referencedDeclaration": 3593, + "src": "2848:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9679,18 +9679,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3451, + "id": 3605, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2856:3:25", + "referencedDeclaration": 4491, + "src": "2856:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3452, + "id": 3606, "isConstant": false, "isLValue": false, "isPure": false, @@ -9698,26 +9698,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2856:10:25", + "src": "2856:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2848:18:25", + "src": "2848:18:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3454, + "id": 3608, "nodeType": "ExpressionStatement", - "src": "2848:18:25" + "src": "2848:18:26" } ] }, "documentation": null, - "id": 3456, + "id": 3610, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -9725,29 +9725,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3448, + "id": 3602, "nodeType": "ParameterList", "parameters": [], - "src": "2828:2:25" + "src": "2828:2:26" }, "payable": false, "returnParameters": { - "id": 3449, + "id": 3603, "nodeType": "ParameterList", "parameters": [], - "src": "2838:0:25" + "src": "2838:0:26" }, - "scope": 3506, - "src": "2817:56:25", + "scope": 3660, + "src": "2817:56:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3466, + "id": 3620, "nodeType": "Block", - "src": "2898:56:25", + "src": "2898:56:26", "statements": [ { "expression": { @@ -9759,7 +9759,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3462, + "id": 3616, "isConstant": false, "isLValue": false, "isPure": false, @@ -9768,18 +9768,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3459, + "id": 3613, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2916:3:25", + "referencedDeclaration": 4491, + "src": "2916:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3460, + "id": 3614, "isConstant": false, "isLValue": false, "isPure": false, @@ -9787,7 +9787,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2916:10:25", + "src": "2916:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9797,18 +9797,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3461, + "id": 3615, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2930:5:25", + "referencedDeclaration": 3593, + "src": "2930:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2916:19:25", + "src": "2916:19:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9822,21 +9822,21 @@ "typeString": "bool" } ], - "id": 3458, + "id": 3612, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "2908:7:25", + "referencedDeclaration": 4494, + "src": "2908:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3463, + "id": 3617, "isConstant": false, "isLValue": false, "isPure": false, @@ -9844,58 +9844,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:28:25", + "src": "2908:28:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3464, + "id": 3618, "nodeType": "ExpressionStatement", - "src": "2908:28:25" + "src": "2908:28:26" }, { - "id": 3465, + "id": 3619, "nodeType": "PlaceholderStatement", - "src": "2946:1:25" + "src": "2946:1:26" } ] }, "documentation": null, - "id": 3467, + "id": 3621, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 3457, + "id": 3611, "nodeType": "ParameterList", "parameters": [], - "src": "2898:0:25" + "src": "2898:0:26" }, - "src": "2879:75:25", + "src": "2879:75:26", "visibility": "internal" }, { "body": { - "id": 3478, + "id": 3632, "nodeType": "Block", - "src": "3023:37:25", + "src": "3023:37:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3476, + "id": 3630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3474, + "id": 3628, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3033:8:25", + "referencedDeclaration": 3595, + "src": "3033:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9905,68 +9905,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3475, + "id": 3629, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3469, - "src": "3044:9:25", + "referencedDeclaration": 3623, + "src": "3044:9:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3033:20:25", + "src": "3033:20:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3477, + "id": 3631, "nodeType": "ExpressionStatement", - "src": "3033:20:25" + "src": "3033:20:26" } ] }, "documentation": null, - "id": 3479, + "id": 3633, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3472, + "id": 3626, "modifierName": { "argumentTypes": null, - "id": 3471, + "id": 3625, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3013:9:25", + "referencedDeclaration": 3621, + "src": "3013:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3013:9:25" + "src": "3013:9:26" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3470, + "id": 3624, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3469, + "id": 3623, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 3479, - "src": "2987:17:25", + "scope": 3633, + "src": "2987:17:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9974,10 +9974,10 @@ "typeString": "address" }, "typeName": { - "id": 3468, + "id": 3622, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2987:7:25", + "src": "2987:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9987,26 +9987,26 @@ "visibility": "internal" } ], - "src": "2986:19:25" + "src": "2986:19:26" }, "payable": false, "returnParameters": { - "id": 3473, + "id": 3627, "nodeType": "ParameterList", "parameters": [], - "src": "3023:0:25" + "src": "3023:0:26" }, - "scope": 3506, - "src": "2960:100:25", + "scope": 3660, + "src": "2960:100:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3504, + "id": 3658, "nodeType": "Block", - "src": "3099:157:25", + "src": "3099:157:26", "statements": [ { "expression": { @@ -10018,7 +10018,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3486, + "id": 3640, "isConstant": false, "isLValue": false, "isPure": false, @@ -10027,18 +10027,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3483, + "id": 3637, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "3117:3:25", + "referencedDeclaration": 4491, + "src": "3117:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3484, + "id": 3638, "isConstant": false, "isLValue": false, "isPure": false, @@ -10046,7 +10046,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3117:10:25", + "src": "3117:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10056,18 +10056,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3485, + "id": 3639, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3131:8:25", + "referencedDeclaration": 3595, + "src": "3131:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3117:22:25", + "src": "3117:22:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10081,21 +10081,21 @@ "typeString": "bool" } ], - "id": 3482, + "id": 3636, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "3109:7:25", + "referencedDeclaration": 4494, + "src": "3109:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3487, + "id": 3641, "isConstant": false, "isLValue": false, "isPure": false, @@ -10103,15 +10103,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3109:31:25", + "src": "3109:31:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3488, + "id": 3642, "nodeType": "ExpressionStatement", - "src": "3109:31:25" + "src": "3109:31:26" }, { "eventCall": { @@ -10119,12 +10119,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3490, + "id": 3644, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3176:5:25", + "referencedDeclaration": 3593, + "src": "3176:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10132,12 +10132,12 @@ }, { "argumentTypes": null, - "id": 3491, + "id": 3645, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3183:8:25", + "referencedDeclaration": 3595, + "src": "3183:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10155,18 +10155,18 @@ "typeString": "address" } ], - "id": 3489, + "id": 3643, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3447, - "src": "3155:20:25", + "referencedDeclaration": 3601, + "src": "3155:20:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 3492, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, @@ -10174,32 +10174,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3155:37:25", + "src": "3155:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3493, + "id": 3647, "nodeType": "EmitStatement", - "src": "3150:42:25" + "src": "3150:42:26" }, { "expression": { "argumentTypes": null, - "id": 3496, + "id": 3650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3494, + "id": 3648, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3202:5:25", + "referencedDeclaration": 3593, + "src": "3202:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10209,43 +10209,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3495, + "id": 3649, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3210:8:25", + "referencedDeclaration": 3595, + "src": "3210:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3202:16:25", + "src": "3202:16:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3497, + "id": 3651, "nodeType": "ExpressionStatement", - "src": "3202:16:25" + "src": "3202:16:26" }, { "expression": { "argumentTypes": null, - "id": 3502, + "id": 3656, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3498, + "id": 3652, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3228:8:25", + "referencedDeclaration": 3595, + "src": "3228:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10259,14 +10259,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3500, + "id": 3654, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3247:1:25", + "src": "3247:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10282,20 +10282,20 @@ "typeString": "int_const 0" } ], - "id": 3499, + "id": 3653, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:25", + "src": "3239:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3501, + "id": 3655, "isConstant": false, "isLValue": false, "isPure": true, @@ -10303,26 +10303,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3239:10:25", + "src": "3239:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3228:21:25", + "src": "3228:21:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3503, + "id": 3657, "nodeType": "ExpressionStatement", - "src": "3228:21:25" + "src": "3228:21:26" } ] }, "documentation": null, - "id": 3505, + "id": 3659, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -10330,27 +10330,27 @@ "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3480, + "id": 3634, "nodeType": "ParameterList", "parameters": [], - "src": "3089:2:25" + "src": "3089:2:26" }, "payable": false, "returnParameters": { - "id": 3481, + "id": 3635, "nodeType": "ParameterList", "parameters": [], - "src": "3099:0:25" + "src": "3099:0:26" }, - "scope": 3506, - "src": "3065:191:25", + "scope": 3660, + "src": "3065:191:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2663:595:25" + "scope": 3968, + "src": "2663:595:26" }, { "baseContracts": [ @@ -10358,76 +10358,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3507, + "id": 3661, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3425, - "src": "3528:14:25", + "referencedDeclaration": 3579, + "src": "3528:14:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3508, + "id": 3662, "nodeType": "InheritanceSpecifier", - "src": "3528:14:25" + "src": "3528:14:26" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3509, + "id": 3663, "name": "Owned", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3506, - "src": "3544:5:25", + "referencedDeclaration": 3660, + "src": "3544:5:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3506", + "typeIdentifier": "t_contract$_Owned_$3660", "typeString": "contract Owned" } }, - "id": 3510, + "id": 3664, "nodeType": "InheritanceSpecifier", - "src": "3544:5:25" + "src": "3544:5:26" } ], "contractDependencies": [ - 3425, - 3506 + 3579, + 3660 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3813, + "id": 3967, "linearizedBaseContracts": [ - 3813, - 3506, - 3425 + 3967, + 3660, + 3579 ], "name": "TestToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3513, + "id": 3667, "libraryName": { "contractScope": null, - "id": 3511, + "id": 3665, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3358, - "src": "3562:8:25", + "referencedDeclaration": 3512, + "src": "3562:8:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeIdentifier": "t_contract$_SafeMath_$3512", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3556:24:25", + "src": "3556:24:26", "typeName": { - "id": 3512, + "id": 3666, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3575:4:25", + "src": "3575:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10436,11 +10436,11 @@ }, { "constant": false, - "id": 3515, + "id": 3669, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3586:20:25", + "scope": 3967, + "src": "3586:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10448,10 +10448,10 @@ "typeString": "string" }, "typeName": { - "id": 3514, + "id": 3668, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3586:6:25", + "src": "3586:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -10462,11 +10462,11 @@ }, { "constant": false, - "id": 3517, + "id": 3671, "name": "name", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3612:19:25", + "scope": 3967, + "src": "3612:19:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10474,10 +10474,10 @@ "typeString": "string" }, "typeName": { - "id": 3516, + "id": 3670, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3612:6:25", + "src": "3612:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -10488,11 +10488,11 @@ }, { "constant": false, - "id": 3519, + "id": 3673, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3637:21:25", + "scope": 3967, + "src": "3637:21:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10500,10 +10500,10 @@ "typeString": "uint8" }, "typeName": { - "id": 3518, + "id": 3672, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3637:5:25", + "src": "3637:5:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10514,11 +10514,11 @@ }, { "constant": false, - "id": 3521, + "id": 3675, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3664:17:25", + "scope": 3967, + "src": "3664:17:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10526,10 +10526,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3520, + "id": 3674, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3664:4:25", + "src": "3664:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10540,11 +10540,11 @@ }, { "constant": false, - "id": 3525, + "id": 3679, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3688:33:25", + "scope": 3967, + "src": "3688:33:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10552,28 +10552,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 3524, + "id": 3678, "keyType": { - "id": 3522, + "id": 3676, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3696:7:25", + "src": "3696:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3688:24:25", + "src": "3688:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3523, + "id": 3677, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3707:4:25", + "src": "3707:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10585,11 +10585,11 @@ }, { "constant": false, - "id": 3531, + "id": 3685, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3727:52:25", + "scope": 3967, + "src": "3727:52:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10597,46 +10597,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 3530, + "id": 3684, "keyType": { - "id": 3526, + "id": 3680, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3735:7:25", + "src": "3735:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3727:44:25", + "src": "3727:44:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 3529, + "id": 3683, "keyType": { - "id": 3527, + "id": 3681, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3754:7:25", + "src": "3754:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3746:24:25", + "src": "3746:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3528, + "id": 3682, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3765:4:25", + "src": "3765:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10649,26 +10649,26 @@ }, { "body": { - "id": 3570, + "id": 3724, "nodeType": "Block", - "src": "3987:235:25", + "src": "3987:235:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3536, + "id": 3690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3534, + "id": 3688, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3997:6:25", + "referencedDeclaration": 3669, + "src": "3997:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -10679,14 +10679,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "544b4e", - "id": 3535, + "id": 3689, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4006:5:25", + "src": "4006:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", @@ -10694,32 +10694,32 @@ }, "value": "TKN" }, - "src": "3997:14:25", + "src": "3997:14:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3537, + "id": 3691, "nodeType": "ExpressionStatement", - "src": "3997:14:25" + "src": "3997:14:26" }, { "expression": { "argumentTypes": null, - "id": 3540, + "id": 3694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3538, + "id": 3692, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3517, - "src": "4021:4:25", + "referencedDeclaration": 3671, + "src": "4021:4:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -10730,14 +10730,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "546f6b656e204578616d706c65", - "id": 3539, + "id": 3693, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4028:15:25", + "src": "4028:15:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", @@ -10745,32 +10745,32 @@ }, "value": "Token Example" }, - "src": "4021:22:25", + "src": "4021:22:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3541, + "id": 3695, "nodeType": "ExpressionStatement", - "src": "4021:22:25" + "src": "4021:22:26" }, { "expression": { "argumentTypes": null, - "id": 3544, + "id": 3698, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3542, + "id": 3696, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4053:8:25", + "referencedDeclaration": 3673, + "src": "4053:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10781,14 +10781,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3138", - "id": 3543, + "id": 3697, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4064:2:25", + "src": "4064:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -10796,32 +10796,32 @@ }, "value": "18" }, - "src": "4053:13:25", + "src": "4053:13:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 3545, + "id": 3699, "nodeType": "ExpressionStatement", - "src": "4053:13:25" + "src": "4053:13:26" }, { "expression": { "argumentTypes": null, - "id": 3554, + "id": 3708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3546, + "id": 3700, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4076:12:25", + "referencedDeclaration": 3675, + "src": "4076:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10835,7 +10835,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3553, + "id": 3707, "isConstant": false, "isLValue": false, "isPure": false, @@ -10843,14 +10843,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 3547, + "id": 3701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4091:7:25", + "src": "4091:7:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -10866,7 +10866,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3552, + "id": 3706, "isConstant": false, "isLValue": false, "isPure": false, @@ -10874,14 +10874,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 3548, + "id": 3702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4101:2:25", + "src": "4101:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -10896,12 +10896,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3550, + "id": 3704, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4110:8:25", + "referencedDeclaration": 3673, + "src": "4110:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10915,20 +10915,20 @@ "typeString": "uint8" } ], - "id": 3549, + "id": 3703, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:25", + "src": "4105:4:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 3551, + "id": 3705, "isConstant": false, "isLValue": false, "isPure": false, @@ -10936,38 +10936,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4105:14:25", + "src": "4105:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4101:18:25", + "src": "4101:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4091:28:25", + "src": "4091:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4076:43:25", + "src": "4076:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3555, + "id": 3709, "nodeType": "ExpressionStatement", - "src": "4076:43:25" + "src": "4076:43:26" }, { "expression": { "argumentTypes": null, - "id": 3560, + "id": 3714, "isConstant": false, "isLValue": false, "isPure": false, @@ -10976,26 +10976,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3556, + "id": 3710, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4129:8:25", + "referencedDeclaration": 3679, + "src": "4129:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3558, + "id": 3712, "indexExpression": { "argumentTypes": null, - "id": 3557, + "id": 3711, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4138:5:25", + "referencedDeclaration": 3593, + "src": "4138:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11006,7 +11006,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4129:15:25", + "src": "4129:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11016,26 +11016,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3559, + "id": 3713, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4147:12:25", + "referencedDeclaration": 3675, + "src": "4147:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4129:30:25", + "src": "4129:30:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3561, + "id": 3715, "nodeType": "ExpressionStatement", - "src": "4129:30:25" + "src": "4129:30:26" }, { "eventCall": { @@ -11047,14 +11047,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3564, + "id": 3718, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4191:1:25", + "src": "4191:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11070,20 +11070,20 @@ "typeString": "int_const 0" } ], - "id": 3563, + "id": 3717, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:25", + "src": "4183:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3565, + "id": 3719, "isConstant": false, "isLValue": false, "isPure": true, @@ -11091,7 +11091,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4183:10:25", + "src": "4183:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11099,12 +11099,12 @@ }, { "argumentTypes": null, - "id": 3566, + "id": 3720, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4195:5:25", + "referencedDeclaration": 3593, + "src": "4195:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11112,12 +11112,12 @@ }, { "argumentTypes": null, - "id": 3567, + "id": 3721, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4202:12:25", + "referencedDeclaration": 3675, + "src": "4202:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11139,18 +11139,18 @@ "typeString": "uint256" } ], - "id": 3562, + "id": 3716, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "4174:8:25", + "referencedDeclaration": 3570, + "src": "4174:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3568, + "id": 3722, "isConstant": false, "isLValue": false, "isPure": false, @@ -11158,20 +11158,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4174:41:25", + "src": "4174:41:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3569, + "id": 3723, "nodeType": "EmitStatement", - "src": "4169:46:25" + "src": "4169:46:26" } ] }, "documentation": null, - "id": 3571, + "id": 3725, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -11179,29 +11179,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3532, + "id": 3686, "nodeType": "ParameterList", "parameters": [], - "src": "3977:2:25" + "src": "3977:2:26" }, "payable": false, "returnParameters": { - "id": 3533, + "id": 3687, "nodeType": "ParameterList", "parameters": [], - "src": "3987:0:25" + "src": "3987:0:26" }, - "scope": 3813, - "src": "3966:256:25", + "scope": 3967, + "src": "3966:256:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3585, + "id": 3739, "nodeType": "Block", - "src": "4459:62:25", + "src": "4459:62:26", "statements": [ { "expression": { @@ -11211,32 +11211,32 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3578, + "id": 3732, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4493:8:25", + "referencedDeclaration": 3679, + "src": "4493:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3582, + "id": 3736, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 3580, + "id": 3734, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4510:1:25", + "src": "4510:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11252,20 +11252,20 @@ "typeString": "int_const 0" } ], - "id": 3579, + "id": 3733, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:25", + "src": "4502:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3581, + "id": 3735, "isConstant": false, "isLValue": false, "isPure": true, @@ -11273,7 +11273,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4502:10:25", + "src": "4502:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11284,7 +11284,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4493:20:25", + "src": "4493:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11300,32 +11300,32 @@ ], "expression": { "argumentTypes": null, - "id": 3576, + "id": 3730, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4476:12:25", + "referencedDeclaration": 3675, + "src": "4476:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3577, + "id": 3731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "4476:16:25", + "referencedDeclaration": 3461, + "src": "4476:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3583, + "id": 3737, "isConstant": false, "isLValue": false, "isPure": false, @@ -11333,21 +11333,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4476:38:25", + "src": "4476:38:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3575, - "id": 3584, + "functionReturnParameters": 3729, + "id": 3738, "nodeType": "Return", - "src": "4469:45:25" + "src": "4469:45:26" } ] }, "documentation": null, - "id": 3586, + "id": 3740, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11355,23 +11355,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3572, + "id": 3726, "nodeType": "ParameterList", "parameters": [], - "src": "4429:2:25" + "src": "4429:2:26" }, "payable": false, "returnParameters": { - "id": 3575, + "id": 3729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3574, + "id": 3728, "name": "", "nodeType": "VariableDeclaration", - "scope": 3586, - "src": "4453:4:25", + "scope": 3740, + "src": "4453:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11379,10 +11379,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3573, + "id": 3727, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4453:4:25", + "src": "4453:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11392,45 +11392,45 @@ "visibility": "internal" } ], - "src": "4452:6:25" + "src": "4452:6:26" }, - "scope": 3813, - "src": "4409:112:25", + "scope": 3967, + "src": "4409:112:26", "stateMutability": "view", - "superFunction": 3363, + "superFunction": 3517, "visibility": "public" }, { "body": { - "id": 3597, + "id": 3751, "nodeType": "Block", - "src": "4816:44:25", + "src": "4816:44:26", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3593, + "id": 3747, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4833:8:25", + "referencedDeclaration": 3679, + "src": "4833:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3595, + "id": 3749, "indexExpression": { "argumentTypes": null, - "id": 3594, + "id": 3748, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3588, - "src": "4842:10:25", + "referencedDeclaration": 3742, + "src": "4842:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11441,21 +11441,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4833:20:25", + "src": "4833:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3592, - "id": 3596, + "functionReturnParameters": 3746, + "id": 3750, "nodeType": "Return", - "src": "4826:27:25" + "src": "4826:27:26" } ] }, "documentation": null, - "id": 3598, + "id": 3752, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11463,16 +11463,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3589, + "id": 3743, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3588, + "id": 3742, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4761:18:25", + "scope": 3752, + "src": "4761:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11480,10 +11480,10 @@ "typeString": "address" }, "typeName": { - "id": 3587, + "id": 3741, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4761:7:25", + "src": "4761:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11493,20 +11493,20 @@ "visibility": "internal" } ], - "src": "4760:20:25" + "src": "4760:20:26" }, "payable": false, "returnParameters": { - "id": 3592, + "id": 3746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3591, + "id": 3745, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4802:12:25", + "scope": 3752, + "src": "4802:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11514,10 +11514,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3590, + "id": 3744, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4802:4:25", + "src": "4802:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11527,24 +11527,24 @@ "visibility": "internal" } ], - "src": "4801:14:25" + "src": "4801:14:26" }, - "scope": 3813, - "src": "4742:118:25", + "scope": 3967, + "src": "4742:118:26", "stateMutability": "view", - "superFunction": 3370, + "superFunction": 3524, "visibility": "public" }, { "body": { - "id": 3640, + "id": 3794, "nodeType": "Block", - "src": "5276:189:25", + "src": "5276:189:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3618, + "id": 3772, "isConstant": false, "isLValue": false, "isPure": false, @@ -11553,34 +11553,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3607, + "id": 3761, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5286:8:25", + "referencedDeclaration": 3679, + "src": "5286:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3610, + "id": 3764, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3608, + "id": 3762, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5295:3:25", + "referencedDeclaration": 4491, + "src": "5295:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3609, + "id": 3763, "isConstant": false, "isLValue": false, "isPure": false, @@ -11588,7 +11588,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5295:10:25", + "src": "5295:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11599,7 +11599,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5286:20:25", + "src": "5286:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11612,12 +11612,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3616, + "id": 3770, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5334:6:25", + "referencedDeclaration": 3756, + "src": "5334:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11635,34 +11635,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3611, + "id": 3765, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5309:8:25", + "referencedDeclaration": 3679, + "src": "5309:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3614, + "id": 3768, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3612, + "id": 3766, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5318:3:25", + "referencedDeclaration": 4491, + "src": "5318:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3613, + "id": 3767, "isConstant": false, "isLValue": false, "isPure": false, @@ -11670,7 +11670,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5318:10:25", + "src": "5318:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11681,27 +11681,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5309:20:25", + "src": "5309:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3615, + "id": 3769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "5309:24:25", + "referencedDeclaration": 3461, + "src": "5309:24:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3617, + "id": 3771, "isConstant": false, "isLValue": false, "isPure": false, @@ -11709,26 +11709,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5309:32:25", + "src": "5309:32:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5286:55:25", + "src": "5286:55:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3619, + "id": 3773, "nodeType": "ExpressionStatement", - "src": "5286:55:25" + "src": "5286:55:26" }, { "expression": { "argumentTypes": null, - "id": 3629, + "id": 3783, "isConstant": false, "isLValue": false, "isPure": false, @@ -11737,26 +11737,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3620, + "id": 3774, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5351:8:25", + "referencedDeclaration": 3679, + "src": "5351:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3622, + "id": 3776, "indexExpression": { "argumentTypes": null, - "id": 3621, + "id": 3775, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5360:2:25", + "referencedDeclaration": 3754, + "src": "5360:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11767,7 +11767,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5351:12:25", + "src": "5351:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11780,12 +11780,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3627, + "id": 3781, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5383:6:25", + "referencedDeclaration": 3756, + "src": "5383:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11803,26 +11803,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3623, + "id": 3777, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5366:8:25", + "referencedDeclaration": 3679, + "src": "5366:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3625, + "id": 3779, "indexExpression": { "argumentTypes": null, - "id": 3624, + "id": 3778, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5375:2:25", + "referencedDeclaration": 3754, + "src": "5375:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11833,27 +11833,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5366:12:25", + "src": "5366:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3626, + "id": 3780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "5366:16:25", + "referencedDeclaration": 3439, + "src": "5366:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3628, + "id": 3782, "isConstant": false, "isLValue": false, "isPure": false, @@ -11861,21 +11861,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5366:24:25", + "src": "5366:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5351:39:25", + "src": "5351:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3630, + "id": 3784, "nodeType": "ExpressionStatement", - "src": "5351:39:25" + "src": "5351:39:26" }, { "eventCall": { @@ -11885,18 +11885,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3632, + "id": 3786, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5414:3:25", + "referencedDeclaration": 4491, + "src": "5414:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3633, + "id": 3787, "isConstant": false, "isLValue": false, "isPure": false, @@ -11904,7 +11904,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:25", + "src": "5414:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11912,12 +11912,12 @@ }, { "argumentTypes": null, - "id": 3634, + "id": 3788, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5426:2:25", + "referencedDeclaration": 3754, + "src": "5426:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11925,12 +11925,12 @@ }, { "argumentTypes": null, - "id": 3635, + "id": 3789, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5430:6:25", + "referencedDeclaration": 3756, + "src": "5430:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11952,18 +11952,18 @@ "typeString": "uint256" } ], - "id": 3631, + "id": 3785, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5405:8:25", + "referencedDeclaration": 3570, + "src": "5405:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3636, + "id": 3790, "isConstant": false, "isLValue": false, "isPure": false, @@ -11971,28 +11971,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5405:32:25", + "src": "5405:32:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3637, + "id": 3791, "nodeType": "EmitStatement", - "src": "5400:37:25" + "src": "5400:37:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3638, + "id": 3792, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5454:4:25", + "src": "5454:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12000,15 +12000,15 @@ }, "value": "true" }, - "functionReturnParameters": 3606, - "id": 3639, + "functionReturnParameters": 3760, + "id": 3793, "nodeType": "Return", - "src": "5447:11:25" + "src": "5447:11:26" } ] }, "documentation": null, - "id": 3641, + "id": 3795, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12016,16 +12016,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3603, + "id": 3757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3600, + "id": 3754, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5221:10:25", + "scope": 3795, + "src": "5221:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12033,10 +12033,10 @@ "typeString": "address" }, "typeName": { - "id": 3599, + "id": 3753, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5221:7:25", + "src": "5221:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12047,11 +12047,11 @@ }, { "constant": false, - "id": 3602, + "id": 3756, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5233:11:25", + "scope": 3795, + "src": "5233:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12059,10 +12059,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3601, + "id": 3755, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5233:4:25", + "src": "5233:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12072,20 +12072,20 @@ "visibility": "internal" } ], - "src": "5220:25:25" + "src": "5220:25:26" }, "payable": false, "returnParameters": { - "id": 3606, + "id": 3760, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3605, + "id": 3759, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5262:12:25", + "scope": 3795, + "src": "5262:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12093,10 +12093,10 @@ "typeString": "bool" }, "typeName": { - "id": 3604, + "id": 3758, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5262:4:25", + "src": "5262:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12106,24 +12106,24 @@ "visibility": "internal" } ], - "src": "5261:14:25" + "src": "5261:14:26" }, - "scope": 3813, - "src": "5203:262:25", + "scope": 3967, + "src": "5203:262:26", "stateMutability": "nonpayable", - "superFunction": 3388, + "superFunction": 3542, "visibility": "public" }, { "body": { - "id": 3668, + "id": 3822, "nodeType": "Block", - "src": "6048:127:25", + "src": "6048:127:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3657, + "id": 3811, "isConstant": false, "isLValue": false, "isPure": false, @@ -12134,34 +12134,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3650, + "id": 3804, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6058:7:25", + "referencedDeclaration": 3685, + "src": "6058:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3654, + "id": 3808, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3651, + "id": 3805, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6066:3:25", + "referencedDeclaration": 4491, + "src": "6066:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3652, + "id": 3806, "isConstant": false, "isLValue": false, "isPure": false, @@ -12169,7 +12169,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6066:10:25", + "src": "6066:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12180,21 +12180,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6058:19:25", + "src": "6058:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3655, + "id": 3809, "indexExpression": { "argumentTypes": null, - "id": 3653, + "id": 3807, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6078:7:25", + "referencedDeclaration": 3797, + "src": "6078:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12205,7 +12205,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6058:28:25", + "src": "6058:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12215,26 +12215,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3656, + "id": 3810, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6089:6:25", + "referencedDeclaration": 3799, + "src": "6089:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6058:37:25", + "src": "6058:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3658, + "id": 3812, "nodeType": "ExpressionStatement", - "src": "6058:37:25" + "src": "6058:37:26" }, { "eventCall": { @@ -12244,18 +12244,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3660, + "id": 3814, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6119:3:25", + "referencedDeclaration": 4491, + "src": "6119:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3661, + "id": 3815, "isConstant": false, "isLValue": false, "isPure": false, @@ -12263,7 +12263,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6119:10:25", + "src": "6119:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12271,12 +12271,12 @@ }, { "argumentTypes": null, - "id": 3662, + "id": 3816, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6131:7:25", + "referencedDeclaration": 3797, + "src": "6131:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12284,12 +12284,12 @@ }, { "argumentTypes": null, - "id": 3663, + "id": 3817, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6140:6:25", + "referencedDeclaration": 3799, + "src": "6140:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12311,18 +12311,18 @@ "typeString": "uint256" } ], - "id": 3659, + "id": 3813, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "6110:8:25", + "referencedDeclaration": 3578, + "src": "6110:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3664, + "id": 3818, "isConstant": false, "isLValue": false, "isPure": false, @@ -12330,28 +12330,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6110:37:25", + "src": "6110:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3665, + "id": 3819, "nodeType": "EmitStatement", - "src": "6105:42:25" + "src": "6105:42:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3666, + "id": 3820, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6164:4:25", + "src": "6164:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12359,15 +12359,15 @@ }, "value": "true" }, - "functionReturnParameters": 3649, - "id": 3667, + "functionReturnParameters": 3803, + "id": 3821, "nodeType": "Return", - "src": "6157:11:25" + "src": "6157:11:26" } ] }, "documentation": null, - "id": 3669, + "id": 3823, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12375,16 +12375,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3646, + "id": 3800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3643, + "id": 3797, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "5988:15:25", + "scope": 3823, + "src": "5988:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12392,10 +12392,10 @@ "typeString": "address" }, "typeName": { - "id": 3642, + "id": 3796, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5988:7:25", + "src": "5988:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12406,11 +12406,11 @@ }, { "constant": false, - "id": 3645, + "id": 3799, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6005:11:25", + "scope": 3823, + "src": "6005:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12418,10 +12418,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3644, + "id": 3798, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6005:4:25", + "src": "6005:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12431,20 +12431,20 @@ "visibility": "internal" } ], - "src": "5987:30:25" + "src": "5987:30:26" }, "payable": false, "returnParameters": { - "id": 3649, + "id": 3803, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3648, + "id": 3802, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6034:12:25", + "scope": 3823, + "src": "6034:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12452,10 +12452,10 @@ "typeString": "bool" }, "typeName": { - "id": 3647, + "id": 3801, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6034:4:25", + "src": "6034:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12465,24 +12465,24 @@ "visibility": "internal" } ], - "src": "6033:14:25" + "src": "6033:14:26" }, - "scope": 3813, - "src": "5971:204:25", + "scope": 3967, + "src": "5971:204:26", "stateMutability": "nonpayable", - "superFunction": 3397, + "superFunction": 3551, "visibility": "public" }, { "body": { - "id": 3727, + "id": 3881, "nodeType": "Block", - "src": "6798:246:25", + "src": "6798:246:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3689, + "id": 3843, "isConstant": false, "isLValue": false, "isPure": false, @@ -12491,26 +12491,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3680, + "id": 3834, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6808:8:25", + "referencedDeclaration": 3679, + "src": "6808:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3682, + "id": 3836, "indexExpression": { "argumentTypes": null, - "id": 3681, + "id": 3835, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6817:4:25", + "referencedDeclaration": 3825, + "src": "6817:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12521,7 +12521,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6808:14:25", + "src": "6808:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12534,12 +12534,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3687, + "id": 3841, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6844:6:25", + "referencedDeclaration": 3829, + "src": "6844:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12557,26 +12557,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3683, + "id": 3837, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6825:8:25", + "referencedDeclaration": 3679, + "src": "6825:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3685, + "id": 3839, "indexExpression": { "argumentTypes": null, - "id": 3684, + "id": 3838, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6834:4:25", + "referencedDeclaration": 3825, + "src": "6834:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12587,27 +12587,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6825:14:25", + "src": "6825:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3686, + "id": 3840, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6825:18:25", + "referencedDeclaration": 3461, + "src": "6825:18:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3688, + "id": 3842, "isConstant": false, "isLValue": false, "isPure": false, @@ -12615,26 +12615,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6825:26:25", + "src": "6825:26:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6808:43:25", + "src": "6808:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3690, + "id": 3844, "nodeType": "ExpressionStatement", - "src": "6808:43:25" + "src": "6808:43:26" }, { "expression": { "argumentTypes": null, - "id": 3706, + "id": 3860, "isConstant": false, "isLValue": false, "isPure": false, @@ -12645,26 +12645,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3691, + "id": 3845, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6861:7:25", + "referencedDeclaration": 3685, + "src": "6861:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3695, + "id": 3849, "indexExpression": { "argumentTypes": null, - "id": 3692, + "id": 3846, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6869:4:25", + "referencedDeclaration": 3825, + "src": "6869:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12675,29 +12675,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6861:13:25", + "src": "6861:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3696, + "id": 3850, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3693, + "id": 3847, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6875:3:25", + "referencedDeclaration": 4491, + "src": "6875:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3694, + "id": 3848, "isConstant": false, "isLValue": false, "isPure": false, @@ -12705,7 +12705,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6875:10:25", + "src": "6875:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12716,7 +12716,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6861:25:25", + "src": "6861:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12729,12 +12729,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3704, + "id": 3858, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6919:6:25", + "referencedDeclaration": 3829, + "src": "6919:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12754,26 +12754,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3697, + "id": 3851, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6889:7:25", + "referencedDeclaration": 3685, + "src": "6889:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3699, + "id": 3853, "indexExpression": { "argumentTypes": null, - "id": 3698, + "id": 3852, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6897:4:25", + "referencedDeclaration": 3825, + "src": "6897:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12784,29 +12784,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:13:25", + "src": "6889:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3702, + "id": 3856, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3700, + "id": 3854, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6903:3:25", + "referencedDeclaration": 4491, + "src": "6903:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3701, + "id": 3855, "isConstant": false, "isLValue": false, "isPure": false, @@ -12814,7 +12814,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6903:10:25", + "src": "6903:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12825,27 +12825,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:25:25", + "src": "6889:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3703, + "id": 3857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6889:29:25", + "referencedDeclaration": 3461, + "src": "6889:29:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3705, + "id": 3859, "isConstant": false, "isLValue": false, "isPure": false, @@ -12853,26 +12853,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6889:37:25", + "src": "6889:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6861:65:25", + "src": "6861:65:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3707, + "id": 3861, "nodeType": "ExpressionStatement", - "src": "6861:65:25" + "src": "6861:65:26" }, { "expression": { "argumentTypes": null, - "id": 3717, + "id": 3871, "isConstant": false, "isLValue": false, "isPure": false, @@ -12881,26 +12881,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3708, + "id": 3862, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6936:8:25", + "referencedDeclaration": 3679, + "src": "6936:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3710, + "id": 3864, "indexExpression": { "argumentTypes": null, - "id": 3709, + "id": 3863, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6945:2:25", + "referencedDeclaration": 3827, + "src": "6945:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12911,7 +12911,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6936:12:25", + "src": "6936:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12924,12 +12924,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3715, + "id": 3869, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6968:6:25", + "referencedDeclaration": 3829, + "src": "6968:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12947,26 +12947,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3711, + "id": 3865, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6951:8:25", + "referencedDeclaration": 3679, + "src": "6951:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3713, + "id": 3867, "indexExpression": { "argumentTypes": null, - "id": 3712, + "id": 3866, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6960:2:25", + "referencedDeclaration": 3827, + "src": "6960:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12977,27 +12977,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6951:12:25", + "src": "6951:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3714, + "id": 3868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "6951:16:25", + "referencedDeclaration": 3439, + "src": "6951:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3716, + "id": 3870, "isConstant": false, "isLValue": false, "isPure": false, @@ -13005,21 +13005,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6951:24:25", + "src": "6951:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6936:39:25", + "src": "6936:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3718, + "id": 3872, "nodeType": "ExpressionStatement", - "src": "6936:39:25" + "src": "6936:39:26" }, { "eventCall": { @@ -13027,12 +13027,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3720, + "id": 3874, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6999:4:25", + "referencedDeclaration": 3825, + "src": "6999:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13040,12 +13040,12 @@ }, { "argumentTypes": null, - "id": 3721, + "id": 3875, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "7005:2:25", + "referencedDeclaration": 3827, + "src": "7005:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13053,12 +13053,12 @@ }, { "argumentTypes": null, - "id": 3722, + "id": 3876, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "7009:6:25", + "referencedDeclaration": 3829, + "src": "7009:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13080,18 +13080,18 @@ "typeString": "uint256" } ], - "id": 3719, + "id": 3873, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "6990:8:25", + "referencedDeclaration": 3570, + "src": "6990:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3723, + "id": 3877, "isConstant": false, "isLValue": false, "isPure": false, @@ -13099,28 +13099,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6990:26:25", + "src": "6990:26:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3724, + "id": 3878, "nodeType": "EmitStatement", - "src": "6985:31:25" + "src": "6985:31:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3725, + "id": 3879, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7033:4:25", + "src": "7033:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13128,15 +13128,15 @@ }, "value": "true" }, - "functionReturnParameters": 3679, - "id": 3726, + "functionReturnParameters": 3833, + "id": 3880, "nodeType": "Return", - "src": "7026:11:25" + "src": "7026:11:26" } ] }, "documentation": null, - "id": 3728, + "id": 3882, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -13144,16 +13144,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3676, + "id": 3830, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3671, + "id": 3825, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6729:12:25", + "scope": 3882, + "src": "6729:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13161,10 +13161,10 @@ "typeString": "address" }, "typeName": { - "id": 3670, + "id": 3824, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6729:7:25", + "src": "6729:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13175,11 +13175,11 @@ }, { "constant": false, - "id": 3673, + "id": 3827, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6743:10:25", + "scope": 3882, + "src": "6743:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13187,10 +13187,10 @@ "typeString": "address" }, "typeName": { - "id": 3672, + "id": 3826, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6743:7:25", + "src": "6743:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13201,11 +13201,11 @@ }, { "constant": false, - "id": 3675, + "id": 3829, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6755:11:25", + "scope": 3882, + "src": "6755:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13213,10 +13213,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3674, + "id": 3828, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6755:4:25", + "src": "6755:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13226,20 +13226,20 @@ "visibility": "internal" } ], - "src": "6728:39:25" + "src": "6728:39:26" }, "payable": false, "returnParameters": { - "id": 3679, + "id": 3833, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3678, + "id": 3832, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6784:12:25", + "scope": 3882, + "src": "6784:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13247,10 +13247,10 @@ "typeString": "bool" }, "typeName": { - "id": 3677, + "id": 3831, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6784:4:25", + "src": "6784:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13260,19 +13260,19 @@ "visibility": "internal" } ], - "src": "6783:14:25" + "src": "6783:14:26" }, - "scope": 3813, - "src": "6707:337:25", + "scope": 3967, + "src": "6707:337:26", "stateMutability": "nonpayable", - "superFunction": 3408, + "superFunction": 3562, "visibility": "public" }, { "body": { - "id": 3743, + "id": 3897, "nodeType": "Block", - "src": "7418:52:25", + "src": "7418:52:26", "statements": [ { "expression": { @@ -13281,26 +13281,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3737, + "id": 3891, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7435:7:25", + "referencedDeclaration": 3685, + "src": "7435:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3739, + "id": 3893, "indexExpression": { "argumentTypes": null, - "id": 3738, + "id": 3892, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3730, - "src": "7443:10:25", + "referencedDeclaration": 3884, + "src": "7443:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13311,21 +13311,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:19:25", + "src": "7435:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3741, + "id": 3895, "indexExpression": { "argumentTypes": null, - "id": 3740, + "id": 3894, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "7455:7:25", + "referencedDeclaration": 3886, + "src": "7455:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13336,21 +13336,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:28:25", + "src": "7435:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3736, - "id": 3742, + "functionReturnParameters": 3890, + "id": 3896, "nodeType": "Return", - "src": "7428:35:25" + "src": "7428:35:26" } ] }, "documentation": null, - "id": 3744, + "id": 3898, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13358,16 +13358,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3733, + "id": 3887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3730, + "id": 3884, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7344:18:25", + "scope": 3898, + "src": "7344:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13375,10 +13375,10 @@ "typeString": "address" }, "typeName": { - "id": 3729, + "id": 3883, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7344:7:25", + "src": "7344:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13389,11 +13389,11 @@ }, { "constant": false, - "id": 3732, + "id": 3886, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7364:15:25", + "scope": 3898, + "src": "7364:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13401,10 +13401,10 @@ "typeString": "address" }, "typeName": { - "id": 3731, + "id": 3885, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7364:7:25", + "src": "7364:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13414,20 +13414,20 @@ "visibility": "internal" } ], - "src": "7343:37:25" + "src": "7343:37:26" }, "payable": false, "returnParameters": { - "id": 3736, + "id": 3890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3735, + "id": 3889, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7402:14:25", + "scope": 3898, + "src": "7402:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13435,10 +13435,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3734, + "id": 3888, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7402:4:25", + "src": "7402:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13448,24 +13448,24 @@ "visibility": "internal" } ], - "src": "7401:16:25" + "src": "7401:16:26" }, - "scope": 3813, - "src": "7325:145:25", + "scope": 3967, + "src": "7325:145:26", "stateMutability": "view", - "superFunction": 3379, + "superFunction": 3533, "visibility": "public" }, { "body": { - "id": 3784, + "id": 3938, "nodeType": "Block", - "src": "7926:216:25", + "src": "7926:216:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3762, + "id": 3916, "isConstant": false, "isLValue": false, "isPure": false, @@ -13476,34 +13476,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3755, + "id": 3909, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7936:7:25", + "referencedDeclaration": 3685, + "src": "7936:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3759, + "id": 3913, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3756, + "id": 3910, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7944:3:25", + "referencedDeclaration": 4491, + "src": "7944:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3757, + "id": 3911, "isConstant": false, "isLValue": false, "isPure": false, @@ -13511,7 +13511,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7944:10:25", + "src": "7944:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13522,21 +13522,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7936:19:25", + "src": "7936:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3760, + "id": 3914, "indexExpression": { "argumentTypes": null, - "id": 3758, + "id": 3912, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "7956:7:25", + "referencedDeclaration": 3900, + "src": "7956:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13547,7 +13547,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7936:28:25", + "src": "7936:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13557,26 +13557,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3761, + "id": 3915, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "7967:6:25", + "referencedDeclaration": 3902, + "src": "7967:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7936:37:25", + "src": "7936:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3763, + "id": 3917, "nodeType": "ExpressionStatement", - "src": "7936:37:25" + "src": "7936:37:26" }, { "eventCall": { @@ -13586,18 +13586,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3765, + "id": 3919, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7997:3:25", + "referencedDeclaration": 4491, + "src": "7997:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3766, + "id": 3920, "isConstant": false, "isLValue": false, "isPure": false, @@ -13605,7 +13605,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7997:10:25", + "src": "7997:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13613,12 +13613,12 @@ }, { "argumentTypes": null, - "id": 3767, + "id": 3921, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8009:7:25", + "referencedDeclaration": 3900, + "src": "8009:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13626,12 +13626,12 @@ }, { "argumentTypes": null, - "id": 3768, + "id": 3922, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8018:6:25", + "referencedDeclaration": 3902, + "src": "8018:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13653,18 +13653,18 @@ "typeString": "uint256" } ], - "id": 3764, + "id": 3918, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "7988:8:25", + "referencedDeclaration": 3578, + "src": "7988:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3769, + "id": 3923, "isConstant": false, "isLValue": false, "isPure": false, @@ -13672,15 +13672,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7988:37:25", + "src": "7988:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3770, + "id": 3924, "nodeType": "EmitStatement", - "src": "7983:42:25" + "src": "7983:42:26" }, { "expression": { @@ -13690,18 +13690,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3775, + "id": 3929, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "8083:3:25", + "referencedDeclaration": 4491, + "src": "8083:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3776, + "id": 3930, "isConstant": false, "isLValue": false, "isPure": false, @@ -13709,7 +13709,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8083:10:25", + "src": "8083:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13717,12 +13717,12 @@ }, { "argumentTypes": null, - "id": 3777, + "id": 3931, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8095:6:25", + "referencedDeclaration": 3902, + "src": "8095:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13730,25 +13730,25 @@ }, { "argumentTypes": null, - "id": 3778, + "id": 3932, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3907, - "src": "8103:4:25", + "referencedDeclaration": 4574, + "src": "8103:4:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" } }, { "argumentTypes": null, - "id": 3779, + "id": 3933, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3750, - "src": "8109:4:25", + "referencedDeclaration": 3904, + "src": "8109:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -13766,7 +13766,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" }, { @@ -13779,12 +13779,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3772, + "id": 3926, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8058:7:25", + "referencedDeclaration": 3900, + "src": "8058:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13798,18 +13798,18 @@ "typeString": "address" } ], - "id": 3771, + "id": 3925, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3437, - "src": "8035:22:25", + "referencedDeclaration": 3591, + "src": "8035:22:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, - "id": 3773, + "id": 3927, "isConstant": false, "isLValue": false, "isPure": false, @@ -13817,27 +13817,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:31:25", + "src": "8035:31:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", "typeString": "contract ApproveAndCallFallBack" } }, - "id": 3774, + "id": 3928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", - "referencedDeclaration": 3436, - "src": "8035:47:25", + "referencedDeclaration": 3590, + "src": "8035:47:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,address,bytes memory) external" } }, - "id": 3780, + "id": 3934, "isConstant": false, "isLValue": false, "isPure": false, @@ -13845,28 +13845,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:79:25", + "src": "8035:79:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3781, + "id": 3935, "nodeType": "ExpressionStatement", - "src": "8035:79:25" + "src": "8035:79:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3782, + "id": 3936, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8131:4:25", + "src": "8131:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13874,15 +13874,15 @@ }, "value": "true" }, - "functionReturnParameters": 3754, - "id": 3783, + "functionReturnParameters": 3908, + "id": 3937, "nodeType": "Return", - "src": "8124:11:25" + "src": "8124:11:26" } ] }, "documentation": null, - "id": 3785, + "id": 3939, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -13890,16 +13890,16 @@ "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 3751, + "id": 3905, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3746, + "id": 3900, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7854:15:25", + "scope": 3939, + "src": "7854:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13907,10 +13907,10 @@ "typeString": "address" }, "typeName": { - "id": 3745, + "id": 3899, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7854:7:25", + "src": "7854:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13921,11 +13921,11 @@ }, { "constant": false, - "id": 3748, + "id": 3902, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7871:11:25", + "scope": 3939, + "src": "7871:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13933,10 +13933,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3747, + "id": 3901, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7871:4:25", + "src": "7871:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13947,11 +13947,11 @@ }, { "constant": false, - "id": 3750, + "id": 3904, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7884:10:25", + "scope": 3939, + "src": "7884:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13959,10 +13959,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3749, + "id": 3903, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7884:5:25", + "src": "7884:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -13972,20 +13972,20 @@ "visibility": "internal" } ], - "src": "7853:42:25" + "src": "7853:42:26" }, "payable": false, "returnParameters": { - "id": 3754, + "id": 3908, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3753, + "id": 3907, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7912:12:25", + "scope": 3939, + "src": "7912:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13993,10 +13993,10 @@ "typeString": "bool" }, "typeName": { - "id": 3752, + "id": 3906, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7912:4:25", + "src": "7912:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14006,19 +14006,19 @@ "visibility": "internal" } ], - "src": "7911:14:25" + "src": "7911:14:26" }, - "scope": 3813, - "src": "7830:312:25", + "scope": 3967, + "src": "7830:312:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3791, + "id": 3945, "nodeType": "Block", - "src": "8360:25:25", + "src": "8360:25:26", "statements": [ { "expression": { @@ -14026,21 +14026,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3788, + "id": 3942, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 3833, - 3834 + 4496, + 4497 ], - "referencedDeclaration": 3833, - "src": "8370:6:25", + "referencedDeclaration": 4496, + "src": "8370:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 3789, + "id": 3943, "isConstant": false, "isLValue": false, "isPure": false, @@ -14048,20 +14048,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8370:8:25", + "src": "8370:8:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3790, + "id": 3944, "nodeType": "ExpressionStatement", - "src": "8370:8:25" + "src": "8370:8:26" } ] }, "documentation": null, - "id": 3792, + "id": 3946, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -14069,29 +14069,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3786, + "id": 3940, "nodeType": "ParameterList", "parameters": [], - "src": "8342:2:25" + "src": "8342:2:26" }, "payable": true, "returnParameters": { - "id": 3787, + "id": 3941, "nodeType": "ParameterList", "parameters": [], - "src": "8360:0:25" + "src": "8360:0:26" }, - "scope": 3813, - "src": "8333:52:25", + "scope": 3967, + "src": "8333:52:26", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3811, + "id": 3965, "nodeType": "Block", - "src": "8723:76:25", + "src": "8723:76:26", "statements": [ { "expression": { @@ -14099,12 +14099,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3807, + "id": 3961, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "8778:5:25", + "referencedDeclaration": 3593, + "src": "8778:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14112,12 +14112,12 @@ }, { "argumentTypes": null, - "id": 3808, + "id": 3962, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3796, - "src": "8785:6:25", + "referencedDeclaration": 3950, + "src": "8785:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14140,12 +14140,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3804, + "id": 3958, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3794, - "src": "8755:12:25", + "referencedDeclaration": 3948, + "src": "8755:12:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14159,18 +14159,18 @@ "typeString": "address" } ], - "id": 3803, + "id": 3957, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3425, - "src": "8740:14:25", + "referencedDeclaration": 3579, + "src": "8740:14:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", "typeString": "type(contract ERC20Interface)" } }, - "id": 3805, + "id": 3959, "isConstant": false, "isLValue": false, "isPure": false, @@ -14178,27 +14178,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:28:25", + "src": "8740:28:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3806, + "id": 3960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 3388, - "src": "8740:37:25", + "referencedDeclaration": 3542, + "src": "8740:37:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 3809, + "id": 3963, "isConstant": false, "isLValue": false, "isPure": false, @@ -14206,58 +14206,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:52:25", + "src": "8740:52:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3802, - "id": 3810, + "functionReturnParameters": 3956, + "id": 3964, "nodeType": "Return", - "src": "8733:59:25" + "src": "8733:59:26" } ] }, "documentation": null, - "id": 3812, + "id": 3966, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3799, + "id": 3953, "modifierName": { "argumentTypes": null, - "id": 3798, + "id": 3952, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "8690:9:25", + "referencedDeclaration": 3621, + "src": "8690:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8690:9:25" + "src": "8690:9:26" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 3797, + "id": 3951, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3794, + "id": 3948, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8648:20:25", + "scope": 3966, + "src": "8648:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14265,10 +14265,10 @@ "typeString": "address" }, "typeName": { - "id": 3793, + "id": 3947, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8648:7:25", + "src": "8648:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14279,11 +14279,11 @@ }, { "constant": false, - "id": 3796, + "id": 3950, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8670:11:25", + "scope": 3966, + "src": "8670:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14291,10 +14291,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3795, + "id": 3949, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8670:4:25", + "src": "8670:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14304,20 +14304,20 @@ "visibility": "internal" } ], - "src": "8647:35:25" + "src": "8647:35:26" }, "payable": false, "returnParameters": { - "id": 3802, + "id": 3956, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3801, + "id": 3955, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8709:12:25", + "scope": 3966, + "src": "8709:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14325,10 +14325,10 @@ "typeString": "bool" }, "typeName": { - "id": 3800, + "id": 3954, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8709:4:25", + "src": "8709:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14338,20 +14338,20 @@ "visibility": "internal" } ], - "src": "8708:14:25" + "src": "8708:14:26" }, - "scope": 3813, - "src": "8617:182:25", + "scope": 3967, + "src": "8617:182:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "3506:5295:25" + "scope": 3968, + "src": "3506:5295:26" } ], - "src": "0:8801:25" + "src": "0:8801:26" }, "compiler": { "name": "solc", @@ -14359,5 +14359,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.100Z" + "updatedAt": "2018-09-26T08:32:07.653Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/EmptyToken.json b/safe-contracts/build/contracts/test/EmptyToken.json index a49739e4..1a470ff2 100644 --- a/safe-contracts/build/contracts/test/EmptyToken.json +++ b/safe-contracts/build/contracts/test/EmptyToken.json @@ -320,34 +320,34 @@ ], "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600160146101000a81548160ff021916908360ff160217905550600160149054906101000a900460ff1660ff16600a0a620f424002600281905550600254600360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6002546040518082815260200191505060405180910390a36112718061018d6000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146100ca57806318160ddd1461012f57806323b872dd1461015a578063313ce567146101df57806370a082311461021057806379ba5097146102675780638da5cb5b1461027e578063a9059cbb146102d5578063cae9ca511461033a578063d4ee1d90146103e5578063dc39d06d1461043c578063dd62ed3e146104a1578063f2fde38b14610518575b600080fd5b3480156100d657600080fd5b50610115600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061055b565b604051808215151515815260200191505060405180910390f35b34801561013b57600080fd5b5061014461064d565b6040518082815260200191505060405180910390f35b34801561016657600080fd5b506101c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a8565b604051808215151515815260200191505060405180910390f35b3480156101eb57600080fd5b506101f4610953565b604051808260ff1660ff16815260200191505060405180910390f35b34801561021c57600080fd5b50610251600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610966565b6040518082815260200191505060405180910390f35b34801561027357600080fd5b5061027c6109af565b005b34801561028a57600080fd5b50610293610b4e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102e157600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b73565b604051808215151515815260200191505060405180910390f35b34801561034657600080fd5b506103cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610d0e565b604051808215151515815260200191505060405180910390f35b3480156103f157600080fd5b506103fa610f5d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044857600080fd5b50610487600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f83565b604051808215151515815260200191505060405180910390f35b3480156104ad57600080fd5b50610502600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e7565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b50610559600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061116e565b005b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60006106a3600360008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460025461120d90919063ffffffff16565b905090565b60006106fc82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506107ce82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600160149054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a0b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bc782600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c5c82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610eeb578082015181840152602081019050610ed0565b50505050905090810190601f168015610f185780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610f3a57600080fd5b505af1158015610f4e573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fe057600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156110a457600080fd5b505af11580156110b8573d6000803e3d6000fd5b505050506040513d60208110156110ce57600080fd5b8101908080519060200190929190505050905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111c957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561121e57600080fd5b818303905092915050565b6000818301905082811015151561123f57600080fd5b929150505600a165627a7a7230582086ec8e422bd8c5ddad32eb09a806eeb6d1ed5c20827c3010d77b0278f363ecbe0029", "deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146100ca57806318160ddd1461012f57806323b872dd1461015a578063313ce567146101df57806370a082311461021057806379ba5097146102675780638da5cb5b1461027e578063a9059cbb146102d5578063cae9ca511461033a578063d4ee1d90146103e5578063dc39d06d1461043c578063dd62ed3e146104a1578063f2fde38b14610518575b600080fd5b3480156100d657600080fd5b50610115600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061055b565b604051808215151515815260200191505060405180910390f35b34801561013b57600080fd5b5061014461064d565b6040518082815260200191505060405180910390f35b34801561016657600080fd5b506101c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a8565b604051808215151515815260200191505060405180910390f35b3480156101eb57600080fd5b506101f4610953565b604051808260ff1660ff16815260200191505060405180910390f35b34801561021c57600080fd5b50610251600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610966565b6040518082815260200191505060405180910390f35b34801561027357600080fd5b5061027c6109af565b005b34801561028a57600080fd5b50610293610b4e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102e157600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b73565b604051808215151515815260200191505060405180910390f35b34801561034657600080fd5b506103cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610d0e565b604051808215151515815260200191505060405180910390f35b3480156103f157600080fd5b506103fa610f5d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044857600080fd5b50610487600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f83565b604051808215151515815260200191505060405180910390f35b3480156104ad57600080fd5b50610502600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e7565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b50610559600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061116e565b005b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60006106a3600360008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460025461120d90919063ffffffff16565b905090565b60006106fc82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506107ce82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600160149054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a0b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bc782600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c5c82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610eeb578082015181840152602081019050610ed0565b50505050905090810190601f168015610f185780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610f3a57600080fd5b505af1158015610f4e573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fe057600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156110a457600080fd5b505af11580156110b8573d6000803e3d6000fd5b505050506040513d60208110156110ce57600080fd5b8101908080519060200190929190505050905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111c957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561121e57600080fd5b818303905092915050565b6000818301905082811015151561123f57600080fd5b929150505600a165627a7a7230582086ec8e422bd8c5ddad32eb09a806eeb6d1ed5c20827c3010d77b0278f363ecbe0029", - "sourceMap": "3506:5189:24:-;;;3916:200;8:9:-1;5:2;;;30:1;27;20:12;5:2;3916:200:24;2856:10;2848:5;;:18;;;;;;;;;;;;;;;;;;3958:2;3947:8;;:13;;;;;;;;;;;;;;;;;;4004:8;;;;;;;;;;;3999:14;;3995:2;:18;3985:7;:28;3970:12;:43;;;;4041:12;;4023:8;:15;4032:5;;;;;;;;;;;4023:15;;;;;;;;;;;;;;;:30;;;;4089:5;;;;;;;;;;;4068:41;;4085:1;4068:41;;;4096:12;;4068:41;;;;;;;;;;;;;;;;;;3506:5189;;;;;;", - "deployedSourceMap": "3506:5189:24:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8264:8;;;5865:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5865:204:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4303:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4303:112:24;;;;;;;;;;;;;;;;;;;;;;;6601:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6601:337:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3587:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3587:21:24;;;;;;;;;;;;;;;;;;;;;;;;;;;4636:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4636:118:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3065:191:24;;;;;;2684:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2684:20:24;;;;;;;;;;;;;;;;;;;;;;;;;;;5097:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5097:262:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7724:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7724:312:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:24;;;;;;;;;;;;;;;;;;;;;;;;;;;8511:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8511:182:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7219:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7219:145:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;5865:204;5928:12;5983:6;5952:7;:19;5960:10;5952:19;;;;;;;;;;;;;;;:28;5972:7;5952:28;;;;;;;;;;;;;;;:37;;;;6025:7;6004:37;;6013:10;6004:37;;;6034:6;6004:37;;;;;;;;;;;;;;;;;;6058:4;6051:11;;5865:204;;;;:::o;4303:112::-;4347:4;4370:38;4387:8;:20;4404:1;4387:20;;;;;;;;;;;;;;;;4370:12;;:16;;:38;;;;:::i;:::-;4363:45;;4303:112;:::o;6601:337::-;6678:12;6719:26;6738:6;6719:8;:14;6728:4;6719:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;6702:8;:14;6711:4;6702:14;;;;;;;;;;;;;;;:43;;;;6783:37;6813:6;6783:7;:13;6791:4;6783:13;;;;;;;;;;;;;;;:25;6797:10;6783:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;6755:7;:13;6763:4;6755:13;;;;;;;;;;;;;;;:25;6769:10;6755:25;;;;;;;;;;;;;;;:65;;;;6845:24;6862:6;6845:8;:12;6854:2;6845:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;6830:8;:12;6839:2;6830:12;;;;;;;;;;;;;;;:39;;;;6899:2;6884:26;;6893:4;6884:26;;;6903:6;6884:26;;;;;;;;;;;;;;;;;;6927:4;6920:11;;6601:337;;;;;:::o;3587:21::-;;;;;;;;;;;;;:::o;4636:118::-;4696:12;4727:8;:20;4736:10;4727:20;;;;;;;;;;;;;;;;4720:27;;4636:118;;;:::o;3065:191::-;3131:8;;;;;;;;;;;3117:22;;:10;:22;;;3109:31;;;;;;;;3183:8;;;;;;;;;;;3155:37;;3176:5;;;;;;;;;;;3155:37;;;;;;;;;;;;3210:8;;;;;;;;;;;3202:5;;:16;;;;;;;;;;;;;;;;;;3247:1;3228:8;;:21;;;;;;;;;;;;;;;;;;3065:191::o;2684:20::-;;;;;;;;;;;;;:::o;5097:262::-;5156:12;5203:32;5228:6;5203:8;:20;5212:10;5203:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5180:8;:20;5189:10;5180:20;;;;;;;;;;;;;;;:55;;;;5260:24;5277:6;5260:8;:12;5269:2;5260:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;5245:8;:12;5254:2;5245:12;;;;;;;;;;;;;;;:39;;;;5320:2;5299:32;;5308:10;5299:32;;;5324:6;5299:32;;;;;;;;;;;;;;;;;;5348:4;5341:11;;5097:262;;;;:::o;7724:312::-;7806:12;7861:6;7830:7;:19;7838:10;7830:19;;;;;;;;;;;;;;;:28;7850:7;7830:28;;;;;;;;;;;;;;;:37;;;;7903:7;7882:37;;7891:10;7882:37;;;7912:6;7882:37;;;;;;;;;;;;;;;;;;7952:7;7929:47;;;7977:10;7989:6;7997:4;8003;7929:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7929:79:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7929:79:24;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7929:79:24;;;;8025:4;8018:11;;7724:312;;;;;:::o;2710:23::-;;;;;;;;;;;;;:::o;8511:182::-;8603:12;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;8649:12;8634:37;;;8672:5;;;;;;;;;;;8679:6;8634:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8634:52:24;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8634:52:24;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8634:52:24;;;;;;;;;;;;;;;;8627:59;;8511:182;;;;:::o;7219:145::-;7296:14;7329:7;:19;7337:10;7329:19;;;;;;;;;;;;;;;:28;7349:7;7329:28;;;;;;;;;;;;;;;;7322:35;;7219:145;;;;:::o;2960:100::-;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;3044:9;3033:8;;:20;;;;;;;;;;;;;;;;;;2960:100;:::o;775:111::-;827:6;858:1;853;:6;;845:15;;;;;;;;878:1;874;:5;870:9;;775:111;;;;:::o;659:::-;711:6;737:1;733;:5;729:9;;761:1;756;:6;;748:15;;;;;;;;659:111;;;;:::o", + "sourceMap": "3506:5189:25:-;;;3916:200;8:9:-1;5:2;;;30:1;27;20:12;5:2;3916:200:25;2856:10;2848:5;;:18;;;;;;;;;;;;;;;;;;3958:2;3947:8;;:13;;;;;;;;;;;;;;;;;;4004:8;;;;;;;;;;;3999:14;;3995:2;:18;3985:7;:28;3970:12;:43;;;;4041:12;;4023:8;:15;4032:5;;;;;;;;;;;4023:15;;;;;;;;;;;;;;;:30;;;;4089:5;;;;;;;;;;;4068:41;;4085:1;4068:41;;;4096:12;;4068:41;;;;;;;;;;;;;;;;;;3506:5189;;;;;;", + "deployedSourceMap": "3506:5189:25:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8264:8;;;5865:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5865:204:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4303:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4303:112:25;;;;;;;;;;;;;;;;;;;;;;;6601:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6601:337:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3587:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3587:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;4636:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4636:118:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3065:191:25;;;;;;2684:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2684:20:25;;;;;;;;;;;;;;;;;;;;;;;;;;;5097:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5097:262:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7724:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7724:312:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:25;;;;;;;;;;;;;;;;;;;;;;;;;;;8511:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8511:182:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7219:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7219:145:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;5865:204;5928:12;5983:6;5952:7;:19;5960:10;5952:19;;;;;;;;;;;;;;;:28;5972:7;5952:28;;;;;;;;;;;;;;;:37;;;;6025:7;6004:37;;6013:10;6004:37;;;6034:6;6004:37;;;;;;;;;;;;;;;;;;6058:4;6051:11;;5865:204;;;;:::o;4303:112::-;4347:4;4370:38;4387:8;:20;4404:1;4387:20;;;;;;;;;;;;;;;;4370:12;;:16;;:38;;;;:::i;:::-;4363:45;;4303:112;:::o;6601:337::-;6678:12;6719:26;6738:6;6719:8;:14;6728:4;6719:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;6702:8;:14;6711:4;6702:14;;;;;;;;;;;;;;;:43;;;;6783:37;6813:6;6783:7;:13;6791:4;6783:13;;;;;;;;;;;;;;;:25;6797:10;6783:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;6755:7;:13;6763:4;6755:13;;;;;;;;;;;;;;;:25;6769:10;6755:25;;;;;;;;;;;;;;;:65;;;;6845:24;6862:6;6845:8;:12;6854:2;6845:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;6830:8;:12;6839:2;6830:12;;;;;;;;;;;;;;;:39;;;;6899:2;6884:26;;6893:4;6884:26;;;6903:6;6884:26;;;;;;;;;;;;;;;;;;6927:4;6920:11;;6601:337;;;;;:::o;3587:21::-;;;;;;;;;;;;;:::o;4636:118::-;4696:12;4727:8;:20;4736:10;4727:20;;;;;;;;;;;;;;;;4720:27;;4636:118;;;:::o;3065:191::-;3131:8;;;;;;;;;;;3117:22;;:10;:22;;;3109:31;;;;;;;;3183:8;;;;;;;;;;;3155:37;;3176:5;;;;;;;;;;;3155:37;;;;;;;;;;;;3210:8;;;;;;;;;;;3202:5;;:16;;;;;;;;;;;;;;;;;;3247:1;3228:8;;:21;;;;;;;;;;;;;;;;;;3065:191::o;2684:20::-;;;;;;;;;;;;;:::o;5097:262::-;5156:12;5203:32;5228:6;5203:8;:20;5212:10;5203:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5180:8;:20;5189:10;5180:20;;;;;;;;;;;;;;;:55;;;;5260:24;5277:6;5260:8;:12;5269:2;5260:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;5245:8;:12;5254:2;5245:12;;;;;;;;;;;;;;;:39;;;;5320:2;5299:32;;5308:10;5299:32;;;5324:6;5299:32;;;;;;;;;;;;;;;;;;5348:4;5341:11;;5097:262;;;;:::o;7724:312::-;7806:12;7861:6;7830:7;:19;7838:10;7830:19;;;;;;;;;;;;;;;:28;7850:7;7830:28;;;;;;;;;;;;;;;:37;;;;7903:7;7882:37;;7891:10;7882:37;;;7912:6;7882:37;;;;;;;;;;;;;;;;;;7952:7;7929:47;;;7977:10;7989:6;7997:4;8003;7929:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7929:79:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7929:79:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7929:79:25;;;;8025:4;8018:11;;7724:312;;;;;:::o;2710:23::-;;;;;;;;;;;;;:::o;8511:182::-;8603:12;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;8649:12;8634:37;;;8672:5;;;;;;;;;;;8679:6;8634:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8634:52:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8634:52:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8634:52:25;;;;;;;;;;;;;;;;8627:59;;8511:182;;;;:::o;7219:145::-;7296:14;7329:7;:19;7337:10;7329:19;;;;;;;;;;;;;;;:28;7349:7;7329:28;;;;;;;;;;;;;;;;7322:35;;7219:145;;;;:::o;2960:100::-;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;3044:9;3033:8;;:20;;;;;;;;;;;;;;;;;;2960:100;:::o;775:111::-;827:6;858:1;853;:6;;845:15;;;;;;;;878:1;874;:5;870:9;;775:111;;;;:::o;659:::-;711:6;737:1;733;:5;729:9;;761:1;756;:6;;748:15;;;;;;;;659:111;;;;:::o", "source": "pragma solidity ^0.4.24;\n\n// ----------------------------------------------------------------------------\n// 'FIXED' 'Example Fixed Supply Token' token contract\n//\n// Symbol : FIXED\n// Name : Example Fixed Supply Token\n// Total supply: 1,000,000.000000000000000000\n// Decimals : 18\n//\n// Enjoy.\n//\n// (c) BokkyPooBah / Bok Consulting Pty Ltd 2018. The MIT Licence.\n// ----------------------------------------------------------------------------\n\n\n// ----------------------------------------------------------------------------\n// Safe maths\n// ----------------------------------------------------------------------------\nlibrary SafeMath {\n function add(uint a, uint b) internal pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n function sub(uint a, uint b) internal pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n function mul(uint a, uint b) internal pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n function div(uint a, uint b) internal pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC Token Standard #20 Interface\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n// ----------------------------------------------------------------------------\ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n\n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n\n// ----------------------------------------------------------------------------\n// Contract function to receive approval and execute function in one call\n//\n// Borrowed from MiniMeToken\n// ----------------------------------------------------------------------------\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n\n// ----------------------------------------------------------------------------\n// Owned contract\n// ----------------------------------------------------------------------------\ncontract Owned {\n address public owner;\n address public newOwner;\n\n event OwnershipTransferred(address indexed _from, address indexed _to);\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner {\n require(msg.sender == owner);\n _;\n }\n\n function transferOwnership(address _newOwner) public onlyOwner {\n newOwner = _newOwner;\n }\n function acceptOwnership() public {\n require(msg.sender == newOwner);\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n newOwner = address(0);\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and a\n// fixed supply\n// ----------------------------------------------------------------------------\ncontract EmptyToken is ERC20Interface, Owned {\n using SafeMath for uint;\n\n uint8 public decimals;\n uint _totalSupply;\n\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n\n\n // ------------------------------------------------------------------------\n // Constructor\n // ------------------------------------------------------------------------\n constructor() public {\n decimals = 18;\n _totalSupply = 1000000 * 10**uint(decimals);\n balances[owner] = _totalSupply;\n emit Transfer(address(0), owner, _totalSupply);\n }\n\n\n // ------------------------------------------------------------------------\n // Total supply\n // ------------------------------------------------------------------------\n function totalSupply() public view returns (uint) {\n return _totalSupply.sub(balances[address(0)]);\n }\n\n\n // ------------------------------------------------------------------------\n // Get the token balance for account `tokenOwner`\n // ------------------------------------------------------------------------\n function balanceOf(address tokenOwner) public view returns (uint balance) {\n return balances[tokenOwner];\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer the balance from token owner's account to `to` account\n // - Owner's account must have sufficient balance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = balances[msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account\n //\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n // recommends that there are no checks for the approval double-spend attack\n // as this should be implemented in user interfaces \n // ------------------------------------------------------------------------\n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer `tokens` from the `from` account to the `to` account\n // \n // The calling account must already have sufficient tokens approve(...)-d\n // for spending from the `from` account and\n // - From account must have sufficient balance to transfer\n // - Spender must have sufficient allowance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = balances[from].sub(tokens);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Returns the amount of tokens approved by the owner that can be\n // transferred to the spender's account\n // ------------------------------------------------------------------------\n function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account. The `spender` contract function\n // `receiveApproval(...)` is then executed\n // ------------------------------------------------------------------------\n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Don't accept ETH\n // ------------------------------------------------------------------------\n function () public payable {\n revert();\n }\n\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return ERC20Interface(tokenAddress).transfer(owner, tokens);\n }\n}", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/EmptyToken.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/EmptyToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ - 2897 + 3051 ], "ERC20Interface": [ - 2885 + 3039 ], "EmptyToken": [ - 3261 + 3415 ], "Owned": [ - 2966 + 3120 ], "SafeMath": [ - 2818 + 2972 ] }, - "id": 3262, + "id": 3416, "nodeType": "SourceUnit", "nodes": [ { - "id": 2723, + "id": 2877, "literals": [ "solidity", "^", @@ -355,7 +355,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:24" + "src": "0:24:25" }, { "baseContracts": [], @@ -363,35 +363,35 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 2818, + "id": 2972, "linearizedBaseContracts": [ - 2818 + 2972 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2744, + "id": 2898, "nodeType": "Block", - "src": "719:51:24", + "src": "719:51:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 2736, + "id": 2890, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2732, + "id": 2886, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2730, - "src": "729:1:24", + "referencedDeclaration": 2884, + "src": "729:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -405,19 +405,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2735, + "id": 2889, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2733, + "id": 2887, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2725, - "src": "733:1:24", + "referencedDeclaration": 2879, + "src": "733:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -427,32 +427,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2734, + "id": 2888, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "737:1:24", + "referencedDeclaration": 2881, + "src": "737:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:5:24", + "src": "733:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "729:9:24", + "src": "729:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2737, + "id": 2891, "nodeType": "ExpressionStatement", - "src": "729:9:24" + "src": "729:9:25" }, { "expression": { @@ -464,19 +464,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2741, + "id": 2895, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2739, + "id": 2893, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2730, - "src": "756:1:24", + "referencedDeclaration": 2884, + "src": "756:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -486,18 +486,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 2740, + "id": 2894, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2725, - "src": "761:1:24", + "referencedDeclaration": 2879, + "src": "761:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "756:6:24", + "src": "756:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -511,21 +511,21 @@ "typeString": "bool" } ], - "id": 2738, + "id": 2892, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "748:7:24", + "referencedDeclaration": 4494, + "src": "748:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2742, + "id": 2896, "isConstant": false, "isLValue": false, "isPure": false, @@ -533,20 +533,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:15:24", + "src": "748:15:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2743, + "id": 2897, "nodeType": "ExpressionStatement", - "src": "748:15:24" + "src": "748:15:25" } ] }, "documentation": null, - "id": 2745, + "id": 2899, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -554,16 +554,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 2728, + "id": 2882, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2725, + "id": 2879, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2745, - "src": "672:6:24", + "scope": 2899, + "src": "672:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -571,10 +571,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2724, + "id": 2878, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "672:4:24", + "src": "672:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -585,11 +585,11 @@ }, { "constant": false, - "id": 2727, + "id": 2881, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2745, - "src": "680:6:24", + "scope": 2899, + "src": "680:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -597,10 +597,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2726, + "id": 2880, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "680:4:24", + "src": "680:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -610,20 +610,20 @@ "visibility": "internal" } ], - "src": "671:16:24" + "src": "671:16:25" }, "payable": false, "returnParameters": { - "id": 2731, + "id": 2885, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2730, + "id": 2884, "name": "c", "nodeType": "VariableDeclaration", - "scope": 2745, - "src": "711:6:24", + "scope": 2899, + "src": "711:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -631,10 +631,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2729, + "id": 2883, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "711:4:24", + "src": "711:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -644,19 +644,19 @@ "visibility": "internal" } ], - "src": "710:8:24" + "src": "710:8:25" }, - "scope": 2818, - "src": "659:111:24", + "scope": 2972, + "src": "659:111:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2766, + "id": 2920, "nodeType": "Block", - "src": "835:51:24", + "src": "835:51:25", "statements": [ { "expression": { @@ -668,19 +668,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2757, + "id": 2911, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2755, + "id": 2909, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2749, - "src": "853:1:24", + "referencedDeclaration": 2903, + "src": "853:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -690,18 +690,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 2756, + "id": 2910, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2747, - "src": "858:1:24", + "referencedDeclaration": 2901, + "src": "858:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "853:6:24", + "src": "853:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -715,21 +715,21 @@ "typeString": "bool" } ], - "id": 2754, + "id": 2908, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "845:7:24", + "referencedDeclaration": 4494, + "src": "845:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2758, + "id": 2912, "isConstant": false, "isLValue": false, "isPure": false, @@ -737,32 +737,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:15:24", + "src": "845:15:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2759, + "id": 2913, "nodeType": "ExpressionStatement", - "src": "845:15:24" + "src": "845:15:25" }, { "expression": { "argumentTypes": null, - "id": 2764, + "id": 2918, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2760, + "id": 2914, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2752, - "src": "870:1:24", + "referencedDeclaration": 2906, + "src": "870:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -776,19 +776,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2763, + "id": 2917, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2761, + "id": 2915, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2747, - "src": "874:1:24", + "referencedDeclaration": 2901, + "src": "874:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -798,37 +798,37 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 2762, + "id": 2916, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2749, - "src": "878:1:24", + "referencedDeclaration": 2903, + "src": "878:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "874:5:24", + "src": "874:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "870:9:24", + "src": "870:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2765, + "id": 2919, "nodeType": "ExpressionStatement", - "src": "870:9:24" + "src": "870:9:25" } ] }, "documentation": null, - "id": 2767, + "id": 2921, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -836,16 +836,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 2750, + "id": 2904, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2747, + "id": 2901, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2767, - "src": "788:6:24", + "scope": 2921, + "src": "788:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -853,10 +853,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2746, + "id": 2900, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "788:4:24", + "src": "788:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -867,11 +867,11 @@ }, { "constant": false, - "id": 2749, + "id": 2903, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2767, - "src": "796:6:24", + "scope": 2921, + "src": "796:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -879,10 +879,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2748, + "id": 2902, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "796:4:24", + "src": "796:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -892,20 +892,20 @@ "visibility": "internal" } ], - "src": "787:16:24" + "src": "787:16:25" }, "payable": false, "returnParameters": { - "id": 2753, + "id": 2907, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2752, + "id": 2906, "name": "c", "nodeType": "VariableDeclaration", - "scope": 2767, - "src": "827:6:24", + "scope": 2921, + "src": "827:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -913,10 +913,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2751, + "id": 2905, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:24", + "src": "827:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -926,36 +926,36 @@ "visibility": "internal" } ], - "src": "826:8:24" + "src": "826:8:25" }, - "scope": 2818, - "src": "775:111:24", + "scope": 2972, + "src": "775:111:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2794, + "id": 2948, "nodeType": "Block", - "src": "951:65:24", + "src": "951:65:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 2780, + "id": 2934, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2776, + "id": 2930, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2774, - "src": "961:1:24", + "referencedDeclaration": 2928, + "src": "961:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -969,19 +969,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2779, + "id": 2933, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2777, + "id": 2931, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "965:1:24", + "referencedDeclaration": 2923, + "src": "965:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -991,32 +991,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 2778, + "id": 2932, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2771, - "src": "969:1:24", + "referencedDeclaration": 2925, + "src": "969:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "965:5:24", + "src": "965:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "961:9:24", + "src": "961:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2781, + "id": 2935, "nodeType": "ExpressionStatement", - "src": "961:9:24" + "src": "961:9:25" }, { "expression": { @@ -1028,7 +1028,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2791, + "id": 2945, "isConstant": false, "isLValue": false, "isPure": false, @@ -1039,19 +1039,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2785, + "id": 2939, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2783, + "id": 2937, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "988:1:24", + "referencedDeclaration": 2923, + "src": "988:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1062,14 +1062,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2784, + "id": 2938, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "993:1:24", + "src": "993:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1077,7 +1077,7 @@ }, "value": "0" }, - "src": "988:6:24", + "src": "988:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1091,7 +1091,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2790, + "id": 2944, "isConstant": false, "isLValue": false, "isPure": false, @@ -1102,19 +1102,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2788, + "id": 2942, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2786, + "id": 2940, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2774, - "src": "998:1:24", + "referencedDeclaration": 2928, + "src": "998:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1124,18 +1124,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 2787, + "id": 2941, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "1002:1:24", + "referencedDeclaration": 2923, + "src": "1002:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:5:24", + "src": "998:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1145,24 +1145,24 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2789, + "id": 2943, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2771, - "src": "1007:1:24", + "referencedDeclaration": 2925, + "src": "1007:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:24", + "src": "998:10:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "988:20:24", + "src": "988:20:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1176,21 +1176,21 @@ "typeString": "bool" } ], - "id": 2782, + "id": 2936, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "980:7:24", + "referencedDeclaration": 4494, + "src": "980:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2792, + "id": 2946, "isConstant": false, "isLValue": false, "isPure": false, @@ -1198,20 +1198,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "980:29:24", + "src": "980:29:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2793, + "id": 2947, "nodeType": "ExpressionStatement", - "src": "980:29:24" + "src": "980:29:25" } ] }, "documentation": null, - "id": 2795, + "id": 2949, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1219,16 +1219,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 2772, + "id": 2926, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2769, + "id": 2923, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2795, - "src": "904:6:24", + "scope": 2949, + "src": "904:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1236,10 +1236,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2768, + "id": 2922, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "904:4:24", + "src": "904:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1250,11 +1250,11 @@ }, { "constant": false, - "id": 2771, + "id": 2925, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2795, - "src": "912:6:24", + "scope": 2949, + "src": "912:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1262,10 +1262,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2770, + "id": 2924, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "912:4:24", + "src": "912:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1275,20 +1275,20 @@ "visibility": "internal" } ], - "src": "903:16:24" + "src": "903:16:25" }, "payable": false, "returnParameters": { - "id": 2775, + "id": 2929, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2774, + "id": 2928, "name": "c", "nodeType": "VariableDeclaration", - "scope": 2795, - "src": "943:6:24", + "scope": 2949, + "src": "943:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1296,10 +1296,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2773, + "id": 2927, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "943:4:24", + "src": "943:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1309,19 +1309,19 @@ "visibility": "internal" } ], - "src": "942:8:24" + "src": "942:8:25" }, - "scope": 2818, - "src": "891:125:24", + "scope": 2972, + "src": "891:125:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2816, + "id": 2970, "nodeType": "Block", - "src": "1081:50:24", + "src": "1081:50:25", "statements": [ { "expression": { @@ -1333,19 +1333,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2807, + "id": 2961, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2805, + "id": 2959, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2799, - "src": "1099:1:24", + "referencedDeclaration": 2953, + "src": "1099:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1356,14 +1356,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2806, + "id": 2960, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:1:24", + "src": "1103:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1371,7 +1371,7 @@ }, "value": "0" }, - "src": "1099:5:24", + "src": "1099:5:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1385,21 +1385,21 @@ "typeString": "bool" } ], - "id": 2804, + "id": 2958, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "1091:7:24", + "referencedDeclaration": 4494, + "src": "1091:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2808, + "id": 2962, "isConstant": false, "isLValue": false, "isPure": false, @@ -1407,32 +1407,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:14:24", + "src": "1091:14:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2809, + "id": 2963, "nodeType": "ExpressionStatement", - "src": "1091:14:24" + "src": "1091:14:25" }, { "expression": { "argumentTypes": null, - "id": 2814, + "id": 2968, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2810, + "id": 2964, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2802, - "src": "1115:1:24", + "referencedDeclaration": 2956, + "src": "1115:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1446,19 +1446,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2813, + "id": 2967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2811, + "id": 2965, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2797, - "src": "1119:1:24", + "referencedDeclaration": 2951, + "src": "1119:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1468,37 +1468,37 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 2812, + "id": 2966, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2799, - "src": "1123:1:24", + "referencedDeclaration": 2953, + "src": "1123:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:5:24", + "src": "1119:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1115:9:24", + "src": "1115:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2815, + "id": 2969, "nodeType": "ExpressionStatement", - "src": "1115:9:24" + "src": "1115:9:25" } ] }, "documentation": null, - "id": 2817, + "id": 2971, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1506,16 +1506,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 2800, + "id": 2954, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2797, + "id": 2951, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2817, - "src": "1034:6:24", + "scope": 2971, + "src": "1034:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1523,10 +1523,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2796, + "id": 2950, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1034:4:24", + "src": "1034:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1537,11 +1537,11 @@ }, { "constant": false, - "id": 2799, + "id": 2953, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2817, - "src": "1042:6:24", + "scope": 2971, + "src": "1042:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1549,10 +1549,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2798, + "id": 2952, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1042:4:24", + "src": "1042:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1562,20 +1562,20 @@ "visibility": "internal" } ], - "src": "1033:16:24" + "src": "1033:16:25" }, "payable": false, "returnParameters": { - "id": 2803, + "id": 2957, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2802, + "id": 2956, "name": "c", "nodeType": "VariableDeclaration", - "scope": 2817, - "src": "1073:6:24", + "scope": 2971, + "src": "1073:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1583,10 +1583,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2801, + "id": 2955, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1073:4:24", + "src": "1073:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1596,17 +1596,17 @@ "visibility": "internal" } ], - "src": "1072:8:24" + "src": "1072:8:25" }, - "scope": 2818, - "src": "1021:110:24", + "scope": 2972, + "src": "1021:110:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 3262, - "src": "636:497:24" + "scope": 3416, + "src": "636:497:25" }, { "baseContracts": [], @@ -1614,9 +1614,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 2885, + "id": 3039, "linearizedBaseContracts": [ - 2885 + 3039 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", @@ -1624,7 +1624,7 @@ { "body": null, "documentation": null, - "id": 2823, + "id": 2977, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1632,23 +1632,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 2819, + "id": 2973, "nodeType": "ParameterList", "parameters": [], - "src": "1445:2:24" + "src": "1445:2:25" }, "payable": false, "returnParameters": { - "id": 2822, + "id": 2976, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2821, + "id": 2975, "name": "", "nodeType": "VariableDeclaration", - "scope": 2823, - "src": "1473:4:24", + "scope": 2977, + "src": "1473:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1656,10 +1656,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2820, + "id": 2974, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1473:4:24", + "src": "1473:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1669,10 +1669,10 @@ "visibility": "internal" } ], - "src": "1472:6:24" + "src": "1472:6:25" }, - "scope": 2885, - "src": "1425:54:24", + "scope": 3039, + "src": "1425:54:25", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1680,7 +1680,7 @@ { "body": null, "documentation": null, - "id": 2830, + "id": 2984, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1688,16 +1688,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 2826, + "id": 2980, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2825, + "id": 2979, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 2830, - "src": "1503:18:24", + "scope": 2984, + "src": "1503:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1705,10 +1705,10 @@ "typeString": "address" }, "typeName": { - "id": 2824, + "id": 2978, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1503:7:24", + "src": "1503:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1718,20 +1718,20 @@ "visibility": "internal" } ], - "src": "1502:20:24" + "src": "1502:20:25" }, "payable": false, "returnParameters": { - "id": 2829, + "id": 2983, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2828, + "id": 2982, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 2830, - "src": "1548:12:24", + "scope": 2984, + "src": "1548:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1739,10 +1739,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2827, + "id": 2981, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:24", + "src": "1548:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1752,10 +1752,10 @@ "visibility": "internal" } ], - "src": "1547:14:24" + "src": "1547:14:25" }, - "scope": 2885, - "src": "1484:78:24", + "scope": 3039, + "src": "1484:78:25", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1763,7 +1763,7 @@ { "body": null, "documentation": null, - "id": 2839, + "id": 2993, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1771,16 +1771,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 2835, + "id": 2989, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2832, + "id": 2986, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 2839, - "src": "1586:18:24", + "scope": 2993, + "src": "1586:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1788,10 +1788,10 @@ "typeString": "address" }, "typeName": { - "id": 2831, + "id": 2985, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:24", + "src": "1586:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1802,11 +1802,11 @@ }, { "constant": false, - "id": 2834, + "id": 2988, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2839, - "src": "1606:15:24", + "scope": 2993, + "src": "1606:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1814,10 +1814,10 @@ "typeString": "address" }, "typeName": { - "id": 2833, + "id": 2987, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1606:7:24", + "src": "1606:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1827,20 +1827,20 @@ "visibility": "internal" } ], - "src": "1585:37:24" + "src": "1585:37:25" }, "payable": false, "returnParameters": { - "id": 2838, + "id": 2992, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2837, + "id": 2991, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 2839, - "src": "1648:14:24", + "scope": 2993, + "src": "1648:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1848,10 +1848,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2836, + "id": 2990, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1648:4:24", + "src": "1648:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1861,10 +1861,10 @@ "visibility": "internal" } ], - "src": "1647:16:24" + "src": "1647:16:25" }, - "scope": 2885, - "src": "1567:97:24", + "scope": 3039, + "src": "1567:97:25", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1872,7 +1872,7 @@ { "body": null, "documentation": null, - "id": 2848, + "id": 3002, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1880,16 +1880,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 2844, + "id": 2998, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2841, + "id": 2995, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "1687:10:24", + "scope": 3002, + "src": "1687:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1897,10 +1897,10 @@ "typeString": "address" }, "typeName": { - "id": 2840, + "id": 2994, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:24", + "src": "1687:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1911,11 +1911,11 @@ }, { "constant": false, - "id": 2843, + "id": 2997, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "1699:11:24", + "scope": 3002, + "src": "1699:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1923,10 +1923,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2842, + "id": 2996, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:24", + "src": "1699:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1936,20 +1936,20 @@ "visibility": "internal" } ], - "src": "1686:25:24" + "src": "1686:25:25" }, "payable": false, "returnParameters": { - "id": 2847, + "id": 3001, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2846, + "id": 3000, "name": "success", "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "1728:12:24", + "scope": 3002, + "src": "1728:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1957,10 +1957,10 @@ "typeString": "bool" }, "typeName": { - "id": 2845, + "id": 2999, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1728:4:24", + "src": "1728:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1970,10 +1970,10 @@ "visibility": "internal" } ], - "src": "1727:14:24" + "src": "1727:14:25" }, - "scope": 2885, - "src": "1669:73:24", + "scope": 3039, + "src": "1669:73:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1981,7 +1981,7 @@ { "body": null, "documentation": null, - "id": 2857, + "id": 3011, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1989,16 +1989,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 2853, + "id": 3007, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2850, + "id": 3004, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2857, - "src": "1764:15:24", + "scope": 3011, + "src": "1764:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2006,10 +2006,10 @@ "typeString": "address" }, "typeName": { - "id": 2849, + "id": 3003, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:24", + "src": "1764:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2020,11 +2020,11 @@ }, { "constant": false, - "id": 2852, + "id": 3006, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 2857, - "src": "1781:11:24", + "scope": 3011, + "src": "1781:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2032,10 +2032,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2851, + "id": 3005, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:24", + "src": "1781:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2045,20 +2045,20 @@ "visibility": "internal" } ], - "src": "1763:30:24" + "src": "1763:30:25" }, "payable": false, "returnParameters": { - "id": 2856, + "id": 3010, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2855, + "id": 3009, "name": "success", "nodeType": "VariableDeclaration", - "scope": 2857, - "src": "1810:12:24", + "scope": 3011, + "src": "1810:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2066,10 +2066,10 @@ "typeString": "bool" }, "typeName": { - "id": 2854, + "id": 3008, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1810:4:24", + "src": "1810:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2079,10 +2079,10 @@ "visibility": "internal" } ], - "src": "1809:14:24" + "src": "1809:14:25" }, - "scope": 2885, - "src": "1747:77:24", + "scope": 3039, + "src": "1747:77:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2090,7 +2090,7 @@ { "body": null, "documentation": null, - "id": 2868, + "id": 3022, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -2098,16 +2098,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 2864, + "id": 3018, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2859, + "id": 3013, "name": "from", "nodeType": "VariableDeclaration", - "scope": 2868, - "src": "1851:12:24", + "scope": 3022, + "src": "1851:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2115,10 +2115,10 @@ "typeString": "address" }, "typeName": { - "id": 2858, + "id": 3012, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1851:7:24", + "src": "1851:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2129,11 +2129,11 @@ }, { "constant": false, - "id": 2861, + "id": 3015, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2868, - "src": "1865:10:24", + "scope": 3022, + "src": "1865:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2141,10 +2141,10 @@ "typeString": "address" }, "typeName": { - "id": 2860, + "id": 3014, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:24", + "src": "1865:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2155,11 +2155,11 @@ }, { "constant": false, - "id": 2863, + "id": 3017, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 2868, - "src": "1877:11:24", + "scope": 3022, + "src": "1877:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2167,10 +2167,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2862, + "id": 3016, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1877:4:24", + "src": "1877:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2180,20 +2180,20 @@ "visibility": "internal" } ], - "src": "1850:39:24" + "src": "1850:39:25" }, "payable": false, "returnParameters": { - "id": 2867, + "id": 3021, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2866, + "id": 3020, "name": "success", "nodeType": "VariableDeclaration", - "scope": 2868, - "src": "1906:12:24", + "scope": 3022, + "src": "1906:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2201,10 +2201,10 @@ "typeString": "bool" }, "typeName": { - "id": 2865, + "id": 3019, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1906:4:24", + "src": "1906:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2214,10 +2214,10 @@ "visibility": "internal" } ], - "src": "1905:14:24" + "src": "1905:14:25" }, - "scope": 2885, - "src": "1829:91:24", + "scope": 3039, + "src": "1829:91:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2225,21 +2225,21 @@ { "anonymous": false, "documentation": null, - "id": 2876, + "id": 3030, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 2875, + "id": 3029, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2870, + "id": 3024, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 2876, - "src": "1941:20:24", + "scope": 3030, + "src": "1941:20:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2247,10 +2247,10 @@ "typeString": "address" }, "typeName": { - "id": 2869, + "id": 3023, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1941:7:24", + "src": "1941:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2261,12 +2261,12 @@ }, { "constant": false, - "id": 2872, + "id": 3026, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2876, - "src": "1963:18:24", + "scope": 3030, + "src": "1963:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2274,10 +2274,10 @@ "typeString": "address" }, "typeName": { - "id": 2871, + "id": 3025, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1963:7:24", + "src": "1963:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2288,12 +2288,12 @@ }, { "constant": false, - "id": 2874, + "id": 3028, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 2876, - "src": "1983:11:24", + "scope": 3030, + "src": "1983:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2301,10 +2301,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2873, + "id": 3027, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:24", + "src": "1983:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2314,28 +2314,28 @@ "visibility": "internal" } ], - "src": "1940:55:24" + "src": "1940:55:25" }, - "src": "1926:70:24" + "src": "1926:70:25" }, { "anonymous": false, "documentation": null, - "id": 2884, + "id": 3038, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 2883, + "id": 3037, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2878, + "id": 3032, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 2884, - "src": "2016:26:24", + "scope": 3038, + "src": "2016:26:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2343,10 +2343,10 @@ "typeString": "address" }, "typeName": { - "id": 2877, + "id": 3031, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2016:7:24", + "src": "2016:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2357,12 +2357,12 @@ }, { "constant": false, - "id": 2880, + "id": 3034, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2884, - "src": "2044:23:24", + "scope": 3038, + "src": "2044:23:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2370,10 +2370,10 @@ "typeString": "address" }, "typeName": { - "id": 2879, + "id": 3033, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2044:7:24", + "src": "2044:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2384,12 +2384,12 @@ }, { "constant": false, - "id": 2882, + "id": 3036, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 2884, - "src": "2069:11:24", + "scope": 3038, + "src": "2069:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2397,10 +2397,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2881, + "id": 3035, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2069:4:24", + "src": "2069:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2410,13 +2410,13 @@ "visibility": "internal" } ], - "src": "2015:66:24" + "src": "2015:66:25" }, - "src": "2001:81:24" + "src": "2001:81:25" } ], - "scope": 3262, - "src": "1395:689:24" + "scope": 3416, + "src": "1395:689:25" }, { "baseContracts": [], @@ -2424,9 +2424,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 2897, + "id": 3051, "linearizedBaseContracts": [ - 2897 + 3051 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", @@ -2434,7 +2434,7 @@ { "body": null, "documentation": null, - "id": 2896, + "id": 3050, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -2442,16 +2442,16 @@ "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 2894, + "id": 3048, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2887, + "id": 3041, "name": "from", "nodeType": "VariableDeclaration", - "scope": 2896, - "src": "2416:12:24", + "scope": 3050, + "src": "2416:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2459,10 +2459,10 @@ "typeString": "address" }, "typeName": { - "id": 2886, + "id": 3040, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2416:7:24", + "src": "2416:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2473,11 +2473,11 @@ }, { "constant": false, - "id": 2889, + "id": 3043, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 2896, - "src": "2430:14:24", + "scope": 3050, + "src": "2430:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2485,10 +2485,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2888, + "id": 3042, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2430:7:24", + "src": "2430:7:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2499,11 +2499,11 @@ }, { "constant": false, - "id": 2891, + "id": 3045, "name": "token", "nodeType": "VariableDeclaration", - "scope": 2896, - "src": "2446:13:24", + "scope": 3050, + "src": "2446:13:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2511,10 +2511,10 @@ "typeString": "address" }, "typeName": { - "id": 2890, + "id": 3044, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2446:7:24", + "src": "2446:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2525,11 +2525,11 @@ }, { "constant": false, - "id": 2893, + "id": 3047, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2896, - "src": "2461:10:24", + "scope": 3050, + "src": "2461:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2537,10 +2537,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2892, + "id": 3046, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2461:5:24", + "src": "2461:5:25", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2550,24 +2550,24 @@ "visibility": "internal" } ], - "src": "2415:57:24" + "src": "2415:57:25" }, "payable": false, "returnParameters": { - "id": 2895, + "id": 3049, "nodeType": "ParameterList", "parameters": [], - "src": "2479:0:24" + "src": "2479:0:25" }, - "scope": 2897, - "src": "2391:89:24", + "scope": 3051, + "src": "2391:89:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3262, - "src": "2353:129:24" + "scope": 3416, + "src": "2353:129:25" }, { "baseContracts": [], @@ -2575,20 +2575,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 2966, + "id": 3120, "linearizedBaseContracts": [ - 2966 + 3120 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2899, + "id": 3053, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2966, - "src": "2684:20:24", + "scope": 3120, + "src": "2684:20:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2596,10 +2596,10 @@ "typeString": "address" }, "typeName": { - "id": 2898, + "id": 3052, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2684:7:24", + "src": "2684:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2610,11 +2610,11 @@ }, { "constant": false, - "id": 2901, + "id": 3055, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 2966, - "src": "2710:23:24", + "scope": 3120, + "src": "2710:23:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2622,10 +2622,10 @@ "typeString": "address" }, "typeName": { - "id": 2900, + "id": 3054, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2710:7:24", + "src": "2710:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2637,21 +2637,21 @@ { "anonymous": false, "documentation": null, - "id": 2907, + "id": 3061, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 2906, + "id": 3060, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2903, + "id": 3057, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 2907, - "src": "2767:21:24", + "scope": 3061, + "src": "2767:21:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2659,10 +2659,10 @@ "typeString": "address" }, "typeName": { - "id": 2902, + "id": 3056, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2767:7:24", + "src": "2767:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2673,12 +2673,12 @@ }, { "constant": false, - "id": 2905, + "id": 3059, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2907, - "src": "2790:19:24", + "scope": 3061, + "src": "2790:19:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2686,10 +2686,10 @@ "typeString": "address" }, "typeName": { - "id": 2904, + "id": 3058, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2790:7:24", + "src": "2790:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2699,32 +2699,32 @@ "visibility": "internal" } ], - "src": "2766:44:24" + "src": "2766:44:25" }, - "src": "2740:71:24" + "src": "2740:71:25" }, { "body": { - "id": 2915, + "id": 3069, "nodeType": "Block", - "src": "2838:35:24", + "src": "2838:35:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 2913, + "id": 3067, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2910, + "id": 3064, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2899, - "src": "2848:5:24", + "referencedDeclaration": 3053, + "src": "2848:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2736,18 +2736,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2911, + "id": 3065, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2856:3:24", + "referencedDeclaration": 4491, + "src": "2856:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2912, + "id": 3066, "isConstant": false, "isLValue": false, "isPure": false, @@ -2755,26 +2755,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2856:10:24", + "src": "2856:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2848:18:24", + "src": "2848:18:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2914, + "id": 3068, "nodeType": "ExpressionStatement", - "src": "2848:18:24" + "src": "2848:18:25" } ] }, "documentation": null, - "id": 2916, + "id": 3070, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -2782,29 +2782,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2908, + "id": 3062, "nodeType": "ParameterList", "parameters": [], - "src": "2828:2:24" + "src": "2828:2:25" }, "payable": false, "returnParameters": { - "id": 2909, + "id": 3063, "nodeType": "ParameterList", "parameters": [], - "src": "2838:0:24" + "src": "2838:0:25" }, - "scope": 2966, - "src": "2817:56:24", + "scope": 3120, + "src": "2817:56:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2926, + "id": 3080, "nodeType": "Block", - "src": "2898:56:24", + "src": "2898:56:25", "statements": [ { "expression": { @@ -2816,7 +2816,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2922, + "id": 3076, "isConstant": false, "isLValue": false, "isPure": false, @@ -2825,18 +2825,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2919, + "id": 3073, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2916:3:24", + "referencedDeclaration": 4491, + "src": "2916:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2920, + "id": 3074, "isConstant": false, "isLValue": false, "isPure": false, @@ -2844,7 +2844,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2916:10:24", + "src": "2916:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2854,18 +2854,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2921, + "id": 3075, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2899, - "src": "2930:5:24", + "referencedDeclaration": 3053, + "src": "2930:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2916:19:24", + "src": "2916:19:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2879,21 +2879,21 @@ "typeString": "bool" } ], - "id": 2918, + "id": 3072, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "2908:7:24", + "referencedDeclaration": 4494, + "src": "2908:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2923, + "id": 3077, "isConstant": false, "isLValue": false, "isPure": false, @@ -2901,58 +2901,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:28:24", + "src": "2908:28:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2924, + "id": 3078, "nodeType": "ExpressionStatement", - "src": "2908:28:24" + "src": "2908:28:25" }, { - "id": 2925, + "id": 3079, "nodeType": "PlaceholderStatement", - "src": "2946:1:24" + "src": "2946:1:25" } ] }, "documentation": null, - "id": 2927, + "id": 3081, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 2917, + "id": 3071, "nodeType": "ParameterList", "parameters": [], - "src": "2898:0:24" + "src": "2898:0:25" }, - "src": "2879:75:24", + "src": "2879:75:25", "visibility": "internal" }, { "body": { - "id": 2938, + "id": 3092, "nodeType": "Block", - "src": "3023:37:24", + "src": "3023:37:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 2936, + "id": 3090, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2934, + "id": 3088, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "3033:8:24", + "referencedDeclaration": 3055, + "src": "3033:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2962,68 +2962,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2935, + "id": 3089, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "3044:9:24", + "referencedDeclaration": 3083, + "src": "3044:9:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3033:20:24", + "src": "3033:20:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2937, + "id": 3091, "nodeType": "ExpressionStatement", - "src": "3033:20:24" + "src": "3033:20:25" } ] }, "documentation": null, - "id": 2939, + "id": 3093, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2932, + "id": 3086, "modifierName": { "argumentTypes": null, - "id": 2931, + "id": 3085, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "3013:9:24", + "referencedDeclaration": 3081, + "src": "3013:9:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3013:9:24" + "src": "3013:9:25" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 2930, + "id": 3084, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2929, + "id": 3083, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 2939, - "src": "2987:17:24", + "scope": 3093, + "src": "2987:17:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3031,10 +3031,10 @@ "typeString": "address" }, "typeName": { - "id": 2928, + "id": 3082, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2987:7:24", + "src": "2987:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3044,26 +3044,26 @@ "visibility": "internal" } ], - "src": "2986:19:24" + "src": "2986:19:25" }, "payable": false, "returnParameters": { - "id": 2933, + "id": 3087, "nodeType": "ParameterList", "parameters": [], - "src": "3023:0:24" + "src": "3023:0:25" }, - "scope": 2966, - "src": "2960:100:24", + "scope": 3120, + "src": "2960:100:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2964, + "id": 3118, "nodeType": "Block", - "src": "3099:157:24", + "src": "3099:157:25", "statements": [ { "expression": { @@ -3075,7 +3075,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2946, + "id": 3100, "isConstant": false, "isLValue": false, "isPure": false, @@ -3084,18 +3084,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2943, + "id": 3097, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "3117:3:24", + "referencedDeclaration": 4491, + "src": "3117:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2944, + "id": 3098, "isConstant": false, "isLValue": false, "isPure": false, @@ -3103,7 +3103,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3117:10:24", + "src": "3117:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3113,18 +3113,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2945, + "id": 3099, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "3131:8:24", + "referencedDeclaration": 3055, + "src": "3131:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3117:22:24", + "src": "3117:22:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3138,21 +3138,21 @@ "typeString": "bool" } ], - "id": 2942, + "id": 3096, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "3109:7:24", + "referencedDeclaration": 4494, + "src": "3109:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2947, + "id": 3101, "isConstant": false, "isLValue": false, "isPure": false, @@ -3160,15 +3160,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3109:31:24", + "src": "3109:31:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2948, + "id": 3102, "nodeType": "ExpressionStatement", - "src": "3109:31:24" + "src": "3109:31:25" }, { "eventCall": { @@ -3176,12 +3176,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2950, + "id": 3104, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2899, - "src": "3176:5:24", + "referencedDeclaration": 3053, + "src": "3176:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3189,12 +3189,12 @@ }, { "argumentTypes": null, - "id": 2951, + "id": 3105, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "3183:8:24", + "referencedDeclaration": 3055, + "src": "3183:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3212,18 +3212,18 @@ "typeString": "address" } ], - "id": 2949, + "id": 3103, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2907, - "src": "3155:20:24", + "referencedDeclaration": 3061, + "src": "3155:20:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 2952, + "id": 3106, "isConstant": false, "isLValue": false, "isPure": false, @@ -3231,32 +3231,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3155:37:24", + "src": "3155:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2953, + "id": 3107, "nodeType": "EmitStatement", - "src": "3150:42:24" + "src": "3150:42:25" }, { "expression": { "argumentTypes": null, - "id": 2956, + "id": 3110, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2954, + "id": 3108, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2899, - "src": "3202:5:24", + "referencedDeclaration": 3053, + "src": "3202:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3266,43 +3266,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2955, + "id": 3109, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "3210:8:24", + "referencedDeclaration": 3055, + "src": "3210:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3202:16:24", + "src": "3202:16:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2957, + "id": 3111, "nodeType": "ExpressionStatement", - "src": "3202:16:24" + "src": "3202:16:25" }, { "expression": { "argumentTypes": null, - "id": 2962, + "id": 3116, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2958, + "id": 3112, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "3228:8:24", + "referencedDeclaration": 3055, + "src": "3228:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3316,14 +3316,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2960, + "id": 3114, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3247:1:24", + "src": "3247:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3339,20 +3339,20 @@ "typeString": "int_const 0" } ], - "id": 2959, + "id": 3113, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:24", + "src": "3239:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2961, + "id": 3115, "isConstant": false, "isLValue": false, "isPure": true, @@ -3360,26 +3360,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3239:10:24", + "src": "3239:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3228:21:24", + "src": "3228:21:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2963, + "id": 3117, "nodeType": "ExpressionStatement", - "src": "3228:21:24" + "src": "3228:21:25" } ] }, "documentation": null, - "id": 2965, + "id": 3119, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3387,27 +3387,27 @@ "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 2940, + "id": 3094, "nodeType": "ParameterList", "parameters": [], - "src": "3089:2:24" + "src": "3089:2:25" }, "payable": false, "returnParameters": { - "id": 2941, + "id": 3095, "nodeType": "ParameterList", "parameters": [], - "src": "3099:0:24" + "src": "3099:0:25" }, - "scope": 2966, - "src": "3065:191:24", + "scope": 3120, + "src": "3065:191:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3262, - "src": "2663:595:24" + "scope": 3416, + "src": "2663:595:25" }, { "baseContracts": [ @@ -3415,76 +3415,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2967, + "id": 3121, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2885, - "src": "3529:14:24", + "referencedDeclaration": 3039, + "src": "3529:14:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$2885", + "typeIdentifier": "t_contract$_ERC20Interface_$3039", "typeString": "contract ERC20Interface" } }, - "id": 2968, + "id": 3122, "nodeType": "InheritanceSpecifier", - "src": "3529:14:24" + "src": "3529:14:25" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2969, + "id": 3123, "name": "Owned", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2966, - "src": "3545:5:24", + "referencedDeclaration": 3120, + "src": "3545:5:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$2966", + "typeIdentifier": "t_contract$_Owned_$3120", "typeString": "contract Owned" } }, - "id": 2970, + "id": 3124, "nodeType": "InheritanceSpecifier", - "src": "3545:5:24" + "src": "3545:5:25" } ], "contractDependencies": [ - 2885, - 2966 + 3039, + 3120 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3261, + "id": 3415, "linearizedBaseContracts": [ - 3261, - 2966, - 2885 + 3415, + 3120, + 3039 ], "name": "EmptyToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 2973, + "id": 3127, "libraryName": { "contractScope": null, - "id": 2971, + "id": 3125, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2818, - "src": "3563:8:24", + "referencedDeclaration": 2972, + "src": "3563:8:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2818", + "typeIdentifier": "t_contract$_SafeMath_$2972", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3557:24:24", + "src": "3557:24:25", "typeName": { - "id": 2972, + "id": 3126, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3576:4:24", + "src": "3576:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3493,11 +3493,11 @@ }, { "constant": false, - "id": 2975, + "id": 3129, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 3261, - "src": "3587:21:24", + "scope": 3415, + "src": "3587:21:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3505,10 +3505,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2974, + "id": 3128, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3587:5:24", + "src": "3587:5:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3519,11 +3519,11 @@ }, { "constant": false, - "id": 2977, + "id": 3131, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 3261, - "src": "3614:17:24", + "scope": 3415, + "src": "3614:17:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3531,10 +3531,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2976, + "id": 3130, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3614:4:24", + "src": "3614:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3545,11 +3545,11 @@ }, { "constant": false, - "id": 2981, + "id": 3135, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 3261, - "src": "3638:33:24", + "scope": 3415, + "src": "3638:33:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3557,28 +3557,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 2980, + "id": 3134, "keyType": { - "id": 2978, + "id": 3132, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3646:7:24", + "src": "3646:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3638:24:24", + "src": "3638:24:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 2979, + "id": 3133, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3657:4:24", + "src": "3657:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3590,11 +3590,11 @@ }, { "constant": false, - "id": 2987, + "id": 3141, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 3261, - "src": "3677:52:24", + "scope": 3415, + "src": "3677:52:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3602,46 +3602,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 2986, + "id": 3140, "keyType": { - "id": 2982, + "id": 3136, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3685:7:24", + "src": "3685:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3677:44:24", + "src": "3677:44:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 2985, + "id": 3139, "keyType": { - "id": 2983, + "id": 3137, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3704:7:24", + "src": "3704:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3696:24:24", + "src": "3696:24:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 2984, + "id": 3138, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3715:4:24", + "src": "3715:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3654,26 +3654,26 @@ }, { "body": { - "id": 3018, + "id": 3172, "nodeType": "Block", - "src": "3937:179:24", + "src": "3937:179:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 2992, + "id": 3146, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2990, + "id": 3144, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2975, - "src": "3947:8:24", + "referencedDeclaration": 3129, + "src": "3947:8:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3684,14 +3684,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3138", - "id": 2991, + "id": 3145, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3958:2:24", + "src": "3958:2:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -3699,32 +3699,32 @@ }, "value": "18" }, - "src": "3947:13:24", + "src": "3947:13:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 2993, + "id": 3147, "nodeType": "ExpressionStatement", - "src": "3947:13:24" + "src": "3947:13:25" }, { "expression": { "argumentTypes": null, - "id": 3002, + "id": 3156, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2994, + "id": 3148, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2977, - "src": "3970:12:24", + "referencedDeclaration": 3131, + "src": "3970:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3738,7 +3738,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3001, + "id": 3155, "isConstant": false, "isLValue": false, "isPure": false, @@ -3746,14 +3746,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 2995, + "id": 3149, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3985:7:24", + "src": "3985:7:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -3769,7 +3769,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3000, + "id": 3154, "isConstant": false, "isLValue": false, "isPure": false, @@ -3777,14 +3777,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 2996, + "id": 3150, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3995:2:24", + "src": "3995:2:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -3799,12 +3799,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2998, + "id": 3152, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2975, - "src": "4004:8:24", + "referencedDeclaration": 3129, + "src": "4004:8:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3818,20 +3818,20 @@ "typeString": "uint8" } ], - "id": 2997, + "id": 3151, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3999:4:24", + "src": "3999:4:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 2999, + "id": 3153, "isConstant": false, "isLValue": false, "isPure": false, @@ -3839,38 +3839,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3999:14:24", + "src": "3999:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3995:18:24", + "src": "3995:18:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3985:28:24", + "src": "3985:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3970:43:24", + "src": "3970:43:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3003, + "id": 3157, "nodeType": "ExpressionStatement", - "src": "3970:43:24" + "src": "3970:43:25" }, { "expression": { "argumentTypes": null, - "id": 3008, + "id": 3162, "isConstant": false, "isLValue": false, "isPure": false, @@ -3879,26 +3879,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3004, + "id": 3158, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "4023:8:24", + "referencedDeclaration": 3135, + "src": "4023:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3006, + "id": 3160, "indexExpression": { "argumentTypes": null, - "id": 3005, + "id": 3159, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2899, - "src": "4032:5:24", + "referencedDeclaration": 3053, + "src": "4032:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3909,7 +3909,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4023:15:24", + "src": "4023:15:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3919,26 +3919,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3007, + "id": 3161, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2977, - "src": "4041:12:24", + "referencedDeclaration": 3131, + "src": "4041:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4023:30:24", + "src": "4023:30:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3009, + "id": 3163, "nodeType": "ExpressionStatement", - "src": "4023:30:24" + "src": "4023:30:25" }, { "eventCall": { @@ -3950,14 +3950,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3012, + "id": 3166, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4085:1:24", + "src": "4085:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3973,20 +3973,20 @@ "typeString": "int_const 0" } ], - "id": 3011, + "id": 3165, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4077:7:24", + "src": "4077:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3013, + "id": 3167, "isConstant": false, "isLValue": false, "isPure": true, @@ -3994,7 +3994,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4077:10:24", + "src": "4077:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4002,12 +4002,12 @@ }, { "argumentTypes": null, - "id": 3014, + "id": 3168, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2899, - "src": "4089:5:24", + "referencedDeclaration": 3053, + "src": "4089:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4015,12 +4015,12 @@ }, { "argumentTypes": null, - "id": 3015, + "id": 3169, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2977, - "src": "4096:12:24", + "referencedDeclaration": 3131, + "src": "4096:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4042,18 +4042,18 @@ "typeString": "uint256" } ], - "id": 3010, + "id": 3164, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2876, - "src": "4068:8:24", + "referencedDeclaration": 3030, + "src": "4068:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3016, + "id": 3170, "isConstant": false, "isLValue": false, "isPure": false, @@ -4061,20 +4061,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4068:41:24", + "src": "4068:41:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3017, + "id": 3171, "nodeType": "EmitStatement", - "src": "4063:46:24" + "src": "4063:46:25" } ] }, "documentation": null, - "id": 3019, + "id": 3173, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -4082,29 +4082,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2988, + "id": 3142, "nodeType": "ParameterList", "parameters": [], - "src": "3927:2:24" + "src": "3927:2:25" }, "payable": false, "returnParameters": { - "id": 2989, + "id": 3143, "nodeType": "ParameterList", "parameters": [], - "src": "3937:0:24" + "src": "3937:0:25" }, - "scope": 3261, - "src": "3916:200:24", + "scope": 3415, + "src": "3916:200:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3033, + "id": 3187, "nodeType": "Block", - "src": "4353:62:24", + "src": "4353:62:25", "statements": [ { "expression": { @@ -4114,32 +4114,32 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3026, + "id": 3180, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "4387:8:24", + "referencedDeclaration": 3135, + "src": "4387:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3030, + "id": 3184, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 3028, + "id": 3182, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4404:1:24", + "src": "4404:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4155,20 +4155,20 @@ "typeString": "int_const 0" } ], - "id": 3027, + "id": 3181, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4396:7:24", + "src": "4396:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3029, + "id": 3183, "isConstant": false, "isLValue": false, "isPure": true, @@ -4176,7 +4176,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4396:10:24", + "src": "4396:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4187,7 +4187,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4387:20:24", + "src": "4387:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4203,32 +4203,32 @@ ], "expression": { "argumentTypes": null, - "id": 3024, + "id": 3178, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2977, - "src": "4370:12:24", + "referencedDeclaration": 3131, + "src": "4370:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3025, + "id": 3179, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2767, - "src": "4370:16:24", + "referencedDeclaration": 2921, + "src": "4370:16:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3031, + "id": 3185, "isConstant": false, "isLValue": false, "isPure": false, @@ -4236,21 +4236,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4370:38:24", + "src": "4370:38:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3023, - "id": 3032, + "functionReturnParameters": 3177, + "id": 3186, "nodeType": "Return", - "src": "4363:45:24" + "src": "4363:45:25" } ] }, "documentation": null, - "id": 3034, + "id": 3188, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4258,23 +4258,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3020, + "id": 3174, "nodeType": "ParameterList", "parameters": [], - "src": "4323:2:24" + "src": "4323:2:25" }, "payable": false, "returnParameters": { - "id": 3023, + "id": 3177, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3022, + "id": 3176, "name": "", "nodeType": "VariableDeclaration", - "scope": 3034, - "src": "4347:4:24", + "scope": 3188, + "src": "4347:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4282,10 +4282,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3021, + "id": 3175, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4347:4:24", + "src": "4347:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4295,45 +4295,45 @@ "visibility": "internal" } ], - "src": "4346:6:24" + "src": "4346:6:25" }, - "scope": 3261, - "src": "4303:112:24", + "scope": 3415, + "src": "4303:112:25", "stateMutability": "view", - "superFunction": 2823, + "superFunction": 2977, "visibility": "public" }, { "body": { - "id": 3045, + "id": 3199, "nodeType": "Block", - "src": "4710:44:24", + "src": "4710:44:25", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3041, + "id": 3195, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "4727:8:24", + "referencedDeclaration": 3135, + "src": "4727:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3043, + "id": 3197, "indexExpression": { "argumentTypes": null, - "id": 3042, + "id": 3196, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3036, - "src": "4736:10:24", + "referencedDeclaration": 3190, + "src": "4736:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4344,21 +4344,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4727:20:24", + "src": "4727:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3040, - "id": 3044, + "functionReturnParameters": 3194, + "id": 3198, "nodeType": "Return", - "src": "4720:27:24" + "src": "4720:27:25" } ] }, "documentation": null, - "id": 3046, + "id": 3200, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4366,16 +4366,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3037, + "id": 3191, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3036, + "id": 3190, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3046, - "src": "4655:18:24", + "scope": 3200, + "src": "4655:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4383,10 +4383,10 @@ "typeString": "address" }, "typeName": { - "id": 3035, + "id": 3189, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4655:7:24", + "src": "4655:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4396,20 +4396,20 @@ "visibility": "internal" } ], - "src": "4654:20:24" + "src": "4654:20:25" }, "payable": false, "returnParameters": { - "id": 3040, + "id": 3194, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3039, + "id": 3193, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3046, - "src": "4696:12:24", + "scope": 3200, + "src": "4696:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4417,10 +4417,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3038, + "id": 3192, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4696:4:24", + "src": "4696:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4430,24 +4430,24 @@ "visibility": "internal" } ], - "src": "4695:14:24" + "src": "4695:14:25" }, - "scope": 3261, - "src": "4636:118:24", + "scope": 3415, + "src": "4636:118:25", "stateMutability": "view", - "superFunction": 2830, + "superFunction": 2984, "visibility": "public" }, { "body": { - "id": 3088, + "id": 3242, "nodeType": "Block", - "src": "5170:189:24", + "src": "5170:189:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 3066, + "id": 3220, "isConstant": false, "isLValue": false, "isPure": false, @@ -4456,34 +4456,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3055, + "id": 3209, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "5180:8:24", + "referencedDeclaration": 3135, + "src": "5180:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3058, + "id": 3212, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3056, + "id": 3210, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5189:3:24", + "referencedDeclaration": 4491, + "src": "5189:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3057, + "id": 3211, "isConstant": false, "isLValue": false, "isPure": false, @@ -4491,7 +4491,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5189:10:24", + "src": "5189:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4502,7 +4502,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5180:20:24", + "src": "5180:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4515,12 +4515,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3064, + "id": 3218, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3050, - "src": "5228:6:24", + "referencedDeclaration": 3204, + "src": "5228:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4538,34 +4538,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3059, + "id": 3213, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "5203:8:24", + "referencedDeclaration": 3135, + "src": "5203:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3062, + "id": 3216, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3060, + "id": 3214, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5212:3:24", + "referencedDeclaration": 4491, + "src": "5212:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3061, + "id": 3215, "isConstant": false, "isLValue": false, "isPure": false, @@ -4573,7 +4573,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5212:10:24", + "src": "5212:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4584,27 +4584,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5203:20:24", + "src": "5203:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3063, + "id": 3217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2767, - "src": "5203:24:24", + "referencedDeclaration": 2921, + "src": "5203:24:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3065, + "id": 3219, "isConstant": false, "isLValue": false, "isPure": false, @@ -4612,26 +4612,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5203:32:24", + "src": "5203:32:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5180:55:24", + "src": "5180:55:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3067, + "id": 3221, "nodeType": "ExpressionStatement", - "src": "5180:55:24" + "src": "5180:55:25" }, { "expression": { "argumentTypes": null, - "id": 3077, + "id": 3231, "isConstant": false, "isLValue": false, "isPure": false, @@ -4640,26 +4640,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3068, + "id": 3222, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "5245:8:24", + "referencedDeclaration": 3135, + "src": "5245:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3070, + "id": 3224, "indexExpression": { "argumentTypes": null, - "id": 3069, + "id": 3223, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3048, - "src": "5254:2:24", + "referencedDeclaration": 3202, + "src": "5254:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4670,7 +4670,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5245:12:24", + "src": "5245:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4683,12 +4683,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3075, + "id": 3229, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3050, - "src": "5277:6:24", + "referencedDeclaration": 3204, + "src": "5277:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4706,26 +4706,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3071, + "id": 3225, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "5260:8:24", + "referencedDeclaration": 3135, + "src": "5260:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3073, + "id": 3227, "indexExpression": { "argumentTypes": null, - "id": 3072, + "id": 3226, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3048, - "src": "5269:2:24", + "referencedDeclaration": 3202, + "src": "5269:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4736,27 +4736,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5260:12:24", + "src": "5260:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3074, + "id": 3228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2745, - "src": "5260:16:24", + "referencedDeclaration": 2899, + "src": "5260:16:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3076, + "id": 3230, "isConstant": false, "isLValue": false, "isPure": false, @@ -4764,21 +4764,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5260:24:24", + "src": "5260:24:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5245:39:24", + "src": "5245:39:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3078, + "id": 3232, "nodeType": "ExpressionStatement", - "src": "5245:39:24" + "src": "5245:39:25" }, { "eventCall": { @@ -4788,18 +4788,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3080, + "id": 3234, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5308:3:24", + "referencedDeclaration": 4491, + "src": "5308:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3081, + "id": 3235, "isConstant": false, "isLValue": false, "isPure": false, @@ -4807,7 +4807,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5308:10:24", + "src": "5308:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4815,12 +4815,12 @@ }, { "argumentTypes": null, - "id": 3082, + "id": 3236, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3048, - "src": "5320:2:24", + "referencedDeclaration": 3202, + "src": "5320:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4828,12 +4828,12 @@ }, { "argumentTypes": null, - "id": 3083, + "id": 3237, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3050, - "src": "5324:6:24", + "referencedDeclaration": 3204, + "src": "5324:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4855,18 +4855,18 @@ "typeString": "uint256" } ], - "id": 3079, + "id": 3233, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2876, - "src": "5299:8:24", + "referencedDeclaration": 3030, + "src": "5299:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3084, + "id": 3238, "isConstant": false, "isLValue": false, "isPure": false, @@ -4874,28 +4874,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5299:32:24", + "src": "5299:32:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3085, + "id": 3239, "nodeType": "EmitStatement", - "src": "5294:37:24" + "src": "5294:37:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3086, + "id": 3240, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5348:4:24", + "src": "5348:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4903,15 +4903,15 @@ }, "value": "true" }, - "functionReturnParameters": 3054, - "id": 3087, + "functionReturnParameters": 3208, + "id": 3241, "nodeType": "Return", - "src": "5341:11:24" + "src": "5341:11:25" } ] }, "documentation": null, - "id": 3089, + "id": 3243, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4919,16 +4919,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3051, + "id": 3205, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3048, + "id": 3202, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3089, - "src": "5115:10:24", + "scope": 3243, + "src": "5115:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4936,10 +4936,10 @@ "typeString": "address" }, "typeName": { - "id": 3047, + "id": 3201, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5115:7:24", + "src": "5115:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4950,11 +4950,11 @@ }, { "constant": false, - "id": 3050, + "id": 3204, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3089, - "src": "5127:11:24", + "scope": 3243, + "src": "5127:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4962,10 +4962,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3049, + "id": 3203, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5127:4:24", + "src": "5127:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4975,20 +4975,20 @@ "visibility": "internal" } ], - "src": "5114:25:24" + "src": "5114:25:25" }, "payable": false, "returnParameters": { - "id": 3054, + "id": 3208, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3053, + "id": 3207, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3089, - "src": "5156:12:24", + "scope": 3243, + "src": "5156:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4996,10 +4996,10 @@ "typeString": "bool" }, "typeName": { - "id": 3052, + "id": 3206, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5156:4:24", + "src": "5156:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5009,24 +5009,24 @@ "visibility": "internal" } ], - "src": "5155:14:24" + "src": "5155:14:25" }, - "scope": 3261, - "src": "5097:262:24", + "scope": 3415, + "src": "5097:262:25", "stateMutability": "nonpayable", - "superFunction": 2848, + "superFunction": 3002, "visibility": "public" }, { "body": { - "id": 3116, + "id": 3270, "nodeType": "Block", - "src": "5942:127:24", + "src": "5942:127:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 3105, + "id": 3259, "isConstant": false, "isLValue": false, "isPure": false, @@ -5037,34 +5037,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3098, + "id": 3252, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2987, - "src": "5952:7:24", + "referencedDeclaration": 3141, + "src": "5952:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3102, + "id": 3256, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3099, + "id": 3253, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5960:3:24", + "referencedDeclaration": 4491, + "src": "5960:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3100, + "id": 3254, "isConstant": false, "isLValue": false, "isPure": false, @@ -5072,7 +5072,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5960:10:24", + "src": "5960:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5083,21 +5083,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5952:19:24", + "src": "5952:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3103, + "id": 3257, "indexExpression": { "argumentTypes": null, - "id": 3101, + "id": 3255, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "5972:7:24", + "referencedDeclaration": 3245, + "src": "5972:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5108,7 +5108,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5952:28:24", + "src": "5952:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5118,26 +5118,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3104, + "id": 3258, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3093, - "src": "5983:6:24", + "referencedDeclaration": 3247, + "src": "5983:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5952:37:24", + "src": "5952:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3106, + "id": 3260, "nodeType": "ExpressionStatement", - "src": "5952:37:24" + "src": "5952:37:25" }, { "eventCall": { @@ -5147,18 +5147,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3108, + "id": 3262, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6013:3:24", + "referencedDeclaration": 4491, + "src": "6013:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3109, + "id": 3263, "isConstant": false, "isLValue": false, "isPure": false, @@ -5166,7 +5166,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6013:10:24", + "src": "6013:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5174,12 +5174,12 @@ }, { "argumentTypes": null, - "id": 3110, + "id": 3264, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "6025:7:24", + "referencedDeclaration": 3245, + "src": "6025:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5187,12 +5187,12 @@ }, { "argumentTypes": null, - "id": 3111, + "id": 3265, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3093, - "src": "6034:6:24", + "referencedDeclaration": 3247, + "src": "6034:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5214,18 +5214,18 @@ "typeString": "uint256" } ], - "id": 3107, + "id": 3261, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2884, - "src": "6004:8:24", + "referencedDeclaration": 3038, + "src": "6004:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3112, + "id": 3266, "isConstant": false, "isLValue": false, "isPure": false, @@ -5233,28 +5233,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6004:37:24", + "src": "6004:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3113, + "id": 3267, "nodeType": "EmitStatement", - "src": "5999:42:24" + "src": "5999:42:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3114, + "id": 3268, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6058:4:24", + "src": "6058:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5262,15 +5262,15 @@ }, "value": "true" }, - "functionReturnParameters": 3097, - "id": 3115, + "functionReturnParameters": 3251, + "id": 3269, "nodeType": "Return", - "src": "6051:11:24" + "src": "6051:11:25" } ] }, "documentation": null, - "id": 3117, + "id": 3271, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5278,16 +5278,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3094, + "id": 3248, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3091, + "id": 3245, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3117, - "src": "5882:15:24", + "scope": 3271, + "src": "5882:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5295,10 +5295,10 @@ "typeString": "address" }, "typeName": { - "id": 3090, + "id": 3244, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5882:7:24", + "src": "5882:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5309,11 +5309,11 @@ }, { "constant": false, - "id": 3093, + "id": 3247, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3117, - "src": "5899:11:24", + "scope": 3271, + "src": "5899:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5321,10 +5321,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3092, + "id": 3246, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5899:4:24", + "src": "5899:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5334,20 +5334,20 @@ "visibility": "internal" } ], - "src": "5881:30:24" + "src": "5881:30:25" }, "payable": false, "returnParameters": { - "id": 3097, + "id": 3251, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3096, + "id": 3250, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3117, - "src": "5928:12:24", + "scope": 3271, + "src": "5928:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5355,10 +5355,10 @@ "typeString": "bool" }, "typeName": { - "id": 3095, + "id": 3249, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5928:4:24", + "src": "5928:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5368,24 +5368,24 @@ "visibility": "internal" } ], - "src": "5927:14:24" + "src": "5927:14:25" }, - "scope": 3261, - "src": "5865:204:24", + "scope": 3415, + "src": "5865:204:25", "stateMutability": "nonpayable", - "superFunction": 2857, + "superFunction": 3011, "visibility": "public" }, { "body": { - "id": 3175, + "id": 3329, "nodeType": "Block", - "src": "6692:246:24", + "src": "6692:246:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 3137, + "id": 3291, "isConstant": false, "isLValue": false, "isPure": false, @@ -5394,26 +5394,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3128, + "id": 3282, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "6702:8:24", + "referencedDeclaration": 3135, + "src": "6702:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3130, + "id": 3284, "indexExpression": { "argumentTypes": null, - "id": 3129, + "id": 3283, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3119, - "src": "6711:4:24", + "referencedDeclaration": 3273, + "src": "6711:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5424,7 +5424,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6702:14:24", + "src": "6702:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5437,12 +5437,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3135, + "id": 3289, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3123, - "src": "6738:6:24", + "referencedDeclaration": 3277, + "src": "6738:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5460,26 +5460,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3131, + "id": 3285, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "6719:8:24", + "referencedDeclaration": 3135, + "src": "6719:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3133, + "id": 3287, "indexExpression": { "argumentTypes": null, - "id": 3132, + "id": 3286, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3119, - "src": "6728:4:24", + "referencedDeclaration": 3273, + "src": "6728:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5490,27 +5490,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6719:14:24", + "src": "6719:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3134, + "id": 3288, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2767, - "src": "6719:18:24", + "referencedDeclaration": 2921, + "src": "6719:18:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3136, + "id": 3290, "isConstant": false, "isLValue": false, "isPure": false, @@ -5518,26 +5518,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6719:26:24", + "src": "6719:26:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6702:43:24", + "src": "6702:43:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3138, + "id": 3292, "nodeType": "ExpressionStatement", - "src": "6702:43:24" + "src": "6702:43:25" }, { "expression": { "argumentTypes": null, - "id": 3154, + "id": 3308, "isConstant": false, "isLValue": false, "isPure": false, @@ -5548,26 +5548,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3139, + "id": 3293, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2987, - "src": "6755:7:24", + "referencedDeclaration": 3141, + "src": "6755:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3143, + "id": 3297, "indexExpression": { "argumentTypes": null, - "id": 3140, + "id": 3294, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3119, - "src": "6763:4:24", + "referencedDeclaration": 3273, + "src": "6763:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5578,29 +5578,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6755:13:24", + "src": "6755:13:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3144, + "id": 3298, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3141, + "id": 3295, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6769:3:24", + "referencedDeclaration": 4491, + "src": "6769:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3142, + "id": 3296, "isConstant": false, "isLValue": false, "isPure": false, @@ -5608,7 +5608,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6769:10:24", + "src": "6769:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5619,7 +5619,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6755:25:24", + "src": "6755:25:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5632,12 +5632,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3152, + "id": 3306, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3123, - "src": "6813:6:24", + "referencedDeclaration": 3277, + "src": "6813:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5657,26 +5657,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3145, + "id": 3299, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2987, - "src": "6783:7:24", + "referencedDeclaration": 3141, + "src": "6783:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3147, + "id": 3301, "indexExpression": { "argumentTypes": null, - "id": 3146, + "id": 3300, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3119, - "src": "6791:4:24", + "referencedDeclaration": 3273, + "src": "6791:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5687,29 +5687,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6783:13:24", + "src": "6783:13:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3150, + "id": 3304, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3148, + "id": 3302, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6797:3:24", + "referencedDeclaration": 4491, + "src": "6797:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3149, + "id": 3303, "isConstant": false, "isLValue": false, "isPure": false, @@ -5717,7 +5717,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6797:10:24", + "src": "6797:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5728,27 +5728,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6783:25:24", + "src": "6783:25:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3151, + "id": 3305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2767, - "src": "6783:29:24", + "referencedDeclaration": 2921, + "src": "6783:29:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3153, + "id": 3307, "isConstant": false, "isLValue": false, "isPure": false, @@ -5756,26 +5756,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6783:37:24", + "src": "6783:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6755:65:24", + "src": "6755:65:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3155, + "id": 3309, "nodeType": "ExpressionStatement", - "src": "6755:65:24" + "src": "6755:65:25" }, { "expression": { "argumentTypes": null, - "id": 3165, + "id": 3319, "isConstant": false, "isLValue": false, "isPure": false, @@ -5784,26 +5784,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3156, + "id": 3310, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "6830:8:24", + "referencedDeclaration": 3135, + "src": "6830:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3158, + "id": 3312, "indexExpression": { "argumentTypes": null, - "id": 3157, + "id": 3311, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "6839:2:24", + "referencedDeclaration": 3275, + "src": "6839:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5814,7 +5814,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6830:12:24", + "src": "6830:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5827,12 +5827,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3163, + "id": 3317, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3123, - "src": "6862:6:24", + "referencedDeclaration": 3277, + "src": "6862:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5850,26 +5850,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3159, + "id": 3313, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "6845:8:24", + "referencedDeclaration": 3135, + "src": "6845:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3161, + "id": 3315, "indexExpression": { "argumentTypes": null, - "id": 3160, + "id": 3314, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "6854:2:24", + "referencedDeclaration": 3275, + "src": "6854:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5880,27 +5880,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6845:12:24", + "src": "6845:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3162, + "id": 3316, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2745, - "src": "6845:16:24", + "referencedDeclaration": 2899, + "src": "6845:16:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3164, + "id": 3318, "isConstant": false, "isLValue": false, "isPure": false, @@ -5908,21 +5908,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6845:24:24", + "src": "6845:24:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6830:39:24", + "src": "6830:39:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3166, + "id": 3320, "nodeType": "ExpressionStatement", - "src": "6830:39:24" + "src": "6830:39:25" }, { "eventCall": { @@ -5930,12 +5930,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3168, + "id": 3322, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3119, - "src": "6893:4:24", + "referencedDeclaration": 3273, + "src": "6893:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5943,12 +5943,12 @@ }, { "argumentTypes": null, - "id": 3169, + "id": 3323, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "6899:2:24", + "referencedDeclaration": 3275, + "src": "6899:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5956,12 +5956,12 @@ }, { "argumentTypes": null, - "id": 3170, + "id": 3324, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3123, - "src": "6903:6:24", + "referencedDeclaration": 3277, + "src": "6903:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5983,18 +5983,18 @@ "typeString": "uint256" } ], - "id": 3167, + "id": 3321, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2876, - "src": "6884:8:24", + "referencedDeclaration": 3030, + "src": "6884:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3171, + "id": 3325, "isConstant": false, "isLValue": false, "isPure": false, @@ -6002,28 +6002,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6884:26:24", + "src": "6884:26:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3172, + "id": 3326, "nodeType": "EmitStatement", - "src": "6879:31:24" + "src": "6879:31:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3173, + "id": 3327, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6927:4:24", + "src": "6927:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6031,15 +6031,15 @@ }, "value": "true" }, - "functionReturnParameters": 3127, - "id": 3174, + "functionReturnParameters": 3281, + "id": 3328, "nodeType": "Return", - "src": "6920:11:24" + "src": "6920:11:25" } ] }, "documentation": null, - "id": 3176, + "id": 3330, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6047,16 +6047,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3124, + "id": 3278, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3119, + "id": 3273, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3176, - "src": "6623:12:24", + "scope": 3330, + "src": "6623:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6064,10 +6064,10 @@ "typeString": "address" }, "typeName": { - "id": 3118, + "id": 3272, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6623:7:24", + "src": "6623:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6078,11 +6078,11 @@ }, { "constant": false, - "id": 3121, + "id": 3275, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3176, - "src": "6637:10:24", + "scope": 3330, + "src": "6637:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6090,10 +6090,10 @@ "typeString": "address" }, "typeName": { - "id": 3120, + "id": 3274, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6637:7:24", + "src": "6637:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6104,11 +6104,11 @@ }, { "constant": false, - "id": 3123, + "id": 3277, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3176, - "src": "6649:11:24", + "scope": 3330, + "src": "6649:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6116,10 +6116,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3122, + "id": 3276, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6649:4:24", + "src": "6649:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6129,20 +6129,20 @@ "visibility": "internal" } ], - "src": "6622:39:24" + "src": "6622:39:25" }, "payable": false, "returnParameters": { - "id": 3127, + "id": 3281, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3126, + "id": 3280, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3176, - "src": "6678:12:24", + "scope": 3330, + "src": "6678:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6150,10 +6150,10 @@ "typeString": "bool" }, "typeName": { - "id": 3125, + "id": 3279, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6678:4:24", + "src": "6678:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6163,19 +6163,19 @@ "visibility": "internal" } ], - "src": "6677:14:24" + "src": "6677:14:25" }, - "scope": 3261, - "src": "6601:337:24", + "scope": 3415, + "src": "6601:337:25", "stateMutability": "nonpayable", - "superFunction": 2868, + "superFunction": 3022, "visibility": "public" }, { "body": { - "id": 3191, + "id": 3345, "nodeType": "Block", - "src": "7312:52:24", + "src": "7312:52:25", "statements": [ { "expression": { @@ -6184,26 +6184,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3185, + "id": 3339, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2987, - "src": "7329:7:24", + "referencedDeclaration": 3141, + "src": "7329:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3187, + "id": 3341, "indexExpression": { "argumentTypes": null, - "id": 3186, + "id": 3340, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3178, - "src": "7337:10:24", + "referencedDeclaration": 3332, + "src": "7337:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6214,21 +6214,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7329:19:24", + "src": "7329:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3189, + "id": 3343, "indexExpression": { "argumentTypes": null, - "id": 3188, + "id": 3342, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3180, - "src": "7349:7:24", + "referencedDeclaration": 3334, + "src": "7349:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6239,21 +6239,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7329:28:24", + "src": "7329:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3184, - "id": 3190, + "functionReturnParameters": 3338, + "id": 3344, "nodeType": "Return", - "src": "7322:35:24" + "src": "7322:35:25" } ] }, "documentation": null, - "id": 3192, + "id": 3346, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6261,16 +6261,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3181, + "id": 3335, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3178, + "id": 3332, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3192, - "src": "7238:18:24", + "scope": 3346, + "src": "7238:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6278,10 +6278,10 @@ "typeString": "address" }, "typeName": { - "id": 3177, + "id": 3331, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7238:7:24", + "src": "7238:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6292,11 +6292,11 @@ }, { "constant": false, - "id": 3180, + "id": 3334, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3192, - "src": "7258:15:24", + "scope": 3346, + "src": "7258:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6304,10 +6304,10 @@ "typeString": "address" }, "typeName": { - "id": 3179, + "id": 3333, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7258:7:24", + "src": "7258:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6317,20 +6317,20 @@ "visibility": "internal" } ], - "src": "7237:37:24" + "src": "7237:37:25" }, "payable": false, "returnParameters": { - "id": 3184, + "id": 3338, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3183, + "id": 3337, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3192, - "src": "7296:14:24", + "scope": 3346, + "src": "7296:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6338,10 +6338,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3182, + "id": 3336, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7296:4:24", + "src": "7296:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6351,24 +6351,24 @@ "visibility": "internal" } ], - "src": "7295:16:24" + "src": "7295:16:25" }, - "scope": 3261, - "src": "7219:145:24", + "scope": 3415, + "src": "7219:145:25", "stateMutability": "view", - "superFunction": 2839, + "superFunction": 2993, "visibility": "public" }, { "body": { - "id": 3232, + "id": 3386, "nodeType": "Block", - "src": "7820:216:24", + "src": "7820:216:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 3210, + "id": 3364, "isConstant": false, "isLValue": false, "isPure": false, @@ -6379,34 +6379,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3203, + "id": 3357, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2987, - "src": "7830:7:24", + "referencedDeclaration": 3141, + "src": "7830:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3207, + "id": 3361, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3204, + "id": 3358, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7838:3:24", + "referencedDeclaration": 4491, + "src": "7838:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3205, + "id": 3359, "isConstant": false, "isLValue": false, "isPure": false, @@ -6414,7 +6414,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7838:10:24", + "src": "7838:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6425,21 +6425,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7830:19:24", + "src": "7830:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3208, + "id": 3362, "indexExpression": { "argumentTypes": null, - "id": 3206, + "id": 3360, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3194, - "src": "7850:7:24", + "referencedDeclaration": 3348, + "src": "7850:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6450,7 +6450,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7830:28:24", + "src": "7830:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6460,26 +6460,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3209, + "id": 3363, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3196, - "src": "7861:6:24", + "referencedDeclaration": 3350, + "src": "7861:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7830:37:24", + "src": "7830:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3211, + "id": 3365, "nodeType": "ExpressionStatement", - "src": "7830:37:24" + "src": "7830:37:25" }, { "eventCall": { @@ -6489,18 +6489,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3213, + "id": 3367, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7891:3:24", + "referencedDeclaration": 4491, + "src": "7891:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3214, + "id": 3368, "isConstant": false, "isLValue": false, "isPure": false, @@ -6508,7 +6508,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7891:10:24", + "src": "7891:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6516,12 +6516,12 @@ }, { "argumentTypes": null, - "id": 3215, + "id": 3369, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3194, - "src": "7903:7:24", + "referencedDeclaration": 3348, + "src": "7903:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6529,12 +6529,12 @@ }, { "argumentTypes": null, - "id": 3216, + "id": 3370, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3196, - "src": "7912:6:24", + "referencedDeclaration": 3350, + "src": "7912:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6556,18 +6556,18 @@ "typeString": "uint256" } ], - "id": 3212, + "id": 3366, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2884, - "src": "7882:8:24", + "referencedDeclaration": 3038, + "src": "7882:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3217, + "id": 3371, "isConstant": false, "isLValue": false, "isPure": false, @@ -6575,15 +6575,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7882:37:24", + "src": "7882:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3218, + "id": 3372, "nodeType": "EmitStatement", - "src": "7877:42:24" + "src": "7877:42:25" }, { "expression": { @@ -6593,18 +6593,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3223, + "id": 3377, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7977:3:24", + "referencedDeclaration": 4491, + "src": "7977:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3224, + "id": 3378, "isConstant": false, "isLValue": false, "isPure": false, @@ -6612,7 +6612,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7977:10:24", + "src": "7977:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6620,12 +6620,12 @@ }, { "argumentTypes": null, - "id": 3225, + "id": 3379, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3196, - "src": "7989:6:24", + "referencedDeclaration": 3350, + "src": "7989:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6633,25 +6633,25 @@ }, { "argumentTypes": null, - "id": 3226, + "id": 3380, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3897, - "src": "7997:4:24", + "referencedDeclaration": 4564, + "src": "7997:4:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_EmptyToken_$3261", + "typeIdentifier": "t_contract$_EmptyToken_$3415", "typeString": "contract EmptyToken" } }, { "argumentTypes": null, - "id": 3227, + "id": 3381, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3198, - "src": "8003:4:24", + "referencedDeclaration": 3352, + "src": "8003:4:25", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6669,7 +6669,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_EmptyToken_$3261", + "typeIdentifier": "t_contract$_EmptyToken_$3415", "typeString": "contract EmptyToken" }, { @@ -6682,12 +6682,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3220, + "id": 3374, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3194, - "src": "7952:7:24", + "referencedDeclaration": 3348, + "src": "7952:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6701,18 +6701,18 @@ "typeString": "address" } ], - "id": 3219, + "id": 3373, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2897, - "src": "7929:22:24", + "referencedDeclaration": 3051, + "src": "7929:22:25", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$2897_$", + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3051_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, - "id": 3221, + "id": 3375, "isConstant": false, "isLValue": false, "isPure": false, @@ -6720,27 +6720,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7929:31:24", + "src": "7929:31:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$2897", + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3051", "typeString": "contract ApproveAndCallFallBack" } }, - "id": 3222, + "id": 3376, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", - "referencedDeclaration": 2896, - "src": "7929:47:24", + "referencedDeclaration": 3050, + "src": "7929:47:25", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,address,bytes memory) external" } }, - "id": 3228, + "id": 3382, "isConstant": false, "isLValue": false, "isPure": false, @@ -6748,28 +6748,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7929:79:24", + "src": "7929:79:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3229, + "id": 3383, "nodeType": "ExpressionStatement", - "src": "7929:79:24" + "src": "7929:79:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3230, + "id": 3384, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8025:4:24", + "src": "8025:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6777,15 +6777,15 @@ }, "value": "true" }, - "functionReturnParameters": 3202, - "id": 3231, + "functionReturnParameters": 3356, + "id": 3385, "nodeType": "Return", - "src": "8018:11:24" + "src": "8018:11:25" } ] }, "documentation": null, - "id": 3233, + "id": 3387, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6793,16 +6793,16 @@ "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 3199, + "id": 3353, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3194, + "id": 3348, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "7748:15:24", + "scope": 3387, + "src": "7748:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6810,10 +6810,10 @@ "typeString": "address" }, "typeName": { - "id": 3193, + "id": 3347, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7748:7:24", + "src": "7748:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6824,11 +6824,11 @@ }, { "constant": false, - "id": 3196, + "id": 3350, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "7765:11:24", + "scope": 3387, + "src": "7765:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6836,10 +6836,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3195, + "id": 3349, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7765:4:24", + "src": "7765:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6850,11 +6850,11 @@ }, { "constant": false, - "id": 3198, + "id": 3352, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "7778:10:24", + "scope": 3387, + "src": "7778:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6862,10 +6862,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3197, + "id": 3351, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7778:5:24", + "src": "7778:5:25", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6875,20 +6875,20 @@ "visibility": "internal" } ], - "src": "7747:42:24" + "src": "7747:42:25" }, "payable": false, "returnParameters": { - "id": 3202, + "id": 3356, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3201, + "id": 3355, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "7806:12:24", + "scope": 3387, + "src": "7806:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6896,10 +6896,10 @@ "typeString": "bool" }, "typeName": { - "id": 3200, + "id": 3354, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7806:4:24", + "src": "7806:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6909,19 +6909,19 @@ "visibility": "internal" } ], - "src": "7805:14:24" + "src": "7805:14:25" }, - "scope": 3261, - "src": "7724:312:24", + "scope": 3415, + "src": "7724:312:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3239, + "id": 3393, "nodeType": "Block", - "src": "8254:25:24", + "src": "8254:25:25", "statements": [ { "expression": { @@ -6929,21 +6929,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3236, + "id": 3390, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 3833, - 3834 + 4496, + 4497 ], - "referencedDeclaration": 3833, - "src": "8264:6:24", + "referencedDeclaration": 4496, + "src": "8264:6:25", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 3237, + "id": 3391, "isConstant": false, "isLValue": false, "isPure": false, @@ -6951,20 +6951,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8264:8:24", + "src": "8264:8:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3238, + "id": 3392, "nodeType": "ExpressionStatement", - "src": "8264:8:24" + "src": "8264:8:25" } ] }, "documentation": null, - "id": 3240, + "id": 3394, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6972,29 +6972,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3234, + "id": 3388, "nodeType": "ParameterList", "parameters": [], - "src": "8236:2:24" + "src": "8236:2:25" }, "payable": true, "returnParameters": { - "id": 3235, + "id": 3389, "nodeType": "ParameterList", "parameters": [], - "src": "8254:0:24" + "src": "8254:0:25" }, - "scope": 3261, - "src": "8227:52:24", + "scope": 3415, + "src": "8227:52:25", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3259, + "id": 3413, "nodeType": "Block", - "src": "8617:76:24", + "src": "8617:76:25", "statements": [ { "expression": { @@ -7002,12 +7002,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3255, + "id": 3409, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2899, - "src": "8672:5:24", + "referencedDeclaration": 3053, + "src": "8672:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7015,12 +7015,12 @@ }, { "argumentTypes": null, - "id": 3256, + "id": 3410, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3244, - "src": "8679:6:24", + "referencedDeclaration": 3398, + "src": "8679:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7043,12 +7043,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3252, + "id": 3406, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3242, - "src": "8649:12:24", + "referencedDeclaration": 3396, + "src": "8649:12:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7062,18 +7062,18 @@ "typeString": "address" } ], - "id": 3251, + "id": 3405, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2885, - "src": "8634:14:24", + "referencedDeclaration": 3039, + "src": "8634:14:25", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$2885_$", + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3039_$", "typeString": "type(contract ERC20Interface)" } }, - "id": 3253, + "id": 3407, "isConstant": false, "isLValue": false, "isPure": false, @@ -7081,27 +7081,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8634:28:24", + "src": "8634:28:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$2885", + "typeIdentifier": "t_contract$_ERC20Interface_$3039", "typeString": "contract ERC20Interface" } }, - "id": 3254, + "id": 3408, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2848, - "src": "8634:37:24", + "referencedDeclaration": 3002, + "src": "8634:37:25", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 3257, + "id": 3411, "isConstant": false, "isLValue": false, "isPure": false, @@ -7109,58 +7109,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8634:52:24", + "src": "8634:52:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3250, - "id": 3258, + "functionReturnParameters": 3404, + "id": 3412, "nodeType": "Return", - "src": "8627:59:24" + "src": "8627:59:25" } ] }, "documentation": null, - "id": 3260, + "id": 3414, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3247, + "id": 3401, "modifierName": { "argumentTypes": null, - "id": 3246, + "id": 3400, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "8584:9:24", + "referencedDeclaration": 3081, + "src": "8584:9:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8584:9:24" + "src": "8584:9:25" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 3245, + "id": 3399, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3242, + "id": 3396, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3260, - "src": "8542:20:24", + "scope": 3414, + "src": "8542:20:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7168,10 +7168,10 @@ "typeString": "address" }, "typeName": { - "id": 3241, + "id": 3395, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8542:7:24", + "src": "8542:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7182,11 +7182,11 @@ }, { "constant": false, - "id": 3244, + "id": 3398, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3260, - "src": "8564:11:24", + "scope": 3414, + "src": "8564:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7194,10 +7194,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3243, + "id": 3397, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8564:4:24", + "src": "8564:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7207,20 +7207,20 @@ "visibility": "internal" } ], - "src": "8541:35:24" + "src": "8541:35:25" }, "payable": false, "returnParameters": { - "id": 3250, + "id": 3404, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3249, + "id": 3403, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3260, - "src": "8603:12:24", + "scope": 3414, + "src": "8603:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7228,10 +7228,10 @@ "typeString": "bool" }, "typeName": { - "id": 3248, + "id": 3402, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8603:4:24", + "src": "8603:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7241,45 +7241,45 @@ "visibility": "internal" } ], - "src": "8602:14:24" + "src": "8602:14:25" }, - "scope": 3261, - "src": "8511:182:24", + "scope": 3415, + "src": "8511:182:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3262, - "src": "3506:5189:24" + "scope": 3416, + "src": "3506:5189:25" } ], - "src": "0:8695:24" + "src": "0:8695:25" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/EmptyToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ - 2897 + 3051 ], "ERC20Interface": [ - 2885 + 3039 ], "EmptyToken": [ - 3261 + 3415 ], "Owned": [ - 2966 + 3120 ], "SafeMath": [ - 2818 + 2972 ] }, - "id": 3262, + "id": 3416, "nodeType": "SourceUnit", "nodes": [ { - "id": 2723, + "id": 2877, "literals": [ "solidity", "^", @@ -7287,7 +7287,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:24" + "src": "0:24:25" }, { "baseContracts": [], @@ -7295,35 +7295,35 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 2818, + "id": 2972, "linearizedBaseContracts": [ - 2818 + 2972 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2744, + "id": 2898, "nodeType": "Block", - "src": "719:51:24", + "src": "719:51:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 2736, + "id": 2890, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2732, + "id": 2886, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2730, - "src": "729:1:24", + "referencedDeclaration": 2884, + "src": "729:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7337,19 +7337,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2735, + "id": 2889, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2733, + "id": 2887, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2725, - "src": "733:1:24", + "referencedDeclaration": 2879, + "src": "733:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7359,32 +7359,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2734, + "id": 2888, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "737:1:24", + "referencedDeclaration": 2881, + "src": "737:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:5:24", + "src": "733:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "729:9:24", + "src": "729:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2737, + "id": 2891, "nodeType": "ExpressionStatement", - "src": "729:9:24" + "src": "729:9:25" }, { "expression": { @@ -7396,19 +7396,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2741, + "id": 2895, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2739, + "id": 2893, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2730, - "src": "756:1:24", + "referencedDeclaration": 2884, + "src": "756:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7418,18 +7418,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 2740, + "id": 2894, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2725, - "src": "761:1:24", + "referencedDeclaration": 2879, + "src": "761:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "756:6:24", + "src": "756:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7443,21 +7443,21 @@ "typeString": "bool" } ], - "id": 2738, + "id": 2892, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "748:7:24", + "referencedDeclaration": 4494, + "src": "748:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2742, + "id": 2896, "isConstant": false, "isLValue": false, "isPure": false, @@ -7465,20 +7465,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:15:24", + "src": "748:15:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2743, + "id": 2897, "nodeType": "ExpressionStatement", - "src": "748:15:24" + "src": "748:15:25" } ] }, "documentation": null, - "id": 2745, + "id": 2899, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7486,16 +7486,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 2728, + "id": 2882, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2725, + "id": 2879, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2745, - "src": "672:6:24", + "scope": 2899, + "src": "672:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7503,10 +7503,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2724, + "id": 2878, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "672:4:24", + "src": "672:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7517,11 +7517,11 @@ }, { "constant": false, - "id": 2727, + "id": 2881, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2745, - "src": "680:6:24", + "scope": 2899, + "src": "680:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7529,10 +7529,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2726, + "id": 2880, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "680:4:24", + "src": "680:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7542,20 +7542,20 @@ "visibility": "internal" } ], - "src": "671:16:24" + "src": "671:16:25" }, "payable": false, "returnParameters": { - "id": 2731, + "id": 2885, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2730, + "id": 2884, "name": "c", "nodeType": "VariableDeclaration", - "scope": 2745, - "src": "711:6:24", + "scope": 2899, + "src": "711:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7563,10 +7563,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2729, + "id": 2883, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "711:4:24", + "src": "711:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7576,19 +7576,19 @@ "visibility": "internal" } ], - "src": "710:8:24" + "src": "710:8:25" }, - "scope": 2818, - "src": "659:111:24", + "scope": 2972, + "src": "659:111:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2766, + "id": 2920, "nodeType": "Block", - "src": "835:51:24", + "src": "835:51:25", "statements": [ { "expression": { @@ -7600,19 +7600,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2757, + "id": 2911, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2755, + "id": 2909, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2749, - "src": "853:1:24", + "referencedDeclaration": 2903, + "src": "853:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7622,18 +7622,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 2756, + "id": 2910, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2747, - "src": "858:1:24", + "referencedDeclaration": 2901, + "src": "858:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "853:6:24", + "src": "853:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7647,21 +7647,21 @@ "typeString": "bool" } ], - "id": 2754, + "id": 2908, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "845:7:24", + "referencedDeclaration": 4494, + "src": "845:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2758, + "id": 2912, "isConstant": false, "isLValue": false, "isPure": false, @@ -7669,32 +7669,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:15:24", + "src": "845:15:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2759, + "id": 2913, "nodeType": "ExpressionStatement", - "src": "845:15:24" + "src": "845:15:25" }, { "expression": { "argumentTypes": null, - "id": 2764, + "id": 2918, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2760, + "id": 2914, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2752, - "src": "870:1:24", + "referencedDeclaration": 2906, + "src": "870:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7708,19 +7708,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2763, + "id": 2917, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2761, + "id": 2915, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2747, - "src": "874:1:24", + "referencedDeclaration": 2901, + "src": "874:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7730,37 +7730,37 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 2762, + "id": 2916, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2749, - "src": "878:1:24", + "referencedDeclaration": 2903, + "src": "878:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "874:5:24", + "src": "874:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "870:9:24", + "src": "870:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2765, + "id": 2919, "nodeType": "ExpressionStatement", - "src": "870:9:24" + "src": "870:9:25" } ] }, "documentation": null, - "id": 2767, + "id": 2921, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7768,16 +7768,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 2750, + "id": 2904, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2747, + "id": 2901, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2767, - "src": "788:6:24", + "scope": 2921, + "src": "788:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7785,10 +7785,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2746, + "id": 2900, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "788:4:24", + "src": "788:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7799,11 +7799,11 @@ }, { "constant": false, - "id": 2749, + "id": 2903, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2767, - "src": "796:6:24", + "scope": 2921, + "src": "796:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7811,10 +7811,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2748, + "id": 2902, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "796:4:24", + "src": "796:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7824,20 +7824,20 @@ "visibility": "internal" } ], - "src": "787:16:24" + "src": "787:16:25" }, "payable": false, "returnParameters": { - "id": 2753, + "id": 2907, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2752, + "id": 2906, "name": "c", "nodeType": "VariableDeclaration", - "scope": 2767, - "src": "827:6:24", + "scope": 2921, + "src": "827:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7845,10 +7845,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2751, + "id": 2905, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:24", + "src": "827:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7858,36 +7858,36 @@ "visibility": "internal" } ], - "src": "826:8:24" + "src": "826:8:25" }, - "scope": 2818, - "src": "775:111:24", + "scope": 2972, + "src": "775:111:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2794, + "id": 2948, "nodeType": "Block", - "src": "951:65:24", + "src": "951:65:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 2780, + "id": 2934, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2776, + "id": 2930, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2774, - "src": "961:1:24", + "referencedDeclaration": 2928, + "src": "961:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7901,19 +7901,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2779, + "id": 2933, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2777, + "id": 2931, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "965:1:24", + "referencedDeclaration": 2923, + "src": "965:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7923,32 +7923,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 2778, + "id": 2932, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2771, - "src": "969:1:24", + "referencedDeclaration": 2925, + "src": "969:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "965:5:24", + "src": "965:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "961:9:24", + "src": "961:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2781, + "id": 2935, "nodeType": "ExpressionStatement", - "src": "961:9:24" + "src": "961:9:25" }, { "expression": { @@ -7960,7 +7960,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2791, + "id": 2945, "isConstant": false, "isLValue": false, "isPure": false, @@ -7971,19 +7971,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2785, + "id": 2939, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2783, + "id": 2937, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "988:1:24", + "referencedDeclaration": 2923, + "src": "988:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7994,14 +7994,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2784, + "id": 2938, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "993:1:24", + "src": "993:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8009,7 +8009,7 @@ }, "value": "0" }, - "src": "988:6:24", + "src": "988:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8023,7 +8023,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2790, + "id": 2944, "isConstant": false, "isLValue": false, "isPure": false, @@ -8034,19 +8034,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2788, + "id": 2942, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2786, + "id": 2940, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2774, - "src": "998:1:24", + "referencedDeclaration": 2928, + "src": "998:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8056,18 +8056,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 2787, + "id": 2941, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2769, - "src": "1002:1:24", + "referencedDeclaration": 2923, + "src": "1002:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:5:24", + "src": "998:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8077,24 +8077,24 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2789, + "id": 2943, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2771, - "src": "1007:1:24", + "referencedDeclaration": 2925, + "src": "1007:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:24", + "src": "998:10:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "988:20:24", + "src": "988:20:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8108,21 +8108,21 @@ "typeString": "bool" } ], - "id": 2782, + "id": 2936, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "980:7:24", + "referencedDeclaration": 4494, + "src": "980:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2792, + "id": 2946, "isConstant": false, "isLValue": false, "isPure": false, @@ -8130,20 +8130,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "980:29:24", + "src": "980:29:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2793, + "id": 2947, "nodeType": "ExpressionStatement", - "src": "980:29:24" + "src": "980:29:25" } ] }, "documentation": null, - "id": 2795, + "id": 2949, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8151,16 +8151,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 2772, + "id": 2926, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2769, + "id": 2923, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2795, - "src": "904:6:24", + "scope": 2949, + "src": "904:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8168,10 +8168,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2768, + "id": 2922, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "904:4:24", + "src": "904:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8182,11 +8182,11 @@ }, { "constant": false, - "id": 2771, + "id": 2925, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2795, - "src": "912:6:24", + "scope": 2949, + "src": "912:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8194,10 +8194,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2770, + "id": 2924, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "912:4:24", + "src": "912:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8207,20 +8207,20 @@ "visibility": "internal" } ], - "src": "903:16:24" + "src": "903:16:25" }, "payable": false, "returnParameters": { - "id": 2775, + "id": 2929, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2774, + "id": 2928, "name": "c", "nodeType": "VariableDeclaration", - "scope": 2795, - "src": "943:6:24", + "scope": 2949, + "src": "943:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8228,10 +8228,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2773, + "id": 2927, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "943:4:24", + "src": "943:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8241,19 +8241,19 @@ "visibility": "internal" } ], - "src": "942:8:24" + "src": "942:8:25" }, - "scope": 2818, - "src": "891:125:24", + "scope": 2972, + "src": "891:125:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2816, + "id": 2970, "nodeType": "Block", - "src": "1081:50:24", + "src": "1081:50:25", "statements": [ { "expression": { @@ -8265,19 +8265,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2807, + "id": 2961, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2805, + "id": 2959, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2799, - "src": "1099:1:24", + "referencedDeclaration": 2953, + "src": "1099:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8288,14 +8288,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2806, + "id": 2960, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:1:24", + "src": "1103:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8303,7 +8303,7 @@ }, "value": "0" }, - "src": "1099:5:24", + "src": "1099:5:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8317,21 +8317,21 @@ "typeString": "bool" } ], - "id": 2804, + "id": 2958, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "1091:7:24", + "referencedDeclaration": 4494, + "src": "1091:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2808, + "id": 2962, "isConstant": false, "isLValue": false, "isPure": false, @@ -8339,32 +8339,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:14:24", + "src": "1091:14:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2809, + "id": 2963, "nodeType": "ExpressionStatement", - "src": "1091:14:24" + "src": "1091:14:25" }, { "expression": { "argumentTypes": null, - "id": 2814, + "id": 2968, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2810, + "id": 2964, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2802, - "src": "1115:1:24", + "referencedDeclaration": 2956, + "src": "1115:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8378,19 +8378,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2813, + "id": 2967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2811, + "id": 2965, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2797, - "src": "1119:1:24", + "referencedDeclaration": 2951, + "src": "1119:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8400,37 +8400,37 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 2812, + "id": 2966, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2799, - "src": "1123:1:24", + "referencedDeclaration": 2953, + "src": "1123:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:5:24", + "src": "1119:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1115:9:24", + "src": "1115:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2815, + "id": 2969, "nodeType": "ExpressionStatement", - "src": "1115:9:24" + "src": "1115:9:25" } ] }, "documentation": null, - "id": 2817, + "id": 2971, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8438,16 +8438,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 2800, + "id": 2954, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2797, + "id": 2951, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2817, - "src": "1034:6:24", + "scope": 2971, + "src": "1034:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8455,10 +8455,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2796, + "id": 2950, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1034:4:24", + "src": "1034:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8469,11 +8469,11 @@ }, { "constant": false, - "id": 2799, + "id": 2953, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2817, - "src": "1042:6:24", + "scope": 2971, + "src": "1042:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8481,10 +8481,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2798, + "id": 2952, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1042:4:24", + "src": "1042:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8494,20 +8494,20 @@ "visibility": "internal" } ], - "src": "1033:16:24" + "src": "1033:16:25" }, "payable": false, "returnParameters": { - "id": 2803, + "id": 2957, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2802, + "id": 2956, "name": "c", "nodeType": "VariableDeclaration", - "scope": 2817, - "src": "1073:6:24", + "scope": 2971, + "src": "1073:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8515,10 +8515,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2801, + "id": 2955, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1073:4:24", + "src": "1073:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8528,17 +8528,17 @@ "visibility": "internal" } ], - "src": "1072:8:24" + "src": "1072:8:25" }, - "scope": 2818, - "src": "1021:110:24", + "scope": 2972, + "src": "1021:110:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 3262, - "src": "636:497:24" + "scope": 3416, + "src": "636:497:25" }, { "baseContracts": [], @@ -8546,9 +8546,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 2885, + "id": 3039, "linearizedBaseContracts": [ - 2885 + 3039 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", @@ -8556,7 +8556,7 @@ { "body": null, "documentation": null, - "id": 2823, + "id": 2977, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8564,23 +8564,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 2819, + "id": 2973, "nodeType": "ParameterList", "parameters": [], - "src": "1445:2:24" + "src": "1445:2:25" }, "payable": false, "returnParameters": { - "id": 2822, + "id": 2976, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2821, + "id": 2975, "name": "", "nodeType": "VariableDeclaration", - "scope": 2823, - "src": "1473:4:24", + "scope": 2977, + "src": "1473:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8588,10 +8588,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2820, + "id": 2974, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1473:4:24", + "src": "1473:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8601,10 +8601,10 @@ "visibility": "internal" } ], - "src": "1472:6:24" + "src": "1472:6:25" }, - "scope": 2885, - "src": "1425:54:24", + "scope": 3039, + "src": "1425:54:25", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8612,7 +8612,7 @@ { "body": null, "documentation": null, - "id": 2830, + "id": 2984, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8620,16 +8620,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 2826, + "id": 2980, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2825, + "id": 2979, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 2830, - "src": "1503:18:24", + "scope": 2984, + "src": "1503:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8637,10 +8637,10 @@ "typeString": "address" }, "typeName": { - "id": 2824, + "id": 2978, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1503:7:24", + "src": "1503:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8650,20 +8650,20 @@ "visibility": "internal" } ], - "src": "1502:20:24" + "src": "1502:20:25" }, "payable": false, "returnParameters": { - "id": 2829, + "id": 2983, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2828, + "id": 2982, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 2830, - "src": "1548:12:24", + "scope": 2984, + "src": "1548:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8671,10 +8671,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2827, + "id": 2981, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:24", + "src": "1548:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8684,10 +8684,10 @@ "visibility": "internal" } ], - "src": "1547:14:24" + "src": "1547:14:25" }, - "scope": 2885, - "src": "1484:78:24", + "scope": 3039, + "src": "1484:78:25", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8695,7 +8695,7 @@ { "body": null, "documentation": null, - "id": 2839, + "id": 2993, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8703,16 +8703,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 2835, + "id": 2989, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2832, + "id": 2986, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 2839, - "src": "1586:18:24", + "scope": 2993, + "src": "1586:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8720,10 +8720,10 @@ "typeString": "address" }, "typeName": { - "id": 2831, + "id": 2985, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:24", + "src": "1586:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8734,11 +8734,11 @@ }, { "constant": false, - "id": 2834, + "id": 2988, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2839, - "src": "1606:15:24", + "scope": 2993, + "src": "1606:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8746,10 +8746,10 @@ "typeString": "address" }, "typeName": { - "id": 2833, + "id": 2987, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1606:7:24", + "src": "1606:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8759,20 +8759,20 @@ "visibility": "internal" } ], - "src": "1585:37:24" + "src": "1585:37:25" }, "payable": false, "returnParameters": { - "id": 2838, + "id": 2992, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2837, + "id": 2991, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 2839, - "src": "1648:14:24", + "scope": 2993, + "src": "1648:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8780,10 +8780,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2836, + "id": 2990, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1648:4:24", + "src": "1648:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8793,10 +8793,10 @@ "visibility": "internal" } ], - "src": "1647:16:24" + "src": "1647:16:25" }, - "scope": 2885, - "src": "1567:97:24", + "scope": 3039, + "src": "1567:97:25", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8804,7 +8804,7 @@ { "body": null, "documentation": null, - "id": 2848, + "id": 3002, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -8812,16 +8812,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 2844, + "id": 2998, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2841, + "id": 2995, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "1687:10:24", + "scope": 3002, + "src": "1687:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8829,10 +8829,10 @@ "typeString": "address" }, "typeName": { - "id": 2840, + "id": 2994, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:24", + "src": "1687:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8843,11 +8843,11 @@ }, { "constant": false, - "id": 2843, + "id": 2997, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "1699:11:24", + "scope": 3002, + "src": "1699:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8855,10 +8855,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2842, + "id": 2996, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:24", + "src": "1699:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8868,20 +8868,20 @@ "visibility": "internal" } ], - "src": "1686:25:24" + "src": "1686:25:25" }, "payable": false, "returnParameters": { - "id": 2847, + "id": 3001, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2846, + "id": 3000, "name": "success", "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "1728:12:24", + "scope": 3002, + "src": "1728:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8889,10 +8889,10 @@ "typeString": "bool" }, "typeName": { - "id": 2845, + "id": 2999, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1728:4:24", + "src": "1728:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8902,10 +8902,10 @@ "visibility": "internal" } ], - "src": "1727:14:24" + "src": "1727:14:25" }, - "scope": 2885, - "src": "1669:73:24", + "scope": 3039, + "src": "1669:73:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -8913,7 +8913,7 @@ { "body": null, "documentation": null, - "id": 2857, + "id": 3011, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -8921,16 +8921,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 2853, + "id": 3007, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2850, + "id": 3004, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2857, - "src": "1764:15:24", + "scope": 3011, + "src": "1764:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8938,10 +8938,10 @@ "typeString": "address" }, "typeName": { - "id": 2849, + "id": 3003, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:24", + "src": "1764:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8952,11 +8952,11 @@ }, { "constant": false, - "id": 2852, + "id": 3006, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 2857, - "src": "1781:11:24", + "scope": 3011, + "src": "1781:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8964,10 +8964,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2851, + "id": 3005, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:24", + "src": "1781:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8977,20 +8977,20 @@ "visibility": "internal" } ], - "src": "1763:30:24" + "src": "1763:30:25" }, "payable": false, "returnParameters": { - "id": 2856, + "id": 3010, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2855, + "id": 3009, "name": "success", "nodeType": "VariableDeclaration", - "scope": 2857, - "src": "1810:12:24", + "scope": 3011, + "src": "1810:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8998,10 +8998,10 @@ "typeString": "bool" }, "typeName": { - "id": 2854, + "id": 3008, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1810:4:24", + "src": "1810:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9011,10 +9011,10 @@ "visibility": "internal" } ], - "src": "1809:14:24" + "src": "1809:14:25" }, - "scope": 2885, - "src": "1747:77:24", + "scope": 3039, + "src": "1747:77:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -9022,7 +9022,7 @@ { "body": null, "documentation": null, - "id": 2868, + "id": 3022, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -9030,16 +9030,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 2864, + "id": 3018, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2859, + "id": 3013, "name": "from", "nodeType": "VariableDeclaration", - "scope": 2868, - "src": "1851:12:24", + "scope": 3022, + "src": "1851:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9047,10 +9047,10 @@ "typeString": "address" }, "typeName": { - "id": 2858, + "id": 3012, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1851:7:24", + "src": "1851:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9061,11 +9061,11 @@ }, { "constant": false, - "id": 2861, + "id": 3015, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2868, - "src": "1865:10:24", + "scope": 3022, + "src": "1865:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9073,10 +9073,10 @@ "typeString": "address" }, "typeName": { - "id": 2860, + "id": 3014, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:24", + "src": "1865:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9087,11 +9087,11 @@ }, { "constant": false, - "id": 2863, + "id": 3017, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 2868, - "src": "1877:11:24", + "scope": 3022, + "src": "1877:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9099,10 +9099,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2862, + "id": 3016, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1877:4:24", + "src": "1877:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9112,20 +9112,20 @@ "visibility": "internal" } ], - "src": "1850:39:24" + "src": "1850:39:25" }, "payable": false, "returnParameters": { - "id": 2867, + "id": 3021, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2866, + "id": 3020, "name": "success", "nodeType": "VariableDeclaration", - "scope": 2868, - "src": "1906:12:24", + "scope": 3022, + "src": "1906:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9133,10 +9133,10 @@ "typeString": "bool" }, "typeName": { - "id": 2865, + "id": 3019, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1906:4:24", + "src": "1906:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9146,10 +9146,10 @@ "visibility": "internal" } ], - "src": "1905:14:24" + "src": "1905:14:25" }, - "scope": 2885, - "src": "1829:91:24", + "scope": 3039, + "src": "1829:91:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -9157,21 +9157,21 @@ { "anonymous": false, "documentation": null, - "id": 2876, + "id": 3030, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 2875, + "id": 3029, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2870, + "id": 3024, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 2876, - "src": "1941:20:24", + "scope": 3030, + "src": "1941:20:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9179,10 +9179,10 @@ "typeString": "address" }, "typeName": { - "id": 2869, + "id": 3023, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1941:7:24", + "src": "1941:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9193,12 +9193,12 @@ }, { "constant": false, - "id": 2872, + "id": 3026, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2876, - "src": "1963:18:24", + "scope": 3030, + "src": "1963:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9206,10 +9206,10 @@ "typeString": "address" }, "typeName": { - "id": 2871, + "id": 3025, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1963:7:24", + "src": "1963:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9220,12 +9220,12 @@ }, { "constant": false, - "id": 2874, + "id": 3028, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 2876, - "src": "1983:11:24", + "scope": 3030, + "src": "1983:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9233,10 +9233,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2873, + "id": 3027, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:24", + "src": "1983:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9246,28 +9246,28 @@ "visibility": "internal" } ], - "src": "1940:55:24" + "src": "1940:55:25" }, - "src": "1926:70:24" + "src": "1926:70:25" }, { "anonymous": false, "documentation": null, - "id": 2884, + "id": 3038, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 2883, + "id": 3037, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2878, + "id": 3032, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 2884, - "src": "2016:26:24", + "scope": 3038, + "src": "2016:26:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9275,10 +9275,10 @@ "typeString": "address" }, "typeName": { - "id": 2877, + "id": 3031, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2016:7:24", + "src": "2016:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9289,12 +9289,12 @@ }, { "constant": false, - "id": 2880, + "id": 3034, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2884, - "src": "2044:23:24", + "scope": 3038, + "src": "2044:23:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9302,10 +9302,10 @@ "typeString": "address" }, "typeName": { - "id": 2879, + "id": 3033, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2044:7:24", + "src": "2044:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9316,12 +9316,12 @@ }, { "constant": false, - "id": 2882, + "id": 3036, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 2884, - "src": "2069:11:24", + "scope": 3038, + "src": "2069:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9329,10 +9329,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2881, + "id": 3035, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2069:4:24", + "src": "2069:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9342,13 +9342,13 @@ "visibility": "internal" } ], - "src": "2015:66:24" + "src": "2015:66:25" }, - "src": "2001:81:24" + "src": "2001:81:25" } ], - "scope": 3262, - "src": "1395:689:24" + "scope": 3416, + "src": "1395:689:25" }, { "baseContracts": [], @@ -9356,9 +9356,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 2897, + "id": 3051, "linearizedBaseContracts": [ - 2897 + 3051 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", @@ -9366,7 +9366,7 @@ { "body": null, "documentation": null, - "id": 2896, + "id": 3050, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -9374,16 +9374,16 @@ "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 2894, + "id": 3048, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2887, + "id": 3041, "name": "from", "nodeType": "VariableDeclaration", - "scope": 2896, - "src": "2416:12:24", + "scope": 3050, + "src": "2416:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9391,10 +9391,10 @@ "typeString": "address" }, "typeName": { - "id": 2886, + "id": 3040, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2416:7:24", + "src": "2416:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9405,11 +9405,11 @@ }, { "constant": false, - "id": 2889, + "id": 3043, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 2896, - "src": "2430:14:24", + "scope": 3050, + "src": "2430:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9417,10 +9417,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2888, + "id": 3042, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2430:7:24", + "src": "2430:7:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9431,11 +9431,11 @@ }, { "constant": false, - "id": 2891, + "id": 3045, "name": "token", "nodeType": "VariableDeclaration", - "scope": 2896, - "src": "2446:13:24", + "scope": 3050, + "src": "2446:13:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9443,10 +9443,10 @@ "typeString": "address" }, "typeName": { - "id": 2890, + "id": 3044, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2446:7:24", + "src": "2446:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9457,11 +9457,11 @@ }, { "constant": false, - "id": 2893, + "id": 3047, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2896, - "src": "2461:10:24", + "scope": 3050, + "src": "2461:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9469,10 +9469,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2892, + "id": 3046, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2461:5:24", + "src": "2461:5:25", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9482,24 +9482,24 @@ "visibility": "internal" } ], - "src": "2415:57:24" + "src": "2415:57:25" }, "payable": false, "returnParameters": { - "id": 2895, + "id": 3049, "nodeType": "ParameterList", "parameters": [], - "src": "2479:0:24" + "src": "2479:0:25" }, - "scope": 2897, - "src": "2391:89:24", + "scope": 3051, + "src": "2391:89:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3262, - "src": "2353:129:24" + "scope": 3416, + "src": "2353:129:25" }, { "baseContracts": [], @@ -9507,20 +9507,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 2966, + "id": 3120, "linearizedBaseContracts": [ - 2966 + 3120 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2899, + "id": 3053, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2966, - "src": "2684:20:24", + "scope": 3120, + "src": "2684:20:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -9528,10 +9528,10 @@ "typeString": "address" }, "typeName": { - "id": 2898, + "id": 3052, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2684:7:24", + "src": "2684:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9542,11 +9542,11 @@ }, { "constant": false, - "id": 2901, + "id": 3055, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 2966, - "src": "2710:23:24", + "scope": 3120, + "src": "2710:23:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -9554,10 +9554,10 @@ "typeString": "address" }, "typeName": { - "id": 2900, + "id": 3054, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2710:7:24", + "src": "2710:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9569,21 +9569,21 @@ { "anonymous": false, "documentation": null, - "id": 2907, + "id": 3061, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 2906, + "id": 3060, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2903, + "id": 3057, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 2907, - "src": "2767:21:24", + "scope": 3061, + "src": "2767:21:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9591,10 +9591,10 @@ "typeString": "address" }, "typeName": { - "id": 2902, + "id": 3056, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2767:7:24", + "src": "2767:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9605,12 +9605,12 @@ }, { "constant": false, - "id": 2905, + "id": 3059, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2907, - "src": "2790:19:24", + "scope": 3061, + "src": "2790:19:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9618,10 +9618,10 @@ "typeString": "address" }, "typeName": { - "id": 2904, + "id": 3058, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2790:7:24", + "src": "2790:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9631,32 +9631,32 @@ "visibility": "internal" } ], - "src": "2766:44:24" + "src": "2766:44:25" }, - "src": "2740:71:24" + "src": "2740:71:25" }, { "body": { - "id": 2915, + "id": 3069, "nodeType": "Block", - "src": "2838:35:24", + "src": "2838:35:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 2913, + "id": 3067, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2910, + "id": 3064, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2899, - "src": "2848:5:24", + "referencedDeclaration": 3053, + "src": "2848:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9668,18 +9668,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2911, + "id": 3065, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2856:3:24", + "referencedDeclaration": 4491, + "src": "2856:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2912, + "id": 3066, "isConstant": false, "isLValue": false, "isPure": false, @@ -9687,26 +9687,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2856:10:24", + "src": "2856:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2848:18:24", + "src": "2848:18:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2914, + "id": 3068, "nodeType": "ExpressionStatement", - "src": "2848:18:24" + "src": "2848:18:25" } ] }, "documentation": null, - "id": 2916, + "id": 3070, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -9714,29 +9714,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2908, + "id": 3062, "nodeType": "ParameterList", "parameters": [], - "src": "2828:2:24" + "src": "2828:2:25" }, "payable": false, "returnParameters": { - "id": 2909, + "id": 3063, "nodeType": "ParameterList", "parameters": [], - "src": "2838:0:24" + "src": "2838:0:25" }, - "scope": 2966, - "src": "2817:56:24", + "scope": 3120, + "src": "2817:56:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2926, + "id": 3080, "nodeType": "Block", - "src": "2898:56:24", + "src": "2898:56:25", "statements": [ { "expression": { @@ -9748,7 +9748,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2922, + "id": 3076, "isConstant": false, "isLValue": false, "isPure": false, @@ -9757,18 +9757,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2919, + "id": 3073, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2916:3:24", + "referencedDeclaration": 4491, + "src": "2916:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2920, + "id": 3074, "isConstant": false, "isLValue": false, "isPure": false, @@ -9776,7 +9776,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2916:10:24", + "src": "2916:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9786,18 +9786,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2921, + "id": 3075, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2899, - "src": "2930:5:24", + "referencedDeclaration": 3053, + "src": "2930:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2916:19:24", + "src": "2916:19:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9811,21 +9811,21 @@ "typeString": "bool" } ], - "id": 2918, + "id": 3072, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "2908:7:24", + "referencedDeclaration": 4494, + "src": "2908:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2923, + "id": 3077, "isConstant": false, "isLValue": false, "isPure": false, @@ -9833,58 +9833,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:28:24", + "src": "2908:28:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2924, + "id": 3078, "nodeType": "ExpressionStatement", - "src": "2908:28:24" + "src": "2908:28:25" }, { - "id": 2925, + "id": 3079, "nodeType": "PlaceholderStatement", - "src": "2946:1:24" + "src": "2946:1:25" } ] }, "documentation": null, - "id": 2927, + "id": 3081, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 2917, + "id": 3071, "nodeType": "ParameterList", "parameters": [], - "src": "2898:0:24" + "src": "2898:0:25" }, - "src": "2879:75:24", + "src": "2879:75:25", "visibility": "internal" }, { "body": { - "id": 2938, + "id": 3092, "nodeType": "Block", - "src": "3023:37:24", + "src": "3023:37:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 2936, + "id": 3090, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2934, + "id": 3088, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "3033:8:24", + "referencedDeclaration": 3055, + "src": "3033:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9894,68 +9894,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2935, + "id": 3089, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "3044:9:24", + "referencedDeclaration": 3083, + "src": "3044:9:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3033:20:24", + "src": "3033:20:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2937, + "id": 3091, "nodeType": "ExpressionStatement", - "src": "3033:20:24" + "src": "3033:20:25" } ] }, "documentation": null, - "id": 2939, + "id": 3093, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2932, + "id": 3086, "modifierName": { "argumentTypes": null, - "id": 2931, + "id": 3085, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "3013:9:24", + "referencedDeclaration": 3081, + "src": "3013:9:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3013:9:24" + "src": "3013:9:25" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 2930, + "id": 3084, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2929, + "id": 3083, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 2939, - "src": "2987:17:24", + "scope": 3093, + "src": "2987:17:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9963,10 +9963,10 @@ "typeString": "address" }, "typeName": { - "id": 2928, + "id": 3082, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2987:7:24", + "src": "2987:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9976,26 +9976,26 @@ "visibility": "internal" } ], - "src": "2986:19:24" + "src": "2986:19:25" }, "payable": false, "returnParameters": { - "id": 2933, + "id": 3087, "nodeType": "ParameterList", "parameters": [], - "src": "3023:0:24" + "src": "3023:0:25" }, - "scope": 2966, - "src": "2960:100:24", + "scope": 3120, + "src": "2960:100:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2964, + "id": 3118, "nodeType": "Block", - "src": "3099:157:24", + "src": "3099:157:25", "statements": [ { "expression": { @@ -10007,7 +10007,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2946, + "id": 3100, "isConstant": false, "isLValue": false, "isPure": false, @@ -10016,18 +10016,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2943, + "id": 3097, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "3117:3:24", + "referencedDeclaration": 4491, + "src": "3117:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2944, + "id": 3098, "isConstant": false, "isLValue": false, "isPure": false, @@ -10035,7 +10035,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3117:10:24", + "src": "3117:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10045,18 +10045,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2945, + "id": 3099, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "3131:8:24", + "referencedDeclaration": 3055, + "src": "3131:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3117:22:24", + "src": "3117:22:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10070,21 +10070,21 @@ "typeString": "bool" } ], - "id": 2942, + "id": 3096, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "3109:7:24", + "referencedDeclaration": 4494, + "src": "3109:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2947, + "id": 3101, "isConstant": false, "isLValue": false, "isPure": false, @@ -10092,15 +10092,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3109:31:24", + "src": "3109:31:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2948, + "id": 3102, "nodeType": "ExpressionStatement", - "src": "3109:31:24" + "src": "3109:31:25" }, { "eventCall": { @@ -10108,12 +10108,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2950, + "id": 3104, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2899, - "src": "3176:5:24", + "referencedDeclaration": 3053, + "src": "3176:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10121,12 +10121,12 @@ }, { "argumentTypes": null, - "id": 2951, + "id": 3105, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "3183:8:24", + "referencedDeclaration": 3055, + "src": "3183:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10144,18 +10144,18 @@ "typeString": "address" } ], - "id": 2949, + "id": 3103, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2907, - "src": "3155:20:24", + "referencedDeclaration": 3061, + "src": "3155:20:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 2952, + "id": 3106, "isConstant": false, "isLValue": false, "isPure": false, @@ -10163,32 +10163,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3155:37:24", + "src": "3155:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2953, + "id": 3107, "nodeType": "EmitStatement", - "src": "3150:42:24" + "src": "3150:42:25" }, { "expression": { "argumentTypes": null, - "id": 2956, + "id": 3110, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2954, + "id": 3108, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2899, - "src": "3202:5:24", + "referencedDeclaration": 3053, + "src": "3202:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10198,43 +10198,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2955, + "id": 3109, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "3210:8:24", + "referencedDeclaration": 3055, + "src": "3210:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3202:16:24", + "src": "3202:16:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2957, + "id": 3111, "nodeType": "ExpressionStatement", - "src": "3202:16:24" + "src": "3202:16:25" }, { "expression": { "argumentTypes": null, - "id": 2962, + "id": 3116, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2958, + "id": 3112, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "3228:8:24", + "referencedDeclaration": 3055, + "src": "3228:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10248,14 +10248,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2960, + "id": 3114, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3247:1:24", + "src": "3247:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10271,20 +10271,20 @@ "typeString": "int_const 0" } ], - "id": 2959, + "id": 3113, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:24", + "src": "3239:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2961, + "id": 3115, "isConstant": false, "isLValue": false, "isPure": true, @@ -10292,26 +10292,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3239:10:24", + "src": "3239:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3228:21:24", + "src": "3228:21:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2963, + "id": 3117, "nodeType": "ExpressionStatement", - "src": "3228:21:24" + "src": "3228:21:25" } ] }, "documentation": null, - "id": 2965, + "id": 3119, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -10319,27 +10319,27 @@ "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 2940, + "id": 3094, "nodeType": "ParameterList", "parameters": [], - "src": "3089:2:24" + "src": "3089:2:25" }, "payable": false, "returnParameters": { - "id": 2941, + "id": 3095, "nodeType": "ParameterList", "parameters": [], - "src": "3099:0:24" + "src": "3099:0:25" }, - "scope": 2966, - "src": "3065:191:24", + "scope": 3120, + "src": "3065:191:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3262, - "src": "2663:595:24" + "scope": 3416, + "src": "2663:595:25" }, { "baseContracts": [ @@ -10347,76 +10347,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2967, + "id": 3121, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2885, - "src": "3529:14:24", + "referencedDeclaration": 3039, + "src": "3529:14:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$2885", + "typeIdentifier": "t_contract$_ERC20Interface_$3039", "typeString": "contract ERC20Interface" } }, - "id": 2968, + "id": 3122, "nodeType": "InheritanceSpecifier", - "src": "3529:14:24" + "src": "3529:14:25" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2969, + "id": 3123, "name": "Owned", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2966, - "src": "3545:5:24", + "referencedDeclaration": 3120, + "src": "3545:5:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$2966", + "typeIdentifier": "t_contract$_Owned_$3120", "typeString": "contract Owned" } }, - "id": 2970, + "id": 3124, "nodeType": "InheritanceSpecifier", - "src": "3545:5:24" + "src": "3545:5:25" } ], "contractDependencies": [ - 2885, - 2966 + 3039, + 3120 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3261, + "id": 3415, "linearizedBaseContracts": [ - 3261, - 2966, - 2885 + 3415, + 3120, + 3039 ], "name": "EmptyToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 2973, + "id": 3127, "libraryName": { "contractScope": null, - "id": 2971, + "id": 3125, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2818, - "src": "3563:8:24", + "referencedDeclaration": 2972, + "src": "3563:8:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2818", + "typeIdentifier": "t_contract$_SafeMath_$2972", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3557:24:24", + "src": "3557:24:25", "typeName": { - "id": 2972, + "id": 3126, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3576:4:24", + "src": "3576:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10425,11 +10425,11 @@ }, { "constant": false, - "id": 2975, + "id": 3129, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 3261, - "src": "3587:21:24", + "scope": 3415, + "src": "3587:21:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10437,10 +10437,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2974, + "id": 3128, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3587:5:24", + "src": "3587:5:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10451,11 +10451,11 @@ }, { "constant": false, - "id": 2977, + "id": 3131, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 3261, - "src": "3614:17:24", + "scope": 3415, + "src": "3614:17:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10463,10 +10463,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2976, + "id": 3130, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3614:4:24", + "src": "3614:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10477,11 +10477,11 @@ }, { "constant": false, - "id": 2981, + "id": 3135, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 3261, - "src": "3638:33:24", + "scope": 3415, + "src": "3638:33:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10489,28 +10489,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 2980, + "id": 3134, "keyType": { - "id": 2978, + "id": 3132, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3646:7:24", + "src": "3646:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3638:24:24", + "src": "3638:24:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 2979, + "id": 3133, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3657:4:24", + "src": "3657:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10522,11 +10522,11 @@ }, { "constant": false, - "id": 2987, + "id": 3141, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 3261, - "src": "3677:52:24", + "scope": 3415, + "src": "3677:52:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10534,46 +10534,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 2986, + "id": 3140, "keyType": { - "id": 2982, + "id": 3136, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3685:7:24", + "src": "3685:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3677:44:24", + "src": "3677:44:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 2985, + "id": 3139, "keyType": { - "id": 2983, + "id": 3137, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3704:7:24", + "src": "3704:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3696:24:24", + "src": "3696:24:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 2984, + "id": 3138, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3715:4:24", + "src": "3715:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10586,26 +10586,26 @@ }, { "body": { - "id": 3018, + "id": 3172, "nodeType": "Block", - "src": "3937:179:24", + "src": "3937:179:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 2992, + "id": 3146, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2990, + "id": 3144, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2975, - "src": "3947:8:24", + "referencedDeclaration": 3129, + "src": "3947:8:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10616,14 +10616,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3138", - "id": 2991, + "id": 3145, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3958:2:24", + "src": "3958:2:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -10631,32 +10631,32 @@ }, "value": "18" }, - "src": "3947:13:24", + "src": "3947:13:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 2993, + "id": 3147, "nodeType": "ExpressionStatement", - "src": "3947:13:24" + "src": "3947:13:25" }, { "expression": { "argumentTypes": null, - "id": 3002, + "id": 3156, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2994, + "id": 3148, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2977, - "src": "3970:12:24", + "referencedDeclaration": 3131, + "src": "3970:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10670,7 +10670,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3001, + "id": 3155, "isConstant": false, "isLValue": false, "isPure": false, @@ -10678,14 +10678,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 2995, + "id": 3149, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3985:7:24", + "src": "3985:7:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -10701,7 +10701,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3000, + "id": 3154, "isConstant": false, "isLValue": false, "isPure": false, @@ -10709,14 +10709,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 2996, + "id": 3150, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3995:2:24", + "src": "3995:2:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -10731,12 +10731,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2998, + "id": 3152, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2975, - "src": "4004:8:24", + "referencedDeclaration": 3129, + "src": "4004:8:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10750,20 +10750,20 @@ "typeString": "uint8" } ], - "id": 2997, + "id": 3151, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3999:4:24", + "src": "3999:4:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 2999, + "id": 3153, "isConstant": false, "isLValue": false, "isPure": false, @@ -10771,38 +10771,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3999:14:24", + "src": "3999:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3995:18:24", + "src": "3995:18:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3985:28:24", + "src": "3985:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3970:43:24", + "src": "3970:43:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3003, + "id": 3157, "nodeType": "ExpressionStatement", - "src": "3970:43:24" + "src": "3970:43:25" }, { "expression": { "argumentTypes": null, - "id": 3008, + "id": 3162, "isConstant": false, "isLValue": false, "isPure": false, @@ -10811,26 +10811,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3004, + "id": 3158, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "4023:8:24", + "referencedDeclaration": 3135, + "src": "4023:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3006, + "id": 3160, "indexExpression": { "argumentTypes": null, - "id": 3005, + "id": 3159, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2899, - "src": "4032:5:24", + "referencedDeclaration": 3053, + "src": "4032:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10841,7 +10841,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4023:15:24", + "src": "4023:15:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10851,26 +10851,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3007, + "id": 3161, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2977, - "src": "4041:12:24", + "referencedDeclaration": 3131, + "src": "4041:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4023:30:24", + "src": "4023:30:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3009, + "id": 3163, "nodeType": "ExpressionStatement", - "src": "4023:30:24" + "src": "4023:30:25" }, { "eventCall": { @@ -10882,14 +10882,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3012, + "id": 3166, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4085:1:24", + "src": "4085:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10905,20 +10905,20 @@ "typeString": "int_const 0" } ], - "id": 3011, + "id": 3165, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4077:7:24", + "src": "4077:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3013, + "id": 3167, "isConstant": false, "isLValue": false, "isPure": true, @@ -10926,7 +10926,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4077:10:24", + "src": "4077:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10934,12 +10934,12 @@ }, { "argumentTypes": null, - "id": 3014, + "id": 3168, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2899, - "src": "4089:5:24", + "referencedDeclaration": 3053, + "src": "4089:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10947,12 +10947,12 @@ }, { "argumentTypes": null, - "id": 3015, + "id": 3169, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2977, - "src": "4096:12:24", + "referencedDeclaration": 3131, + "src": "4096:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10974,18 +10974,18 @@ "typeString": "uint256" } ], - "id": 3010, + "id": 3164, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2876, - "src": "4068:8:24", + "referencedDeclaration": 3030, + "src": "4068:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3016, + "id": 3170, "isConstant": false, "isLValue": false, "isPure": false, @@ -10993,20 +10993,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4068:41:24", + "src": "4068:41:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3017, + "id": 3171, "nodeType": "EmitStatement", - "src": "4063:46:24" + "src": "4063:46:25" } ] }, "documentation": null, - "id": 3019, + "id": 3173, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -11014,29 +11014,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2988, + "id": 3142, "nodeType": "ParameterList", "parameters": [], - "src": "3927:2:24" + "src": "3927:2:25" }, "payable": false, "returnParameters": { - "id": 2989, + "id": 3143, "nodeType": "ParameterList", "parameters": [], - "src": "3937:0:24" + "src": "3937:0:25" }, - "scope": 3261, - "src": "3916:200:24", + "scope": 3415, + "src": "3916:200:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3033, + "id": 3187, "nodeType": "Block", - "src": "4353:62:24", + "src": "4353:62:25", "statements": [ { "expression": { @@ -11046,32 +11046,32 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3026, + "id": 3180, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "4387:8:24", + "referencedDeclaration": 3135, + "src": "4387:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3030, + "id": 3184, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 3028, + "id": 3182, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4404:1:24", + "src": "4404:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11087,20 +11087,20 @@ "typeString": "int_const 0" } ], - "id": 3027, + "id": 3181, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4396:7:24", + "src": "4396:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3029, + "id": 3183, "isConstant": false, "isLValue": false, "isPure": true, @@ -11108,7 +11108,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4396:10:24", + "src": "4396:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11119,7 +11119,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4387:20:24", + "src": "4387:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11135,32 +11135,32 @@ ], "expression": { "argumentTypes": null, - "id": 3024, + "id": 3178, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2977, - "src": "4370:12:24", + "referencedDeclaration": 3131, + "src": "4370:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3025, + "id": 3179, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2767, - "src": "4370:16:24", + "referencedDeclaration": 2921, + "src": "4370:16:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3031, + "id": 3185, "isConstant": false, "isLValue": false, "isPure": false, @@ -11168,21 +11168,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4370:38:24", + "src": "4370:38:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3023, - "id": 3032, + "functionReturnParameters": 3177, + "id": 3186, "nodeType": "Return", - "src": "4363:45:24" + "src": "4363:45:25" } ] }, "documentation": null, - "id": 3034, + "id": 3188, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11190,23 +11190,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3020, + "id": 3174, "nodeType": "ParameterList", "parameters": [], - "src": "4323:2:24" + "src": "4323:2:25" }, "payable": false, "returnParameters": { - "id": 3023, + "id": 3177, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3022, + "id": 3176, "name": "", "nodeType": "VariableDeclaration", - "scope": 3034, - "src": "4347:4:24", + "scope": 3188, + "src": "4347:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11214,10 +11214,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3021, + "id": 3175, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4347:4:24", + "src": "4347:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11227,45 +11227,45 @@ "visibility": "internal" } ], - "src": "4346:6:24" + "src": "4346:6:25" }, - "scope": 3261, - "src": "4303:112:24", + "scope": 3415, + "src": "4303:112:25", "stateMutability": "view", - "superFunction": 2823, + "superFunction": 2977, "visibility": "public" }, { "body": { - "id": 3045, + "id": 3199, "nodeType": "Block", - "src": "4710:44:24", + "src": "4710:44:25", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3041, + "id": 3195, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "4727:8:24", + "referencedDeclaration": 3135, + "src": "4727:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3043, + "id": 3197, "indexExpression": { "argumentTypes": null, - "id": 3042, + "id": 3196, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3036, - "src": "4736:10:24", + "referencedDeclaration": 3190, + "src": "4736:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11276,21 +11276,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4727:20:24", + "src": "4727:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3040, - "id": 3044, + "functionReturnParameters": 3194, + "id": 3198, "nodeType": "Return", - "src": "4720:27:24" + "src": "4720:27:25" } ] }, "documentation": null, - "id": 3046, + "id": 3200, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11298,16 +11298,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3037, + "id": 3191, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3036, + "id": 3190, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3046, - "src": "4655:18:24", + "scope": 3200, + "src": "4655:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11315,10 +11315,10 @@ "typeString": "address" }, "typeName": { - "id": 3035, + "id": 3189, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4655:7:24", + "src": "4655:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11328,20 +11328,20 @@ "visibility": "internal" } ], - "src": "4654:20:24" + "src": "4654:20:25" }, "payable": false, "returnParameters": { - "id": 3040, + "id": 3194, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3039, + "id": 3193, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3046, - "src": "4696:12:24", + "scope": 3200, + "src": "4696:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11349,10 +11349,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3038, + "id": 3192, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4696:4:24", + "src": "4696:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11362,24 +11362,24 @@ "visibility": "internal" } ], - "src": "4695:14:24" + "src": "4695:14:25" }, - "scope": 3261, - "src": "4636:118:24", + "scope": 3415, + "src": "4636:118:25", "stateMutability": "view", - "superFunction": 2830, + "superFunction": 2984, "visibility": "public" }, { "body": { - "id": 3088, + "id": 3242, "nodeType": "Block", - "src": "5170:189:24", + "src": "5170:189:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 3066, + "id": 3220, "isConstant": false, "isLValue": false, "isPure": false, @@ -11388,34 +11388,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3055, + "id": 3209, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "5180:8:24", + "referencedDeclaration": 3135, + "src": "5180:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3058, + "id": 3212, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3056, + "id": 3210, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5189:3:24", + "referencedDeclaration": 4491, + "src": "5189:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3057, + "id": 3211, "isConstant": false, "isLValue": false, "isPure": false, @@ -11423,7 +11423,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5189:10:24", + "src": "5189:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11434,7 +11434,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5180:20:24", + "src": "5180:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11447,12 +11447,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3064, + "id": 3218, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3050, - "src": "5228:6:24", + "referencedDeclaration": 3204, + "src": "5228:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11470,34 +11470,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3059, + "id": 3213, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "5203:8:24", + "referencedDeclaration": 3135, + "src": "5203:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3062, + "id": 3216, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3060, + "id": 3214, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5212:3:24", + "referencedDeclaration": 4491, + "src": "5212:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3061, + "id": 3215, "isConstant": false, "isLValue": false, "isPure": false, @@ -11505,7 +11505,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5212:10:24", + "src": "5212:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11516,27 +11516,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5203:20:24", + "src": "5203:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3063, + "id": 3217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2767, - "src": "5203:24:24", + "referencedDeclaration": 2921, + "src": "5203:24:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3065, + "id": 3219, "isConstant": false, "isLValue": false, "isPure": false, @@ -11544,26 +11544,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5203:32:24", + "src": "5203:32:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5180:55:24", + "src": "5180:55:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3067, + "id": 3221, "nodeType": "ExpressionStatement", - "src": "5180:55:24" + "src": "5180:55:25" }, { "expression": { "argumentTypes": null, - "id": 3077, + "id": 3231, "isConstant": false, "isLValue": false, "isPure": false, @@ -11572,26 +11572,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3068, + "id": 3222, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "5245:8:24", + "referencedDeclaration": 3135, + "src": "5245:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3070, + "id": 3224, "indexExpression": { "argumentTypes": null, - "id": 3069, + "id": 3223, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3048, - "src": "5254:2:24", + "referencedDeclaration": 3202, + "src": "5254:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11602,7 +11602,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5245:12:24", + "src": "5245:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11615,12 +11615,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3075, + "id": 3229, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3050, - "src": "5277:6:24", + "referencedDeclaration": 3204, + "src": "5277:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11638,26 +11638,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3071, + "id": 3225, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "5260:8:24", + "referencedDeclaration": 3135, + "src": "5260:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3073, + "id": 3227, "indexExpression": { "argumentTypes": null, - "id": 3072, + "id": 3226, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3048, - "src": "5269:2:24", + "referencedDeclaration": 3202, + "src": "5269:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11668,27 +11668,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5260:12:24", + "src": "5260:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3074, + "id": 3228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2745, - "src": "5260:16:24", + "referencedDeclaration": 2899, + "src": "5260:16:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3076, + "id": 3230, "isConstant": false, "isLValue": false, "isPure": false, @@ -11696,21 +11696,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5260:24:24", + "src": "5260:24:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5245:39:24", + "src": "5245:39:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3078, + "id": 3232, "nodeType": "ExpressionStatement", - "src": "5245:39:24" + "src": "5245:39:25" }, { "eventCall": { @@ -11720,18 +11720,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3080, + "id": 3234, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5308:3:24", + "referencedDeclaration": 4491, + "src": "5308:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3081, + "id": 3235, "isConstant": false, "isLValue": false, "isPure": false, @@ -11739,7 +11739,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5308:10:24", + "src": "5308:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11747,12 +11747,12 @@ }, { "argumentTypes": null, - "id": 3082, + "id": 3236, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3048, - "src": "5320:2:24", + "referencedDeclaration": 3202, + "src": "5320:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11760,12 +11760,12 @@ }, { "argumentTypes": null, - "id": 3083, + "id": 3237, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3050, - "src": "5324:6:24", + "referencedDeclaration": 3204, + "src": "5324:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11787,18 +11787,18 @@ "typeString": "uint256" } ], - "id": 3079, + "id": 3233, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2876, - "src": "5299:8:24", + "referencedDeclaration": 3030, + "src": "5299:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3084, + "id": 3238, "isConstant": false, "isLValue": false, "isPure": false, @@ -11806,28 +11806,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5299:32:24", + "src": "5299:32:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3085, + "id": 3239, "nodeType": "EmitStatement", - "src": "5294:37:24" + "src": "5294:37:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3086, + "id": 3240, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5348:4:24", + "src": "5348:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11835,15 +11835,15 @@ }, "value": "true" }, - "functionReturnParameters": 3054, - "id": 3087, + "functionReturnParameters": 3208, + "id": 3241, "nodeType": "Return", - "src": "5341:11:24" + "src": "5341:11:25" } ] }, "documentation": null, - "id": 3089, + "id": 3243, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -11851,16 +11851,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3051, + "id": 3205, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3048, + "id": 3202, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3089, - "src": "5115:10:24", + "scope": 3243, + "src": "5115:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11868,10 +11868,10 @@ "typeString": "address" }, "typeName": { - "id": 3047, + "id": 3201, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5115:7:24", + "src": "5115:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11882,11 +11882,11 @@ }, { "constant": false, - "id": 3050, + "id": 3204, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3089, - "src": "5127:11:24", + "scope": 3243, + "src": "5127:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11894,10 +11894,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3049, + "id": 3203, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5127:4:24", + "src": "5127:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11907,20 +11907,20 @@ "visibility": "internal" } ], - "src": "5114:25:24" + "src": "5114:25:25" }, "payable": false, "returnParameters": { - "id": 3054, + "id": 3208, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3053, + "id": 3207, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3089, - "src": "5156:12:24", + "scope": 3243, + "src": "5156:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11928,10 +11928,10 @@ "typeString": "bool" }, "typeName": { - "id": 3052, + "id": 3206, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5156:4:24", + "src": "5156:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11941,24 +11941,24 @@ "visibility": "internal" } ], - "src": "5155:14:24" + "src": "5155:14:25" }, - "scope": 3261, - "src": "5097:262:24", + "scope": 3415, + "src": "5097:262:25", "stateMutability": "nonpayable", - "superFunction": 2848, + "superFunction": 3002, "visibility": "public" }, { "body": { - "id": 3116, + "id": 3270, "nodeType": "Block", - "src": "5942:127:24", + "src": "5942:127:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 3105, + "id": 3259, "isConstant": false, "isLValue": false, "isPure": false, @@ -11969,34 +11969,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3098, + "id": 3252, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2987, - "src": "5952:7:24", + "referencedDeclaration": 3141, + "src": "5952:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3102, + "id": 3256, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3099, + "id": 3253, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5960:3:24", + "referencedDeclaration": 4491, + "src": "5960:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3100, + "id": 3254, "isConstant": false, "isLValue": false, "isPure": false, @@ -12004,7 +12004,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5960:10:24", + "src": "5960:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12015,21 +12015,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5952:19:24", + "src": "5952:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3103, + "id": 3257, "indexExpression": { "argumentTypes": null, - "id": 3101, + "id": 3255, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "5972:7:24", + "referencedDeclaration": 3245, + "src": "5972:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12040,7 +12040,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5952:28:24", + "src": "5952:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12050,26 +12050,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3104, + "id": 3258, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3093, - "src": "5983:6:24", + "referencedDeclaration": 3247, + "src": "5983:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5952:37:24", + "src": "5952:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3106, + "id": 3260, "nodeType": "ExpressionStatement", - "src": "5952:37:24" + "src": "5952:37:25" }, { "eventCall": { @@ -12079,18 +12079,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3108, + "id": 3262, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6013:3:24", + "referencedDeclaration": 4491, + "src": "6013:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3109, + "id": 3263, "isConstant": false, "isLValue": false, "isPure": false, @@ -12098,7 +12098,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6013:10:24", + "src": "6013:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12106,12 +12106,12 @@ }, { "argumentTypes": null, - "id": 3110, + "id": 3264, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "6025:7:24", + "referencedDeclaration": 3245, + "src": "6025:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12119,12 +12119,12 @@ }, { "argumentTypes": null, - "id": 3111, + "id": 3265, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3093, - "src": "6034:6:24", + "referencedDeclaration": 3247, + "src": "6034:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12146,18 +12146,18 @@ "typeString": "uint256" } ], - "id": 3107, + "id": 3261, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2884, - "src": "6004:8:24", + "referencedDeclaration": 3038, + "src": "6004:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3112, + "id": 3266, "isConstant": false, "isLValue": false, "isPure": false, @@ -12165,28 +12165,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6004:37:24", + "src": "6004:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3113, + "id": 3267, "nodeType": "EmitStatement", - "src": "5999:42:24" + "src": "5999:42:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3114, + "id": 3268, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6058:4:24", + "src": "6058:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12194,15 +12194,15 @@ }, "value": "true" }, - "functionReturnParameters": 3097, - "id": 3115, + "functionReturnParameters": 3251, + "id": 3269, "nodeType": "Return", - "src": "6051:11:24" + "src": "6051:11:25" } ] }, "documentation": null, - "id": 3117, + "id": 3271, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12210,16 +12210,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3094, + "id": 3248, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3091, + "id": 3245, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3117, - "src": "5882:15:24", + "scope": 3271, + "src": "5882:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12227,10 +12227,10 @@ "typeString": "address" }, "typeName": { - "id": 3090, + "id": 3244, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5882:7:24", + "src": "5882:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12241,11 +12241,11 @@ }, { "constant": false, - "id": 3093, + "id": 3247, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3117, - "src": "5899:11:24", + "scope": 3271, + "src": "5899:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12253,10 +12253,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3092, + "id": 3246, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5899:4:24", + "src": "5899:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12266,20 +12266,20 @@ "visibility": "internal" } ], - "src": "5881:30:24" + "src": "5881:30:25" }, "payable": false, "returnParameters": { - "id": 3097, + "id": 3251, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3096, + "id": 3250, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3117, - "src": "5928:12:24", + "scope": 3271, + "src": "5928:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12287,10 +12287,10 @@ "typeString": "bool" }, "typeName": { - "id": 3095, + "id": 3249, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5928:4:24", + "src": "5928:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12300,24 +12300,24 @@ "visibility": "internal" } ], - "src": "5927:14:24" + "src": "5927:14:25" }, - "scope": 3261, - "src": "5865:204:24", + "scope": 3415, + "src": "5865:204:25", "stateMutability": "nonpayable", - "superFunction": 2857, + "superFunction": 3011, "visibility": "public" }, { "body": { - "id": 3175, + "id": 3329, "nodeType": "Block", - "src": "6692:246:24", + "src": "6692:246:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 3137, + "id": 3291, "isConstant": false, "isLValue": false, "isPure": false, @@ -12326,26 +12326,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3128, + "id": 3282, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "6702:8:24", + "referencedDeclaration": 3135, + "src": "6702:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3130, + "id": 3284, "indexExpression": { "argumentTypes": null, - "id": 3129, + "id": 3283, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3119, - "src": "6711:4:24", + "referencedDeclaration": 3273, + "src": "6711:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12356,7 +12356,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6702:14:24", + "src": "6702:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12369,12 +12369,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3135, + "id": 3289, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3123, - "src": "6738:6:24", + "referencedDeclaration": 3277, + "src": "6738:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12392,26 +12392,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3131, + "id": 3285, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "6719:8:24", + "referencedDeclaration": 3135, + "src": "6719:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3133, + "id": 3287, "indexExpression": { "argumentTypes": null, - "id": 3132, + "id": 3286, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3119, - "src": "6728:4:24", + "referencedDeclaration": 3273, + "src": "6728:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12422,27 +12422,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6719:14:24", + "src": "6719:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3134, + "id": 3288, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2767, - "src": "6719:18:24", + "referencedDeclaration": 2921, + "src": "6719:18:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3136, + "id": 3290, "isConstant": false, "isLValue": false, "isPure": false, @@ -12450,26 +12450,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6719:26:24", + "src": "6719:26:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6702:43:24", + "src": "6702:43:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3138, + "id": 3292, "nodeType": "ExpressionStatement", - "src": "6702:43:24" + "src": "6702:43:25" }, { "expression": { "argumentTypes": null, - "id": 3154, + "id": 3308, "isConstant": false, "isLValue": false, "isPure": false, @@ -12480,26 +12480,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3139, + "id": 3293, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2987, - "src": "6755:7:24", + "referencedDeclaration": 3141, + "src": "6755:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3143, + "id": 3297, "indexExpression": { "argumentTypes": null, - "id": 3140, + "id": 3294, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3119, - "src": "6763:4:24", + "referencedDeclaration": 3273, + "src": "6763:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12510,29 +12510,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6755:13:24", + "src": "6755:13:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3144, + "id": 3298, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3141, + "id": 3295, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6769:3:24", + "referencedDeclaration": 4491, + "src": "6769:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3142, + "id": 3296, "isConstant": false, "isLValue": false, "isPure": false, @@ -12540,7 +12540,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6769:10:24", + "src": "6769:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12551,7 +12551,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6755:25:24", + "src": "6755:25:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12564,12 +12564,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3152, + "id": 3306, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3123, - "src": "6813:6:24", + "referencedDeclaration": 3277, + "src": "6813:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12589,26 +12589,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3145, + "id": 3299, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2987, - "src": "6783:7:24", + "referencedDeclaration": 3141, + "src": "6783:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3147, + "id": 3301, "indexExpression": { "argumentTypes": null, - "id": 3146, + "id": 3300, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3119, - "src": "6791:4:24", + "referencedDeclaration": 3273, + "src": "6791:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12619,29 +12619,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6783:13:24", + "src": "6783:13:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3150, + "id": 3304, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3148, + "id": 3302, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6797:3:24", + "referencedDeclaration": 4491, + "src": "6797:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3149, + "id": 3303, "isConstant": false, "isLValue": false, "isPure": false, @@ -12649,7 +12649,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6797:10:24", + "src": "6797:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12660,27 +12660,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6783:25:24", + "src": "6783:25:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3151, + "id": 3305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2767, - "src": "6783:29:24", + "referencedDeclaration": 2921, + "src": "6783:29:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3153, + "id": 3307, "isConstant": false, "isLValue": false, "isPure": false, @@ -12688,26 +12688,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6783:37:24", + "src": "6783:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6755:65:24", + "src": "6755:65:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3155, + "id": 3309, "nodeType": "ExpressionStatement", - "src": "6755:65:24" + "src": "6755:65:25" }, { "expression": { "argumentTypes": null, - "id": 3165, + "id": 3319, "isConstant": false, "isLValue": false, "isPure": false, @@ -12716,26 +12716,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3156, + "id": 3310, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "6830:8:24", + "referencedDeclaration": 3135, + "src": "6830:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3158, + "id": 3312, "indexExpression": { "argumentTypes": null, - "id": 3157, + "id": 3311, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "6839:2:24", + "referencedDeclaration": 3275, + "src": "6839:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12746,7 +12746,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6830:12:24", + "src": "6830:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12759,12 +12759,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3163, + "id": 3317, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3123, - "src": "6862:6:24", + "referencedDeclaration": 3277, + "src": "6862:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12782,26 +12782,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3159, + "id": 3313, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2981, - "src": "6845:8:24", + "referencedDeclaration": 3135, + "src": "6845:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3161, + "id": 3315, "indexExpression": { "argumentTypes": null, - "id": 3160, + "id": 3314, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "6854:2:24", + "referencedDeclaration": 3275, + "src": "6854:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12812,27 +12812,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6845:12:24", + "src": "6845:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3162, + "id": 3316, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2745, - "src": "6845:16:24", + "referencedDeclaration": 2899, + "src": "6845:16:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3164, + "id": 3318, "isConstant": false, "isLValue": false, "isPure": false, @@ -12840,21 +12840,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6845:24:24", + "src": "6845:24:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6830:39:24", + "src": "6830:39:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3166, + "id": 3320, "nodeType": "ExpressionStatement", - "src": "6830:39:24" + "src": "6830:39:25" }, { "eventCall": { @@ -12862,12 +12862,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3168, + "id": 3322, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3119, - "src": "6893:4:24", + "referencedDeclaration": 3273, + "src": "6893:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12875,12 +12875,12 @@ }, { "argumentTypes": null, - "id": 3169, + "id": 3323, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "6899:2:24", + "referencedDeclaration": 3275, + "src": "6899:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12888,12 +12888,12 @@ }, { "argumentTypes": null, - "id": 3170, + "id": 3324, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3123, - "src": "6903:6:24", + "referencedDeclaration": 3277, + "src": "6903:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12915,18 +12915,18 @@ "typeString": "uint256" } ], - "id": 3167, + "id": 3321, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2876, - "src": "6884:8:24", + "referencedDeclaration": 3030, + "src": "6884:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3171, + "id": 3325, "isConstant": false, "isLValue": false, "isPure": false, @@ -12934,28 +12934,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6884:26:24", + "src": "6884:26:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3172, + "id": 3326, "nodeType": "EmitStatement", - "src": "6879:31:24" + "src": "6879:31:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3173, + "id": 3327, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6927:4:24", + "src": "6927:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12963,15 +12963,15 @@ }, "value": "true" }, - "functionReturnParameters": 3127, - "id": 3174, + "functionReturnParameters": 3281, + "id": 3328, "nodeType": "Return", - "src": "6920:11:24" + "src": "6920:11:25" } ] }, "documentation": null, - "id": 3176, + "id": 3330, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12979,16 +12979,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3124, + "id": 3278, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3119, + "id": 3273, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3176, - "src": "6623:12:24", + "scope": 3330, + "src": "6623:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12996,10 +12996,10 @@ "typeString": "address" }, "typeName": { - "id": 3118, + "id": 3272, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6623:7:24", + "src": "6623:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13010,11 +13010,11 @@ }, { "constant": false, - "id": 3121, + "id": 3275, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3176, - "src": "6637:10:24", + "scope": 3330, + "src": "6637:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13022,10 +13022,10 @@ "typeString": "address" }, "typeName": { - "id": 3120, + "id": 3274, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6637:7:24", + "src": "6637:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13036,11 +13036,11 @@ }, { "constant": false, - "id": 3123, + "id": 3277, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3176, - "src": "6649:11:24", + "scope": 3330, + "src": "6649:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13048,10 +13048,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3122, + "id": 3276, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6649:4:24", + "src": "6649:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13061,20 +13061,20 @@ "visibility": "internal" } ], - "src": "6622:39:24" + "src": "6622:39:25" }, "payable": false, "returnParameters": { - "id": 3127, + "id": 3281, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3126, + "id": 3280, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3176, - "src": "6678:12:24", + "scope": 3330, + "src": "6678:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13082,10 +13082,10 @@ "typeString": "bool" }, "typeName": { - "id": 3125, + "id": 3279, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6678:4:24", + "src": "6678:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13095,19 +13095,19 @@ "visibility": "internal" } ], - "src": "6677:14:24" + "src": "6677:14:25" }, - "scope": 3261, - "src": "6601:337:24", + "scope": 3415, + "src": "6601:337:25", "stateMutability": "nonpayable", - "superFunction": 2868, + "superFunction": 3022, "visibility": "public" }, { "body": { - "id": 3191, + "id": 3345, "nodeType": "Block", - "src": "7312:52:24", + "src": "7312:52:25", "statements": [ { "expression": { @@ -13116,26 +13116,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3185, + "id": 3339, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2987, - "src": "7329:7:24", + "referencedDeclaration": 3141, + "src": "7329:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3187, + "id": 3341, "indexExpression": { "argumentTypes": null, - "id": 3186, + "id": 3340, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3178, - "src": "7337:10:24", + "referencedDeclaration": 3332, + "src": "7337:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13146,21 +13146,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7329:19:24", + "src": "7329:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3189, + "id": 3343, "indexExpression": { "argumentTypes": null, - "id": 3188, + "id": 3342, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3180, - "src": "7349:7:24", + "referencedDeclaration": 3334, + "src": "7349:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13171,21 +13171,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7329:28:24", + "src": "7329:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3184, - "id": 3190, + "functionReturnParameters": 3338, + "id": 3344, "nodeType": "Return", - "src": "7322:35:24" + "src": "7322:35:25" } ] }, "documentation": null, - "id": 3192, + "id": 3346, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13193,16 +13193,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3181, + "id": 3335, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3178, + "id": 3332, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3192, - "src": "7238:18:24", + "scope": 3346, + "src": "7238:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13210,10 +13210,10 @@ "typeString": "address" }, "typeName": { - "id": 3177, + "id": 3331, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7238:7:24", + "src": "7238:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13224,11 +13224,11 @@ }, { "constant": false, - "id": 3180, + "id": 3334, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3192, - "src": "7258:15:24", + "scope": 3346, + "src": "7258:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13236,10 +13236,10 @@ "typeString": "address" }, "typeName": { - "id": 3179, + "id": 3333, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7258:7:24", + "src": "7258:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13249,20 +13249,20 @@ "visibility": "internal" } ], - "src": "7237:37:24" + "src": "7237:37:25" }, "payable": false, "returnParameters": { - "id": 3184, + "id": 3338, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3183, + "id": 3337, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3192, - "src": "7296:14:24", + "scope": 3346, + "src": "7296:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13270,10 +13270,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3182, + "id": 3336, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7296:4:24", + "src": "7296:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13283,24 +13283,24 @@ "visibility": "internal" } ], - "src": "7295:16:24" + "src": "7295:16:25" }, - "scope": 3261, - "src": "7219:145:24", + "scope": 3415, + "src": "7219:145:25", "stateMutability": "view", - "superFunction": 2839, + "superFunction": 2993, "visibility": "public" }, { "body": { - "id": 3232, + "id": 3386, "nodeType": "Block", - "src": "7820:216:24", + "src": "7820:216:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 3210, + "id": 3364, "isConstant": false, "isLValue": false, "isPure": false, @@ -13311,34 +13311,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3203, + "id": 3357, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2987, - "src": "7830:7:24", + "referencedDeclaration": 3141, + "src": "7830:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3207, + "id": 3361, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3204, + "id": 3358, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7838:3:24", + "referencedDeclaration": 4491, + "src": "7838:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3205, + "id": 3359, "isConstant": false, "isLValue": false, "isPure": false, @@ -13346,7 +13346,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7838:10:24", + "src": "7838:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13357,21 +13357,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7830:19:24", + "src": "7830:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3208, + "id": 3362, "indexExpression": { "argumentTypes": null, - "id": 3206, + "id": 3360, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3194, - "src": "7850:7:24", + "referencedDeclaration": 3348, + "src": "7850:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13382,7 +13382,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7830:28:24", + "src": "7830:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13392,26 +13392,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3209, + "id": 3363, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3196, - "src": "7861:6:24", + "referencedDeclaration": 3350, + "src": "7861:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7830:37:24", + "src": "7830:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3211, + "id": 3365, "nodeType": "ExpressionStatement", - "src": "7830:37:24" + "src": "7830:37:25" }, { "eventCall": { @@ -13421,18 +13421,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3213, + "id": 3367, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7891:3:24", + "referencedDeclaration": 4491, + "src": "7891:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3214, + "id": 3368, "isConstant": false, "isLValue": false, "isPure": false, @@ -13440,7 +13440,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7891:10:24", + "src": "7891:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13448,12 +13448,12 @@ }, { "argumentTypes": null, - "id": 3215, + "id": 3369, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3194, - "src": "7903:7:24", + "referencedDeclaration": 3348, + "src": "7903:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13461,12 +13461,12 @@ }, { "argumentTypes": null, - "id": 3216, + "id": 3370, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3196, - "src": "7912:6:24", + "referencedDeclaration": 3350, + "src": "7912:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13488,18 +13488,18 @@ "typeString": "uint256" } ], - "id": 3212, + "id": 3366, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2884, - "src": "7882:8:24", + "referencedDeclaration": 3038, + "src": "7882:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3217, + "id": 3371, "isConstant": false, "isLValue": false, "isPure": false, @@ -13507,15 +13507,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7882:37:24", + "src": "7882:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3218, + "id": 3372, "nodeType": "EmitStatement", - "src": "7877:42:24" + "src": "7877:42:25" }, { "expression": { @@ -13525,18 +13525,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3223, + "id": 3377, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7977:3:24", + "referencedDeclaration": 4491, + "src": "7977:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3224, + "id": 3378, "isConstant": false, "isLValue": false, "isPure": false, @@ -13544,7 +13544,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7977:10:24", + "src": "7977:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13552,12 +13552,12 @@ }, { "argumentTypes": null, - "id": 3225, + "id": 3379, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3196, - "src": "7989:6:24", + "referencedDeclaration": 3350, + "src": "7989:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13565,25 +13565,25 @@ }, { "argumentTypes": null, - "id": 3226, + "id": 3380, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3897, - "src": "7997:4:24", + "referencedDeclaration": 4564, + "src": "7997:4:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_EmptyToken_$3261", + "typeIdentifier": "t_contract$_EmptyToken_$3415", "typeString": "contract EmptyToken" } }, { "argumentTypes": null, - "id": 3227, + "id": 3381, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3198, - "src": "8003:4:24", + "referencedDeclaration": 3352, + "src": "8003:4:25", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -13601,7 +13601,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_EmptyToken_$3261", + "typeIdentifier": "t_contract$_EmptyToken_$3415", "typeString": "contract EmptyToken" }, { @@ -13614,12 +13614,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3220, + "id": 3374, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3194, - "src": "7952:7:24", + "referencedDeclaration": 3348, + "src": "7952:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13633,18 +13633,18 @@ "typeString": "address" } ], - "id": 3219, + "id": 3373, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2897, - "src": "7929:22:24", + "referencedDeclaration": 3051, + "src": "7929:22:25", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$2897_$", + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3051_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, - "id": 3221, + "id": 3375, "isConstant": false, "isLValue": false, "isPure": false, @@ -13652,27 +13652,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7929:31:24", + "src": "7929:31:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$2897", + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3051", "typeString": "contract ApproveAndCallFallBack" } }, - "id": 3222, + "id": 3376, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", - "referencedDeclaration": 2896, - "src": "7929:47:24", + "referencedDeclaration": 3050, + "src": "7929:47:25", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,address,bytes memory) external" } }, - "id": 3228, + "id": 3382, "isConstant": false, "isLValue": false, "isPure": false, @@ -13680,28 +13680,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7929:79:24", + "src": "7929:79:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3229, + "id": 3383, "nodeType": "ExpressionStatement", - "src": "7929:79:24" + "src": "7929:79:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3230, + "id": 3384, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8025:4:24", + "src": "8025:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13709,15 +13709,15 @@ }, "value": "true" }, - "functionReturnParameters": 3202, - "id": 3231, + "functionReturnParameters": 3356, + "id": 3385, "nodeType": "Return", - "src": "8018:11:24" + "src": "8018:11:25" } ] }, "documentation": null, - "id": 3233, + "id": 3387, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -13725,16 +13725,16 @@ "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 3199, + "id": 3353, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3194, + "id": 3348, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "7748:15:24", + "scope": 3387, + "src": "7748:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13742,10 +13742,10 @@ "typeString": "address" }, "typeName": { - "id": 3193, + "id": 3347, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7748:7:24", + "src": "7748:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13756,11 +13756,11 @@ }, { "constant": false, - "id": 3196, + "id": 3350, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "7765:11:24", + "scope": 3387, + "src": "7765:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13768,10 +13768,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3195, + "id": 3349, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7765:4:24", + "src": "7765:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13782,11 +13782,11 @@ }, { "constant": false, - "id": 3198, + "id": 3352, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "7778:10:24", + "scope": 3387, + "src": "7778:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13794,10 +13794,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3197, + "id": 3351, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7778:5:24", + "src": "7778:5:25", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -13807,20 +13807,20 @@ "visibility": "internal" } ], - "src": "7747:42:24" + "src": "7747:42:25" }, "payable": false, "returnParameters": { - "id": 3202, + "id": 3356, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3201, + "id": 3355, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "7806:12:24", + "scope": 3387, + "src": "7806:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13828,10 +13828,10 @@ "typeString": "bool" }, "typeName": { - "id": 3200, + "id": 3354, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7806:4:24", + "src": "7806:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13841,19 +13841,19 @@ "visibility": "internal" } ], - "src": "7805:14:24" + "src": "7805:14:25" }, - "scope": 3261, - "src": "7724:312:24", + "scope": 3415, + "src": "7724:312:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3239, + "id": 3393, "nodeType": "Block", - "src": "8254:25:24", + "src": "8254:25:25", "statements": [ { "expression": { @@ -13861,21 +13861,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3236, + "id": 3390, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 3833, - 3834 + 4496, + 4497 ], - "referencedDeclaration": 3833, - "src": "8264:6:24", + "referencedDeclaration": 4496, + "src": "8264:6:25", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 3237, + "id": 3391, "isConstant": false, "isLValue": false, "isPure": false, @@ -13883,20 +13883,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8264:8:24", + "src": "8264:8:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3238, + "id": 3392, "nodeType": "ExpressionStatement", - "src": "8264:8:24" + "src": "8264:8:25" } ] }, "documentation": null, - "id": 3240, + "id": 3394, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -13904,29 +13904,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3234, + "id": 3388, "nodeType": "ParameterList", "parameters": [], - "src": "8236:2:24" + "src": "8236:2:25" }, "payable": true, "returnParameters": { - "id": 3235, + "id": 3389, "nodeType": "ParameterList", "parameters": [], - "src": "8254:0:24" + "src": "8254:0:25" }, - "scope": 3261, - "src": "8227:52:24", + "scope": 3415, + "src": "8227:52:25", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3259, + "id": 3413, "nodeType": "Block", - "src": "8617:76:24", + "src": "8617:76:25", "statements": [ { "expression": { @@ -13934,12 +13934,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3255, + "id": 3409, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2899, - "src": "8672:5:24", + "referencedDeclaration": 3053, + "src": "8672:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13947,12 +13947,12 @@ }, { "argumentTypes": null, - "id": 3256, + "id": 3410, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3244, - "src": "8679:6:24", + "referencedDeclaration": 3398, + "src": "8679:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13975,12 +13975,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3252, + "id": 3406, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3242, - "src": "8649:12:24", + "referencedDeclaration": 3396, + "src": "8649:12:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13994,18 +13994,18 @@ "typeString": "address" } ], - "id": 3251, + "id": 3405, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2885, - "src": "8634:14:24", + "referencedDeclaration": 3039, + "src": "8634:14:25", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$2885_$", + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3039_$", "typeString": "type(contract ERC20Interface)" } }, - "id": 3253, + "id": 3407, "isConstant": false, "isLValue": false, "isPure": false, @@ -14013,27 +14013,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8634:28:24", + "src": "8634:28:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$2885", + "typeIdentifier": "t_contract$_ERC20Interface_$3039", "typeString": "contract ERC20Interface" } }, - "id": 3254, + "id": 3408, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2848, - "src": "8634:37:24", + "referencedDeclaration": 3002, + "src": "8634:37:25", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 3257, + "id": 3411, "isConstant": false, "isLValue": false, "isPure": false, @@ -14041,58 +14041,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8634:52:24", + "src": "8634:52:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3250, - "id": 3258, + "functionReturnParameters": 3404, + "id": 3412, "nodeType": "Return", - "src": "8627:59:24" + "src": "8627:59:25" } ] }, "documentation": null, - "id": 3260, + "id": 3414, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3247, + "id": 3401, "modifierName": { "argumentTypes": null, - "id": 3246, + "id": 3400, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "8584:9:24", + "referencedDeclaration": 3081, + "src": "8584:9:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8584:9:24" + "src": "8584:9:25" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 3245, + "id": 3399, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3242, + "id": 3396, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3260, - "src": "8542:20:24", + "scope": 3414, + "src": "8542:20:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14100,10 +14100,10 @@ "typeString": "address" }, "typeName": { - "id": 3241, + "id": 3395, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8542:7:24", + "src": "8542:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14114,11 +14114,11 @@ }, { "constant": false, - "id": 3244, + "id": 3398, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3260, - "src": "8564:11:24", + "scope": 3414, + "src": "8564:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14126,10 +14126,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3243, + "id": 3397, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8564:4:24", + "src": "8564:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14139,20 +14139,20 @@ "visibility": "internal" } ], - "src": "8541:35:24" + "src": "8541:35:25" }, "payable": false, "returnParameters": { - "id": 3250, + "id": 3404, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3249, + "id": 3403, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3260, - "src": "8603:12:24", + "scope": 3414, + "src": "8603:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14160,10 +14160,10 @@ "typeString": "bool" }, "typeName": { - "id": 3248, + "id": 3402, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8603:4:24", + "src": "8603:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14173,26 +14173,33 @@ "visibility": "internal" } ], - "src": "8602:14:24" + "src": "8602:14:25" }, - "scope": 3261, - "src": "8511:182:24", + "scope": 3415, + "src": "8511:182:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3262, - "src": "3506:5189:24" + "scope": 3416, + "src": "3506:5189:25" } ], - "src": "0:8695:24" + "src": "0:8695:25" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, - "networks": {}, + "networks": { + "4": { + "events": {}, + "links": {}, + "address": "0x4860c376b078ad79c54452991dfa21d46791b0e5", + "transactionHash": "0x2a507536ff667f76bc9ec99f677eb4d7ba75abc00377f0ce6d849a31c29b2c2f" + } + }, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:50:29.721Z" + "updatedAt": "2018-09-26T08:56:03.737Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/Owned.json b/safe-contracts/build/contracts/test/Owned.json index f269c6d9..cf5dab3b 100644 --- a/safe-contracts/build/contracts/test/Owned.json +++ b/safe-contracts/build/contracts/test/Owned.json @@ -78,34 +78,34 @@ ], "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610424806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806379ba5097146100675780638da5cb5b1461007e578063d4ee1d90146100d5578063f2fde38b1461012c575b600080fd5b34801561007357600080fd5b5061007c61016f565b005b34801561008a57600080fd5b5061009361030e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610333565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b5061016d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610359565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101cb57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103b457600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582057ddc5cc13a1eca45f4149a4f2748fc00bc0fc8b38da47cbd54fabc1f1a3286f0029", "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806379ba5097146100675780638da5cb5b1461007e578063d4ee1d90146100d5578063f2fde38b1461012c575b600080fd5b34801561007357600080fd5b5061007c61016f565b005b34801561008a57600080fd5b5061009361030e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610333565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b5061016d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610359565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101cb57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103b457600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582057ddc5cc13a1eca45f4149a4f2748fc00bc0fc8b38da47cbd54fabc1f1a3286f0029", - "sourceMap": "2663:595:25:-;;;2817:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;2817:56:25;2856:10;2848:5;;:18;;;;;;;;;;;;;;;;;;2663:595;;;;;;", - "deployedSourceMap": "2663:595:25:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3065:191:25;;;;;;2684:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2684:20:25;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:25;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;3131:8;;;;;;;;;;;3117:22;;:10;:22;;;3109:31;;;;;;;;3183:8;;;;;;;;;;;3155:37;;3176:5;;;;;;;;;;;3155:37;;;;;;;;;;;;3210:8;;;;;;;;;;;3202:5;;:16;;;;;;;;;;;;;;;;;;3247:1;3228:8;;:21;;;;;;;;;;;;;;;;;;3065:191::o;2684:20::-;;;;;;;;;;;;;:::o;2710:23::-;;;;;;;;;;;;;:::o;2960:100::-;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;3044:9;3033:8;;:20;;;;;;;;;;;;;;;;;;2960:100;:::o", + "sourceMap": "2663:595:26:-;;;2817:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;2817:56:26;2856:10;2848:5;;:18;;;;;;;;;;;;;;;;;;2663:595;;;;;;", + "deployedSourceMap": "2663:595:26:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3065:191:26;;;;;;2684:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2684:20:26;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:26;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;3131:8;;;;;;;;;;;3117:22;;:10;:22;;;3109:31;;;;;;;;3183:8;;;;;;;;;;;3155:37;;3176:5;;;;;;;;;;;3155:37;;;;;;;;;;;;3210:8;;;;;;;;;;;3202:5;;:16;;;;;;;;;;;;;;;;;;3247:1;3228:8;;:21;;;;;;;;;;;;;;;;;;3065:191::o;2684:20::-;;;;;;;;;;;;;:::o;2710:23::-;;;;;;;;;;;;;:::o;2960:100::-;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;3044:9;3033:8;;:20;;;;;;;;;;;;;;;;;;2960:100;:::o", "source": "pragma solidity ^0.4.24;\n\n// ----------------------------------------------------------------------------\n// 'FIXED' 'Example Fixed Supply Token' token contract\n//\n// Symbol : FIXED\n// Name : Example Fixed Supply Token\n// Total supply: 1,000,000.000000000000000000\n// Decimals : 18\n//\n// Enjoy.\n//\n// (c) BokkyPooBah / Bok Consulting Pty Ltd 2018. The MIT Licence.\n// ----------------------------------------------------------------------------\n\n\n// ----------------------------------------------------------------------------\n// Safe maths\n// ----------------------------------------------------------------------------\nlibrary SafeMath {\n function add(uint a, uint b) internal pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n function sub(uint a, uint b) internal pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n function mul(uint a, uint b) internal pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n function div(uint a, uint b) internal pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC Token Standard #20 Interface\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n// ----------------------------------------------------------------------------\ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n\n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n\n// ----------------------------------------------------------------------------\n// Contract function to receive approval and execute function in one call\n//\n// Borrowed from MiniMeToken\n// ----------------------------------------------------------------------------\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n\n// ----------------------------------------------------------------------------\n// Owned contract\n// ----------------------------------------------------------------------------\ncontract Owned {\n address public owner;\n address public newOwner;\n\n event OwnershipTransferred(address indexed _from, address indexed _to);\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner {\n require(msg.sender == owner);\n _;\n }\n\n function transferOwnership(address _newOwner) public onlyOwner {\n newOwner = _newOwner;\n }\n function acceptOwnership() public {\n require(msg.sender == newOwner);\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n newOwner = address(0);\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and a\n// fixed supply\n// ----------------------------------------------------------------------------\ncontract TestToken is ERC20Interface, Owned {\n using SafeMath for uint;\n\n string public symbol;\n string public name;\n uint8 public decimals;\n uint _totalSupply;\n\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n\n\n // ------------------------------------------------------------------------\n // Constructor\n // ------------------------------------------------------------------------\n constructor() public {\n symbol = \"TKN\";\n name = \"Token Example\";\n decimals = 18;\n _totalSupply = 1000000 * 10**uint(decimals);\n balances[owner] = _totalSupply;\n emit Transfer(address(0), owner, _totalSupply);\n }\n\n\n // ------------------------------------------------------------------------\n // Total supply\n // ------------------------------------------------------------------------\n function totalSupply() public view returns (uint) {\n return _totalSupply.sub(balances[address(0)]);\n }\n\n\n // ------------------------------------------------------------------------\n // Get the token balance for account `tokenOwner`\n // ------------------------------------------------------------------------\n function balanceOf(address tokenOwner) public view returns (uint balance) {\n return balances[tokenOwner];\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer the balance from token owner's account to `to` account\n // - Owner's account must have sufficient balance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = balances[msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account\n //\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n // recommends that there are no checks for the approval double-spend attack\n // as this should be implemented in user interfaces \n // ------------------------------------------------------------------------\n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer `tokens` from the `from` account to the `to` account\n // \n // The calling account must already have sufficient tokens approve(...)-d\n // for spending from the `from` account and\n // - From account must have sufficient balance to transfer\n // - Spender must have sufficient allowance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = balances[from].sub(tokens);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Returns the amount of tokens approved by the owner that can be\n // transferred to the spender's account\n // ------------------------------------------------------------------------\n function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account. The `spender` contract function\n // `receiveApproval(...)` is then executed\n // ------------------------------------------------------------------------\n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Don't accept ETH\n // ------------------------------------------------------------------------\n function () public payable {\n revert();\n }\n\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return ERC20Interface(tokenAddress).transfer(owner, tokens);\n }\n}", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ - 3437 + 3591 ], "ERC20Interface": [ - 3425 + 3579 ], "Owned": [ - 3506 + 3660 ], "SafeMath": [ - 3358 + 3512 ], "TestToken": [ - 3813 + 3967 ] }, - "id": 3814, + "id": 3968, "nodeType": "SourceUnit", "nodes": [ { - "id": 3263, + "id": 3417, "literals": [ "solidity", "^", @@ -113,7 +113,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:24:26" }, { "baseContracts": [], @@ -121,35 +121,35 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 3358, + "id": 3512, "linearizedBaseContracts": [ - 3358 + 3512 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3284, + "id": 3438, "nodeType": "Block", - "src": "719:51:25", + "src": "719:51:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3276, + "id": 3430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3272, + "id": 3426, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "729:1:25", + "referencedDeclaration": 3424, + "src": "729:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -163,19 +163,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3275, + "id": 3429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3273, + "id": 3427, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "733:1:25", + "referencedDeclaration": 3419, + "src": "733:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -185,32 +185,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 3274, + "id": 3428, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3267, - "src": "737:1:25", + "referencedDeclaration": 3421, + "src": "737:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:5:25", + "src": "733:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "729:9:25", + "src": "729:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3277, + "id": 3431, "nodeType": "ExpressionStatement", - "src": "729:9:25" + "src": "729:9:26" }, { "expression": { @@ -222,19 +222,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3281, + "id": 3435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3279, + "id": 3433, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "756:1:25", + "referencedDeclaration": 3424, + "src": "756:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -244,18 +244,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 3280, + "id": 3434, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "761:1:25", + "referencedDeclaration": 3419, + "src": "761:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "756:6:25", + "src": "756:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -269,21 +269,21 @@ "typeString": "bool" } ], - "id": 3278, + "id": 3432, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "748:7:25", + "referencedDeclaration": 4494, + "src": "748:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3282, + "id": 3436, "isConstant": false, "isLValue": false, "isPure": false, @@ -291,20 +291,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:15:25", + "src": "748:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3283, + "id": 3437, "nodeType": "ExpressionStatement", - "src": "748:15:25" + "src": "748:15:26" } ] }, "documentation": null, - "id": 3285, + "id": 3439, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -312,16 +312,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 3268, + "id": 3422, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3265, + "id": 3419, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "672:6:25", + "scope": 3439, + "src": "672:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -329,10 +329,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3264, + "id": 3418, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "672:4:25", + "src": "672:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -343,11 +343,11 @@ }, { "constant": false, - "id": 3267, + "id": 3421, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "680:6:25", + "scope": 3439, + "src": "680:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -355,10 +355,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3266, + "id": 3420, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "680:4:25", + "src": "680:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -368,20 +368,20 @@ "visibility": "internal" } ], - "src": "671:16:25" + "src": "671:16:26" }, "payable": false, "returnParameters": { - "id": 3271, + "id": 3425, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3270, + "id": 3424, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "711:6:25", + "scope": 3439, + "src": "711:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -389,10 +389,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3269, + "id": 3423, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "711:4:25", + "src": "711:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -402,19 +402,19 @@ "visibility": "internal" } ], - "src": "710:8:25" + "src": "710:8:26" }, - "scope": 3358, - "src": "659:111:25", + "scope": 3512, + "src": "659:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3306, + "id": 3460, "nodeType": "Block", - "src": "835:51:25", + "src": "835:51:26", "statements": [ { "expression": { @@ -426,19 +426,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3297, + "id": 3451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3295, + "id": 3449, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "853:1:25", + "referencedDeclaration": 3443, + "src": "853:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -448,18 +448,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 3296, + "id": 3450, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "858:1:25", + "referencedDeclaration": 3441, + "src": "858:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "853:6:25", + "src": "853:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -473,21 +473,21 @@ "typeString": "bool" } ], - "id": 3294, + "id": 3448, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "845:7:25", + "referencedDeclaration": 4494, + "src": "845:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3298, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, @@ -495,32 +495,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:15:25", + "src": "845:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3299, + "id": 3453, "nodeType": "ExpressionStatement", - "src": "845:15:25" + "src": "845:15:26" }, { "expression": { "argumentTypes": null, - "id": 3304, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3300, + "id": 3454, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3292, - "src": "870:1:25", + "referencedDeclaration": 3446, + "src": "870:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -534,19 +534,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3303, + "id": 3457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3301, + "id": 3455, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "874:1:25", + "referencedDeclaration": 3441, + "src": "874:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -556,37 +556,37 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 3302, + "id": 3456, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "878:1:25", + "referencedDeclaration": 3443, + "src": "878:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "874:5:25", + "src": "874:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "870:9:25", + "src": "870:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3305, + "id": 3459, "nodeType": "ExpressionStatement", - "src": "870:9:25" + "src": "870:9:26" } ] }, "documentation": null, - "id": 3307, + "id": 3461, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -594,16 +594,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 3290, + "id": 3444, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3287, + "id": 3441, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "788:6:25", + "scope": 3461, + "src": "788:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -611,10 +611,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3286, + "id": 3440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "788:4:25", + "src": "788:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -625,11 +625,11 @@ }, { "constant": false, - "id": 3289, + "id": 3443, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "796:6:25", + "scope": 3461, + "src": "796:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -637,10 +637,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3288, + "id": 3442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "796:4:25", + "src": "796:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -650,20 +650,20 @@ "visibility": "internal" } ], - "src": "787:16:25" + "src": "787:16:26" }, "payable": false, "returnParameters": { - "id": 3293, + "id": 3447, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3292, + "id": 3446, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "827:6:25", + "scope": 3461, + "src": "827:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -671,10 +671,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3291, + "id": 3445, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:25", + "src": "827:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -684,36 +684,36 @@ "visibility": "internal" } ], - "src": "826:8:25" + "src": "826:8:26" }, - "scope": 3358, - "src": "775:111:25", + "scope": 3512, + "src": "775:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3334, + "id": 3488, "nodeType": "Block", - "src": "951:65:25", + "src": "951:65:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3320, + "id": 3474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3316, + "id": 3470, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "961:1:25", + "referencedDeclaration": 3468, + "src": "961:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -727,19 +727,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3319, + "id": 3473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3317, + "id": 3471, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "965:1:25", + "referencedDeclaration": 3463, + "src": "965:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -749,32 +749,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 3318, + "id": 3472, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "969:1:25", + "referencedDeclaration": 3465, + "src": "969:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "965:5:25", + "src": "965:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "961:9:25", + "src": "961:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3321, + "id": 3475, "nodeType": "ExpressionStatement", - "src": "961:9:25" + "src": "961:9:26" }, { "expression": { @@ -786,7 +786,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3331, + "id": 3485, "isConstant": false, "isLValue": false, "isPure": false, @@ -797,19 +797,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3325, + "id": 3479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3323, + "id": 3477, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "988:1:25", + "referencedDeclaration": 3463, + "src": "988:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -820,14 +820,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3324, + "id": 3478, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "993:1:25", + "src": "993:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -835,7 +835,7 @@ }, "value": "0" }, - "src": "988:6:25", + "src": "988:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -849,7 +849,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3330, + "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, @@ -860,19 +860,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3328, + "id": 3482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3326, + "id": 3480, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "998:1:25", + "referencedDeclaration": 3468, + "src": "998:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -882,18 +882,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3327, + "id": 3481, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "1002:1:25", + "referencedDeclaration": 3463, + "src": "1002:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:5:25", + "src": "998:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -903,24 +903,24 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3329, + "id": 3483, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "1007:1:25", + "referencedDeclaration": 3465, + "src": "1007:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:25", + "src": "998:10:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "988:20:25", + "src": "988:20:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -934,21 +934,21 @@ "typeString": "bool" } ], - "id": 3322, + "id": 3476, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "980:7:25", + "referencedDeclaration": 4494, + "src": "980:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3332, + "id": 3486, "isConstant": false, "isLValue": false, "isPure": false, @@ -956,20 +956,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "980:29:25", + "src": "980:29:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3333, + "id": 3487, "nodeType": "ExpressionStatement", - "src": "980:29:25" + "src": "980:29:26" } ] }, "documentation": null, - "id": 3335, + "id": 3489, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -977,16 +977,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 3312, + "id": 3466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3309, + "id": 3463, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "904:6:25", + "scope": 3489, + "src": "904:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -994,10 +994,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3308, + "id": 3462, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "904:4:25", + "src": "904:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1008,11 +1008,11 @@ }, { "constant": false, - "id": 3311, + "id": 3465, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "912:6:25", + "scope": 3489, + "src": "912:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1020,10 +1020,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3310, + "id": 3464, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "912:4:25", + "src": "912:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1033,20 +1033,20 @@ "visibility": "internal" } ], - "src": "903:16:25" + "src": "903:16:26" }, "payable": false, "returnParameters": { - "id": 3315, + "id": 3469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3314, + "id": 3468, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "943:6:25", + "scope": 3489, + "src": "943:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1054,10 +1054,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3313, + "id": 3467, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "943:4:25", + "src": "943:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1067,19 +1067,19 @@ "visibility": "internal" } ], - "src": "942:8:25" + "src": "942:8:26" }, - "scope": 3358, - "src": "891:125:25", + "scope": 3512, + "src": "891:125:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3356, + "id": 3510, "nodeType": "Block", - "src": "1081:50:25", + "src": "1081:50:26", "statements": [ { "expression": { @@ -1091,19 +1091,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3347, + "id": 3501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3345, + "id": 3499, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1099:1:25", + "referencedDeclaration": 3493, + "src": "1099:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1114,14 +1114,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3346, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:1:25", + "src": "1103:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1129,7 +1129,7 @@ }, "value": "0" }, - "src": "1099:5:25", + "src": "1099:5:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1143,21 +1143,21 @@ "typeString": "bool" } ], - "id": 3344, + "id": 3498, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "1091:7:25", + "referencedDeclaration": 4494, + "src": "1091:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3348, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, @@ -1165,32 +1165,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:14:25", + "src": "1091:14:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3349, + "id": 3503, "nodeType": "ExpressionStatement", - "src": "1091:14:25" + "src": "1091:14:26" }, { "expression": { "argumentTypes": null, - "id": 3354, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3350, + "id": 3504, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3342, - "src": "1115:1:25", + "referencedDeclaration": 3496, + "src": "1115:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1204,19 +1204,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3353, + "id": 3507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3351, + "id": 3505, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "1119:1:25", + "referencedDeclaration": 3491, + "src": "1119:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1226,37 +1226,37 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3352, + "id": 3506, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1123:1:25", + "referencedDeclaration": 3493, + "src": "1123:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:5:25", + "src": "1119:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1115:9:25", + "src": "1115:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3355, + "id": 3509, "nodeType": "ExpressionStatement", - "src": "1115:9:25" + "src": "1115:9:26" } ] }, "documentation": null, - "id": 3357, + "id": 3511, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1264,16 +1264,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 3340, + "id": 3494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3337, + "id": 3491, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1034:6:25", + "scope": 3511, + "src": "1034:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1281,10 +1281,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3336, + "id": 3490, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1034:4:25", + "src": "1034:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1295,11 +1295,11 @@ }, { "constant": false, - "id": 3339, + "id": 3493, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1042:6:25", + "scope": 3511, + "src": "1042:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1307,10 +1307,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3338, + "id": 3492, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1042:4:25", + "src": "1042:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1320,20 +1320,20 @@ "visibility": "internal" } ], - "src": "1033:16:25" + "src": "1033:16:26" }, "payable": false, "returnParameters": { - "id": 3343, + "id": 3497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3342, + "id": 3496, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1073:6:25", + "scope": 3511, + "src": "1073:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1341,10 +1341,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3341, + "id": 3495, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1073:4:25", + "src": "1073:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1354,17 +1354,17 @@ "visibility": "internal" } ], - "src": "1072:8:25" + "src": "1072:8:26" }, - "scope": 3358, - "src": "1021:110:25", + "scope": 3512, + "src": "1021:110:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 3814, - "src": "636:497:25" + "scope": 3968, + "src": "636:497:26" }, { "baseContracts": [], @@ -1372,9 +1372,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3425, + "id": 3579, "linearizedBaseContracts": [ - 3425 + 3579 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", @@ -1382,7 +1382,7 @@ { "body": null, "documentation": null, - "id": 3363, + "id": 3517, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1390,23 +1390,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3359, + "id": 3513, "nodeType": "ParameterList", "parameters": [], - "src": "1445:2:25" + "src": "1445:2:26" }, "payable": false, "returnParameters": { - "id": 3362, + "id": 3516, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3361, + "id": 3515, "name": "", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "1473:4:25", + "scope": 3517, + "src": "1473:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1414,10 +1414,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3360, + "id": 3514, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1473:4:25", + "src": "1473:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1427,10 +1427,10 @@ "visibility": "internal" } ], - "src": "1472:6:25" + "src": "1472:6:26" }, - "scope": 3425, - "src": "1425:54:25", + "scope": 3579, + "src": "1425:54:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1438,7 +1438,7 @@ { "body": null, "documentation": null, - "id": 3370, + "id": 3524, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1446,16 +1446,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3366, + "id": 3520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3365, + "id": 3519, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1503:18:25", + "scope": 3524, + "src": "1503:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1463,10 +1463,10 @@ "typeString": "address" }, "typeName": { - "id": 3364, + "id": 3518, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1503:7:25", + "src": "1503:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1476,20 +1476,20 @@ "visibility": "internal" } ], - "src": "1502:20:25" + "src": "1502:20:26" }, "payable": false, "returnParameters": { - "id": 3369, + "id": 3523, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3368, + "id": 3522, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1548:12:25", + "scope": 3524, + "src": "1548:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1497,10 +1497,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3367, + "id": 3521, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:25", + "src": "1548:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1510,10 +1510,10 @@ "visibility": "internal" } ], - "src": "1547:14:25" + "src": "1547:14:26" }, - "scope": 3425, - "src": "1484:78:25", + "scope": 3579, + "src": "1484:78:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1521,7 +1521,7 @@ { "body": null, "documentation": null, - "id": 3379, + "id": 3533, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1529,16 +1529,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3375, + "id": 3529, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3372, + "id": 3526, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1586:18:25", + "scope": 3533, + "src": "1586:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1546,10 +1546,10 @@ "typeString": "address" }, "typeName": { - "id": 3371, + "id": 3525, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:25", + "src": "1586:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1560,11 +1560,11 @@ }, { "constant": false, - "id": 3374, + "id": 3528, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1606:15:25", + "scope": 3533, + "src": "1606:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1572,10 +1572,10 @@ "typeString": "address" }, "typeName": { - "id": 3373, + "id": 3527, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1606:7:25", + "src": "1606:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1585,20 +1585,20 @@ "visibility": "internal" } ], - "src": "1585:37:25" + "src": "1585:37:26" }, "payable": false, "returnParameters": { - "id": 3378, + "id": 3532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3377, + "id": 3531, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1648:14:25", + "scope": 3533, + "src": "1648:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1606,10 +1606,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3376, + "id": 3530, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1648:4:25", + "src": "1648:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1619,10 +1619,10 @@ "visibility": "internal" } ], - "src": "1647:16:25" + "src": "1647:16:26" }, - "scope": 3425, - "src": "1567:97:25", + "scope": 3579, + "src": "1567:97:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1630,7 +1630,7 @@ { "body": null, "documentation": null, - "id": 3388, + "id": 3542, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1638,16 +1638,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3384, + "id": 3538, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3381, + "id": 3535, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1687:10:25", + "scope": 3542, + "src": "1687:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1655,10 +1655,10 @@ "typeString": "address" }, "typeName": { - "id": 3380, + "id": 3534, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:25", + "src": "1687:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1669,11 +1669,11 @@ }, { "constant": false, - "id": 3383, + "id": 3537, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1699:11:25", + "scope": 3542, + "src": "1699:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1681,10 +1681,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3382, + "id": 3536, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:25", + "src": "1699:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1694,20 +1694,20 @@ "visibility": "internal" } ], - "src": "1686:25:25" + "src": "1686:25:26" }, "payable": false, "returnParameters": { - "id": 3387, + "id": 3541, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3386, + "id": 3540, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1728:12:25", + "scope": 3542, + "src": "1728:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1715,10 +1715,10 @@ "typeString": "bool" }, "typeName": { - "id": 3385, + "id": 3539, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1728:4:25", + "src": "1728:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1728,10 +1728,10 @@ "visibility": "internal" } ], - "src": "1727:14:25" + "src": "1727:14:26" }, - "scope": 3425, - "src": "1669:73:25", + "scope": 3579, + "src": "1669:73:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1739,7 +1739,7 @@ { "body": null, "documentation": null, - "id": 3397, + "id": 3551, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1747,16 +1747,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3393, + "id": 3547, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3390, + "id": 3544, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1764:15:25", + "scope": 3551, + "src": "1764:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1764,10 +1764,10 @@ "typeString": "address" }, "typeName": { - "id": 3389, + "id": 3543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:25", + "src": "1764:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1778,11 +1778,11 @@ }, { "constant": false, - "id": 3392, + "id": 3546, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1781:11:25", + "scope": 3551, + "src": "1781:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1790,10 +1790,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3391, + "id": 3545, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:25", + "src": "1781:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1803,20 +1803,20 @@ "visibility": "internal" } ], - "src": "1763:30:25" + "src": "1763:30:26" }, "payable": false, "returnParameters": { - "id": 3396, + "id": 3550, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3395, + "id": 3549, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1810:12:25", + "scope": 3551, + "src": "1810:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1824,10 +1824,10 @@ "typeString": "bool" }, "typeName": { - "id": 3394, + "id": 3548, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1810:4:25", + "src": "1810:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1837,10 +1837,10 @@ "visibility": "internal" } ], - "src": "1809:14:25" + "src": "1809:14:26" }, - "scope": 3425, - "src": "1747:77:25", + "scope": 3579, + "src": "1747:77:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1848,7 +1848,7 @@ { "body": null, "documentation": null, - "id": 3408, + "id": 3562, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1856,16 +1856,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3404, + "id": 3558, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3399, + "id": 3553, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1851:12:25", + "scope": 3562, + "src": "1851:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1873,10 +1873,10 @@ "typeString": "address" }, "typeName": { - "id": 3398, + "id": 3552, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1851:7:25", + "src": "1851:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1887,11 +1887,11 @@ }, { "constant": false, - "id": 3401, + "id": 3555, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1865:10:25", + "scope": 3562, + "src": "1865:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1899,10 +1899,10 @@ "typeString": "address" }, "typeName": { - "id": 3400, + "id": 3554, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:25", + "src": "1865:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1913,11 +1913,11 @@ }, { "constant": false, - "id": 3403, + "id": 3557, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1877:11:25", + "scope": 3562, + "src": "1877:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1925,10 +1925,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3402, + "id": 3556, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1877:4:25", + "src": "1877:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1938,20 +1938,20 @@ "visibility": "internal" } ], - "src": "1850:39:25" + "src": "1850:39:26" }, "payable": false, "returnParameters": { - "id": 3407, + "id": 3561, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3406, + "id": 3560, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1906:12:25", + "scope": 3562, + "src": "1906:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1959,10 +1959,10 @@ "typeString": "bool" }, "typeName": { - "id": 3405, + "id": 3559, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1906:4:25", + "src": "1906:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1972,10 +1972,10 @@ "visibility": "internal" } ], - "src": "1905:14:25" + "src": "1905:14:26" }, - "scope": 3425, - "src": "1829:91:25", + "scope": 3579, + "src": "1829:91:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1983,21 +1983,21 @@ { "anonymous": false, "documentation": null, - "id": 3416, + "id": 3570, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 3415, + "id": 3569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3410, + "id": 3564, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1941:20:25", + "scope": 3570, + "src": "1941:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2005,10 +2005,10 @@ "typeString": "address" }, "typeName": { - "id": 3409, + "id": 3563, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1941:7:25", + "src": "1941:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2019,12 +2019,12 @@ }, { "constant": false, - "id": 3412, + "id": 3566, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1963:18:25", + "scope": 3570, + "src": "1963:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2032,10 +2032,10 @@ "typeString": "address" }, "typeName": { - "id": 3411, + "id": 3565, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1963:7:25", + "src": "1963:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2046,12 +2046,12 @@ }, { "constant": false, - "id": 3414, + "id": 3568, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1983:11:25", + "scope": 3570, + "src": "1983:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2059,10 +2059,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3413, + "id": 3567, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:25", + "src": "1983:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2072,28 +2072,28 @@ "visibility": "internal" } ], - "src": "1940:55:25" + "src": "1940:55:26" }, - "src": "1926:70:25" + "src": "1926:70:26" }, { "anonymous": false, "documentation": null, - "id": 3424, + "id": 3578, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 3423, + "id": 3577, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3418, + "id": 3572, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2016:26:25", + "scope": 3578, + "src": "2016:26:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2101,10 +2101,10 @@ "typeString": "address" }, "typeName": { - "id": 3417, + "id": 3571, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2016:7:25", + "src": "2016:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2115,12 +2115,12 @@ }, { "constant": false, - "id": 3420, + "id": 3574, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2044:23:25", + "scope": 3578, + "src": "2044:23:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2128,10 +2128,10 @@ "typeString": "address" }, "typeName": { - "id": 3419, + "id": 3573, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2044:7:25", + "src": "2044:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2142,12 +2142,12 @@ }, { "constant": false, - "id": 3422, + "id": 3576, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2069:11:25", + "scope": 3578, + "src": "2069:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2155,10 +2155,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3421, + "id": 3575, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2069:4:25", + "src": "2069:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2168,13 +2168,13 @@ "visibility": "internal" } ], - "src": "2015:66:25" + "src": "2015:66:26" }, - "src": "2001:81:25" + "src": "2001:81:26" } ], - "scope": 3814, - "src": "1395:689:25" + "scope": 3968, + "src": "1395:689:26" }, { "baseContracts": [], @@ -2182,9 +2182,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3437, + "id": 3591, "linearizedBaseContracts": [ - 3437 + 3591 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", @@ -2192,7 +2192,7 @@ { "body": null, "documentation": null, - "id": 3436, + "id": 3590, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -2200,16 +2200,16 @@ "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 3434, + "id": 3588, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3427, + "id": 3581, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2416:12:25", + "scope": 3590, + "src": "2416:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2217,10 +2217,10 @@ "typeString": "address" }, "typeName": { - "id": 3426, + "id": 3580, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2416:7:25", + "src": "2416:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2231,11 +2231,11 @@ }, { "constant": false, - "id": 3429, + "id": 3583, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2430:14:25", + "scope": 3590, + "src": "2430:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2243,10 +2243,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3428, + "id": 3582, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2430:7:25", + "src": "2430:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2257,11 +2257,11 @@ }, { "constant": false, - "id": 3431, + "id": 3585, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2446:13:25", + "scope": 3590, + "src": "2446:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2269,10 +2269,10 @@ "typeString": "address" }, "typeName": { - "id": 3430, + "id": 3584, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2446:7:25", + "src": "2446:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2283,11 +2283,11 @@ }, { "constant": false, - "id": 3433, + "id": 3587, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2461:10:25", + "scope": 3590, + "src": "2461:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2295,10 +2295,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3432, + "id": 3586, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2461:5:25", + "src": "2461:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2308,24 +2308,24 @@ "visibility": "internal" } ], - "src": "2415:57:25" + "src": "2415:57:26" }, "payable": false, "returnParameters": { - "id": 3435, + "id": 3589, "nodeType": "ParameterList", "parameters": [], - "src": "2479:0:25" + "src": "2479:0:26" }, - "scope": 3437, - "src": "2391:89:25", + "scope": 3591, + "src": "2391:89:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2353:129:25" + "scope": 3968, + "src": "2353:129:26" }, { "baseContracts": [], @@ -2333,20 +2333,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3506, + "id": 3660, "linearizedBaseContracts": [ - 3506 + 3660 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 3439, + "id": 3593, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2684:20:25", + "scope": 3660, + "src": "2684:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2354,10 +2354,10 @@ "typeString": "address" }, "typeName": { - "id": 3438, + "id": 3592, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2684:7:25", + "src": "2684:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2368,11 +2368,11 @@ }, { "constant": false, - "id": 3441, + "id": 3595, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2710:23:25", + "scope": 3660, + "src": "2710:23:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2380,10 +2380,10 @@ "typeString": "address" }, "typeName": { - "id": 3440, + "id": 3594, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2710:7:25", + "src": "2710:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2395,21 +2395,21 @@ { "anonymous": false, "documentation": null, - "id": 3447, + "id": 3601, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 3446, + "id": 3600, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3443, + "id": 3597, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2767:21:25", + "scope": 3601, + "src": "2767:21:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2417,10 +2417,10 @@ "typeString": "address" }, "typeName": { - "id": 3442, + "id": 3596, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2767:7:25", + "src": "2767:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2431,12 +2431,12 @@ }, { "constant": false, - "id": 3445, + "id": 3599, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2790:19:25", + "scope": 3601, + "src": "2790:19:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2444,10 +2444,10 @@ "typeString": "address" }, "typeName": { - "id": 3444, + "id": 3598, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2790:7:25", + "src": "2790:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2457,32 +2457,32 @@ "visibility": "internal" } ], - "src": "2766:44:25" + "src": "2766:44:26" }, - "src": "2740:71:25" + "src": "2740:71:26" }, { "body": { - "id": 3455, + "id": 3609, "nodeType": "Block", - "src": "2838:35:25", + "src": "2838:35:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3453, + "id": 3607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3450, + "id": 3604, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2848:5:25", + "referencedDeclaration": 3593, + "src": "2848:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2494,18 +2494,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3451, + "id": 3605, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2856:3:25", + "referencedDeclaration": 4491, + "src": "2856:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3452, + "id": 3606, "isConstant": false, "isLValue": false, "isPure": false, @@ -2513,26 +2513,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2856:10:25", + "src": "2856:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2848:18:25", + "src": "2848:18:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3454, + "id": 3608, "nodeType": "ExpressionStatement", - "src": "2848:18:25" + "src": "2848:18:26" } ] }, "documentation": null, - "id": 3456, + "id": 3610, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -2540,29 +2540,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3448, + "id": 3602, "nodeType": "ParameterList", "parameters": [], - "src": "2828:2:25" + "src": "2828:2:26" }, "payable": false, "returnParameters": { - "id": 3449, + "id": 3603, "nodeType": "ParameterList", "parameters": [], - "src": "2838:0:25" + "src": "2838:0:26" }, - "scope": 3506, - "src": "2817:56:25", + "scope": 3660, + "src": "2817:56:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3466, + "id": 3620, "nodeType": "Block", - "src": "2898:56:25", + "src": "2898:56:26", "statements": [ { "expression": { @@ -2574,7 +2574,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3462, + "id": 3616, "isConstant": false, "isLValue": false, "isPure": false, @@ -2583,18 +2583,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3459, + "id": 3613, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2916:3:25", + "referencedDeclaration": 4491, + "src": "2916:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3460, + "id": 3614, "isConstant": false, "isLValue": false, "isPure": false, @@ -2602,7 +2602,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2916:10:25", + "src": "2916:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2612,18 +2612,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3461, + "id": 3615, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2930:5:25", + "referencedDeclaration": 3593, + "src": "2930:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2916:19:25", + "src": "2916:19:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2637,21 +2637,21 @@ "typeString": "bool" } ], - "id": 3458, + "id": 3612, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "2908:7:25", + "referencedDeclaration": 4494, + "src": "2908:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3463, + "id": 3617, "isConstant": false, "isLValue": false, "isPure": false, @@ -2659,58 +2659,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:28:25", + "src": "2908:28:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3464, + "id": 3618, "nodeType": "ExpressionStatement", - "src": "2908:28:25" + "src": "2908:28:26" }, { - "id": 3465, + "id": 3619, "nodeType": "PlaceholderStatement", - "src": "2946:1:25" + "src": "2946:1:26" } ] }, "documentation": null, - "id": 3467, + "id": 3621, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 3457, + "id": 3611, "nodeType": "ParameterList", "parameters": [], - "src": "2898:0:25" + "src": "2898:0:26" }, - "src": "2879:75:25", + "src": "2879:75:26", "visibility": "internal" }, { "body": { - "id": 3478, + "id": 3632, "nodeType": "Block", - "src": "3023:37:25", + "src": "3023:37:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3476, + "id": 3630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3474, + "id": 3628, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3033:8:25", + "referencedDeclaration": 3595, + "src": "3033:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2720,68 +2720,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3475, + "id": 3629, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3469, - "src": "3044:9:25", + "referencedDeclaration": 3623, + "src": "3044:9:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3033:20:25", + "src": "3033:20:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3477, + "id": 3631, "nodeType": "ExpressionStatement", - "src": "3033:20:25" + "src": "3033:20:26" } ] }, "documentation": null, - "id": 3479, + "id": 3633, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3472, + "id": 3626, "modifierName": { "argumentTypes": null, - "id": 3471, + "id": 3625, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3013:9:25", + "referencedDeclaration": 3621, + "src": "3013:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3013:9:25" + "src": "3013:9:26" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3470, + "id": 3624, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3469, + "id": 3623, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 3479, - "src": "2987:17:25", + "scope": 3633, + "src": "2987:17:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2789,10 +2789,10 @@ "typeString": "address" }, "typeName": { - "id": 3468, + "id": 3622, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2987:7:25", + "src": "2987:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2802,26 +2802,26 @@ "visibility": "internal" } ], - "src": "2986:19:25" + "src": "2986:19:26" }, "payable": false, "returnParameters": { - "id": 3473, + "id": 3627, "nodeType": "ParameterList", "parameters": [], - "src": "3023:0:25" + "src": "3023:0:26" }, - "scope": 3506, - "src": "2960:100:25", + "scope": 3660, + "src": "2960:100:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3504, + "id": 3658, "nodeType": "Block", - "src": "3099:157:25", + "src": "3099:157:26", "statements": [ { "expression": { @@ -2833,7 +2833,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3486, + "id": 3640, "isConstant": false, "isLValue": false, "isPure": false, @@ -2842,18 +2842,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3483, + "id": 3637, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "3117:3:25", + "referencedDeclaration": 4491, + "src": "3117:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3484, + "id": 3638, "isConstant": false, "isLValue": false, "isPure": false, @@ -2861,7 +2861,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3117:10:25", + "src": "3117:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2871,18 +2871,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3485, + "id": 3639, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3131:8:25", + "referencedDeclaration": 3595, + "src": "3131:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3117:22:25", + "src": "3117:22:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2896,21 +2896,21 @@ "typeString": "bool" } ], - "id": 3482, + "id": 3636, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "3109:7:25", + "referencedDeclaration": 4494, + "src": "3109:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3487, + "id": 3641, "isConstant": false, "isLValue": false, "isPure": false, @@ -2918,15 +2918,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3109:31:25", + "src": "3109:31:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3488, + "id": 3642, "nodeType": "ExpressionStatement", - "src": "3109:31:25" + "src": "3109:31:26" }, { "eventCall": { @@ -2934,12 +2934,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3490, + "id": 3644, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3176:5:25", + "referencedDeclaration": 3593, + "src": "3176:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2947,12 +2947,12 @@ }, { "argumentTypes": null, - "id": 3491, + "id": 3645, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3183:8:25", + "referencedDeclaration": 3595, + "src": "3183:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2970,18 +2970,18 @@ "typeString": "address" } ], - "id": 3489, + "id": 3643, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3447, - "src": "3155:20:25", + "referencedDeclaration": 3601, + "src": "3155:20:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 3492, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, @@ -2989,32 +2989,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3155:37:25", + "src": "3155:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3493, + "id": 3647, "nodeType": "EmitStatement", - "src": "3150:42:25" + "src": "3150:42:26" }, { "expression": { "argumentTypes": null, - "id": 3496, + "id": 3650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3494, + "id": 3648, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3202:5:25", + "referencedDeclaration": 3593, + "src": "3202:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3024,43 +3024,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3495, + "id": 3649, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3210:8:25", + "referencedDeclaration": 3595, + "src": "3210:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3202:16:25", + "src": "3202:16:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3497, + "id": 3651, "nodeType": "ExpressionStatement", - "src": "3202:16:25" + "src": "3202:16:26" }, { "expression": { "argumentTypes": null, - "id": 3502, + "id": 3656, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3498, + "id": 3652, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3228:8:25", + "referencedDeclaration": 3595, + "src": "3228:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3074,14 +3074,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3500, + "id": 3654, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3247:1:25", + "src": "3247:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3097,20 +3097,20 @@ "typeString": "int_const 0" } ], - "id": 3499, + "id": 3653, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:25", + "src": "3239:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3501, + "id": 3655, "isConstant": false, "isLValue": false, "isPure": true, @@ -3118,26 +3118,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3239:10:25", + "src": "3239:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3228:21:25", + "src": "3228:21:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3503, + "id": 3657, "nodeType": "ExpressionStatement", - "src": "3228:21:25" + "src": "3228:21:26" } ] }, "documentation": null, - "id": 3505, + "id": 3659, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3145,27 +3145,27 @@ "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3480, + "id": 3634, "nodeType": "ParameterList", "parameters": [], - "src": "3089:2:25" + "src": "3089:2:26" }, "payable": false, "returnParameters": { - "id": 3481, + "id": 3635, "nodeType": "ParameterList", "parameters": [], - "src": "3099:0:25" + "src": "3099:0:26" }, - "scope": 3506, - "src": "3065:191:25", + "scope": 3660, + "src": "3065:191:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2663:595:25" + "scope": 3968, + "src": "2663:595:26" }, { "baseContracts": [ @@ -3173,76 +3173,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3507, + "id": 3661, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3425, - "src": "3528:14:25", + "referencedDeclaration": 3579, + "src": "3528:14:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3508, + "id": 3662, "nodeType": "InheritanceSpecifier", - "src": "3528:14:25" + "src": "3528:14:26" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3509, + "id": 3663, "name": "Owned", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3506, - "src": "3544:5:25", + "referencedDeclaration": 3660, + "src": "3544:5:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3506", + "typeIdentifier": "t_contract$_Owned_$3660", "typeString": "contract Owned" } }, - "id": 3510, + "id": 3664, "nodeType": "InheritanceSpecifier", - "src": "3544:5:25" + "src": "3544:5:26" } ], "contractDependencies": [ - 3425, - 3506 + 3579, + 3660 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3813, + "id": 3967, "linearizedBaseContracts": [ - 3813, - 3506, - 3425 + 3967, + 3660, + 3579 ], "name": "TestToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3513, + "id": 3667, "libraryName": { "contractScope": null, - "id": 3511, + "id": 3665, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3358, - "src": "3562:8:25", + "referencedDeclaration": 3512, + "src": "3562:8:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeIdentifier": "t_contract$_SafeMath_$3512", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3556:24:25", + "src": "3556:24:26", "typeName": { - "id": 3512, + "id": 3666, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3575:4:25", + "src": "3575:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3251,11 +3251,11 @@ }, { "constant": false, - "id": 3515, + "id": 3669, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3586:20:25", + "scope": 3967, + "src": "3586:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3263,10 +3263,10 @@ "typeString": "string" }, "typeName": { - "id": 3514, + "id": 3668, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3586:6:25", + "src": "3586:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3277,11 +3277,11 @@ }, { "constant": false, - "id": 3517, + "id": 3671, "name": "name", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3612:19:25", + "scope": 3967, + "src": "3612:19:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3289,10 +3289,10 @@ "typeString": "string" }, "typeName": { - "id": 3516, + "id": 3670, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3612:6:25", + "src": "3612:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3303,11 +3303,11 @@ }, { "constant": false, - "id": 3519, + "id": 3673, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3637:21:25", + "scope": 3967, + "src": "3637:21:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3315,10 +3315,10 @@ "typeString": "uint8" }, "typeName": { - "id": 3518, + "id": 3672, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3637:5:25", + "src": "3637:5:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3329,11 +3329,11 @@ }, { "constant": false, - "id": 3521, + "id": 3675, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3664:17:25", + "scope": 3967, + "src": "3664:17:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3341,10 +3341,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3520, + "id": 3674, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3664:4:25", + "src": "3664:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3355,11 +3355,11 @@ }, { "constant": false, - "id": 3525, + "id": 3679, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3688:33:25", + "scope": 3967, + "src": "3688:33:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3367,28 +3367,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 3524, + "id": 3678, "keyType": { - "id": 3522, + "id": 3676, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3696:7:25", + "src": "3696:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3688:24:25", + "src": "3688:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3523, + "id": 3677, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3707:4:25", + "src": "3707:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3400,11 +3400,11 @@ }, { "constant": false, - "id": 3531, + "id": 3685, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3727:52:25", + "scope": 3967, + "src": "3727:52:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3412,46 +3412,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 3530, + "id": 3684, "keyType": { - "id": 3526, + "id": 3680, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3735:7:25", + "src": "3735:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3727:44:25", + "src": "3727:44:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 3529, + "id": 3683, "keyType": { - "id": 3527, + "id": 3681, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3754:7:25", + "src": "3754:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3746:24:25", + "src": "3746:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3528, + "id": 3682, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3765:4:25", + "src": "3765:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3464,26 +3464,26 @@ }, { "body": { - "id": 3570, + "id": 3724, "nodeType": "Block", - "src": "3987:235:25", + "src": "3987:235:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3536, + "id": 3690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3534, + "id": 3688, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3997:6:25", + "referencedDeclaration": 3669, + "src": "3997:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3494,14 +3494,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "544b4e", - "id": 3535, + "id": 3689, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4006:5:25", + "src": "4006:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", @@ -3509,32 +3509,32 @@ }, "value": "TKN" }, - "src": "3997:14:25", + "src": "3997:14:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3537, + "id": 3691, "nodeType": "ExpressionStatement", - "src": "3997:14:25" + "src": "3997:14:26" }, { "expression": { "argumentTypes": null, - "id": 3540, + "id": 3694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3538, + "id": 3692, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3517, - "src": "4021:4:25", + "referencedDeclaration": 3671, + "src": "4021:4:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3545,14 +3545,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "546f6b656e204578616d706c65", - "id": 3539, + "id": 3693, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4028:15:25", + "src": "4028:15:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", @@ -3560,32 +3560,32 @@ }, "value": "Token Example" }, - "src": "4021:22:25", + "src": "4021:22:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3541, + "id": 3695, "nodeType": "ExpressionStatement", - "src": "4021:22:25" + "src": "4021:22:26" }, { "expression": { "argumentTypes": null, - "id": 3544, + "id": 3698, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3542, + "id": 3696, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4053:8:25", + "referencedDeclaration": 3673, + "src": "4053:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3596,14 +3596,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3138", - "id": 3543, + "id": 3697, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4064:2:25", + "src": "4064:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -3611,32 +3611,32 @@ }, "value": "18" }, - "src": "4053:13:25", + "src": "4053:13:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 3545, + "id": 3699, "nodeType": "ExpressionStatement", - "src": "4053:13:25" + "src": "4053:13:26" }, { "expression": { "argumentTypes": null, - "id": 3554, + "id": 3708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3546, + "id": 3700, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4076:12:25", + "referencedDeclaration": 3675, + "src": "4076:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3650,7 +3650,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3553, + "id": 3707, "isConstant": false, "isLValue": false, "isPure": false, @@ -3658,14 +3658,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 3547, + "id": 3701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4091:7:25", + "src": "4091:7:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -3681,7 +3681,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3552, + "id": 3706, "isConstant": false, "isLValue": false, "isPure": false, @@ -3689,14 +3689,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 3548, + "id": 3702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4101:2:25", + "src": "4101:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -3711,12 +3711,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3550, + "id": 3704, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4110:8:25", + "referencedDeclaration": 3673, + "src": "4110:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3730,20 +3730,20 @@ "typeString": "uint8" } ], - "id": 3549, + "id": 3703, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:25", + "src": "4105:4:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 3551, + "id": 3705, "isConstant": false, "isLValue": false, "isPure": false, @@ -3751,38 +3751,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4105:14:25", + "src": "4105:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4101:18:25", + "src": "4101:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4091:28:25", + "src": "4091:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4076:43:25", + "src": "4076:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3555, + "id": 3709, "nodeType": "ExpressionStatement", - "src": "4076:43:25" + "src": "4076:43:26" }, { "expression": { "argumentTypes": null, - "id": 3560, + "id": 3714, "isConstant": false, "isLValue": false, "isPure": false, @@ -3791,26 +3791,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3556, + "id": 3710, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4129:8:25", + "referencedDeclaration": 3679, + "src": "4129:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3558, + "id": 3712, "indexExpression": { "argumentTypes": null, - "id": 3557, + "id": 3711, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4138:5:25", + "referencedDeclaration": 3593, + "src": "4138:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3821,7 +3821,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4129:15:25", + "src": "4129:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3831,26 +3831,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3559, + "id": 3713, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4147:12:25", + "referencedDeclaration": 3675, + "src": "4147:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4129:30:25", + "src": "4129:30:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3561, + "id": 3715, "nodeType": "ExpressionStatement", - "src": "4129:30:25" + "src": "4129:30:26" }, { "eventCall": { @@ -3862,14 +3862,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3564, + "id": 3718, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4191:1:25", + "src": "4191:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3885,20 +3885,20 @@ "typeString": "int_const 0" } ], - "id": 3563, + "id": 3717, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:25", + "src": "4183:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3565, + "id": 3719, "isConstant": false, "isLValue": false, "isPure": true, @@ -3906,7 +3906,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4183:10:25", + "src": "4183:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3914,12 +3914,12 @@ }, { "argumentTypes": null, - "id": 3566, + "id": 3720, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4195:5:25", + "referencedDeclaration": 3593, + "src": "4195:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3927,12 +3927,12 @@ }, { "argumentTypes": null, - "id": 3567, + "id": 3721, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4202:12:25", + "referencedDeclaration": 3675, + "src": "4202:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3954,18 +3954,18 @@ "typeString": "uint256" } ], - "id": 3562, + "id": 3716, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "4174:8:25", + "referencedDeclaration": 3570, + "src": "4174:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3568, + "id": 3722, "isConstant": false, "isLValue": false, "isPure": false, @@ -3973,20 +3973,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4174:41:25", + "src": "4174:41:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3569, + "id": 3723, "nodeType": "EmitStatement", - "src": "4169:46:25" + "src": "4169:46:26" } ] }, "documentation": null, - "id": 3571, + "id": 3725, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -3994,29 +3994,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3532, + "id": 3686, "nodeType": "ParameterList", "parameters": [], - "src": "3977:2:25" + "src": "3977:2:26" }, "payable": false, "returnParameters": { - "id": 3533, + "id": 3687, "nodeType": "ParameterList", "parameters": [], - "src": "3987:0:25" + "src": "3987:0:26" }, - "scope": 3813, - "src": "3966:256:25", + "scope": 3967, + "src": "3966:256:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3585, + "id": 3739, "nodeType": "Block", - "src": "4459:62:25", + "src": "4459:62:26", "statements": [ { "expression": { @@ -4026,32 +4026,32 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3578, + "id": 3732, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4493:8:25", + "referencedDeclaration": 3679, + "src": "4493:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3582, + "id": 3736, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 3580, + "id": 3734, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4510:1:25", + "src": "4510:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4067,20 +4067,20 @@ "typeString": "int_const 0" } ], - "id": 3579, + "id": 3733, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:25", + "src": "4502:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3581, + "id": 3735, "isConstant": false, "isLValue": false, "isPure": true, @@ -4088,7 +4088,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4502:10:25", + "src": "4502:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4099,7 +4099,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4493:20:25", + "src": "4493:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4115,32 +4115,32 @@ ], "expression": { "argumentTypes": null, - "id": 3576, + "id": 3730, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4476:12:25", + "referencedDeclaration": 3675, + "src": "4476:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3577, + "id": 3731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "4476:16:25", + "referencedDeclaration": 3461, + "src": "4476:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3583, + "id": 3737, "isConstant": false, "isLValue": false, "isPure": false, @@ -4148,21 +4148,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4476:38:25", + "src": "4476:38:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3575, - "id": 3584, + "functionReturnParameters": 3729, + "id": 3738, "nodeType": "Return", - "src": "4469:45:25" + "src": "4469:45:26" } ] }, "documentation": null, - "id": 3586, + "id": 3740, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4170,23 +4170,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3572, + "id": 3726, "nodeType": "ParameterList", "parameters": [], - "src": "4429:2:25" + "src": "4429:2:26" }, "payable": false, "returnParameters": { - "id": 3575, + "id": 3729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3574, + "id": 3728, "name": "", "nodeType": "VariableDeclaration", - "scope": 3586, - "src": "4453:4:25", + "scope": 3740, + "src": "4453:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4194,10 +4194,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3573, + "id": 3727, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4453:4:25", + "src": "4453:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4207,45 +4207,45 @@ "visibility": "internal" } ], - "src": "4452:6:25" + "src": "4452:6:26" }, - "scope": 3813, - "src": "4409:112:25", + "scope": 3967, + "src": "4409:112:26", "stateMutability": "view", - "superFunction": 3363, + "superFunction": 3517, "visibility": "public" }, { "body": { - "id": 3597, + "id": 3751, "nodeType": "Block", - "src": "4816:44:25", + "src": "4816:44:26", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3593, + "id": 3747, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4833:8:25", + "referencedDeclaration": 3679, + "src": "4833:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3595, + "id": 3749, "indexExpression": { "argumentTypes": null, - "id": 3594, + "id": 3748, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3588, - "src": "4842:10:25", + "referencedDeclaration": 3742, + "src": "4842:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4256,21 +4256,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4833:20:25", + "src": "4833:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3592, - "id": 3596, + "functionReturnParameters": 3746, + "id": 3750, "nodeType": "Return", - "src": "4826:27:25" + "src": "4826:27:26" } ] }, "documentation": null, - "id": 3598, + "id": 3752, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4278,16 +4278,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3589, + "id": 3743, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3588, + "id": 3742, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4761:18:25", + "scope": 3752, + "src": "4761:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4295,10 +4295,10 @@ "typeString": "address" }, "typeName": { - "id": 3587, + "id": 3741, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4761:7:25", + "src": "4761:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4308,20 +4308,20 @@ "visibility": "internal" } ], - "src": "4760:20:25" + "src": "4760:20:26" }, "payable": false, "returnParameters": { - "id": 3592, + "id": 3746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3591, + "id": 3745, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4802:12:25", + "scope": 3752, + "src": "4802:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4329,10 +4329,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3590, + "id": 3744, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4802:4:25", + "src": "4802:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4342,24 +4342,24 @@ "visibility": "internal" } ], - "src": "4801:14:25" + "src": "4801:14:26" }, - "scope": 3813, - "src": "4742:118:25", + "scope": 3967, + "src": "4742:118:26", "stateMutability": "view", - "superFunction": 3370, + "superFunction": 3524, "visibility": "public" }, { "body": { - "id": 3640, + "id": 3794, "nodeType": "Block", - "src": "5276:189:25", + "src": "5276:189:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3618, + "id": 3772, "isConstant": false, "isLValue": false, "isPure": false, @@ -4368,34 +4368,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3607, + "id": 3761, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5286:8:25", + "referencedDeclaration": 3679, + "src": "5286:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3610, + "id": 3764, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3608, + "id": 3762, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5295:3:25", + "referencedDeclaration": 4491, + "src": "5295:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3609, + "id": 3763, "isConstant": false, "isLValue": false, "isPure": false, @@ -4403,7 +4403,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5295:10:25", + "src": "5295:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4414,7 +4414,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5286:20:25", + "src": "5286:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4427,12 +4427,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3616, + "id": 3770, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5334:6:25", + "referencedDeclaration": 3756, + "src": "5334:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4450,34 +4450,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3611, + "id": 3765, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5309:8:25", + "referencedDeclaration": 3679, + "src": "5309:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3614, + "id": 3768, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3612, + "id": 3766, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5318:3:25", + "referencedDeclaration": 4491, + "src": "5318:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3613, + "id": 3767, "isConstant": false, "isLValue": false, "isPure": false, @@ -4485,7 +4485,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5318:10:25", + "src": "5318:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4496,27 +4496,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5309:20:25", + "src": "5309:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3615, + "id": 3769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "5309:24:25", + "referencedDeclaration": 3461, + "src": "5309:24:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3617, + "id": 3771, "isConstant": false, "isLValue": false, "isPure": false, @@ -4524,26 +4524,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5309:32:25", + "src": "5309:32:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5286:55:25", + "src": "5286:55:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3619, + "id": 3773, "nodeType": "ExpressionStatement", - "src": "5286:55:25" + "src": "5286:55:26" }, { "expression": { "argumentTypes": null, - "id": 3629, + "id": 3783, "isConstant": false, "isLValue": false, "isPure": false, @@ -4552,26 +4552,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3620, + "id": 3774, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5351:8:25", + "referencedDeclaration": 3679, + "src": "5351:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3622, + "id": 3776, "indexExpression": { "argumentTypes": null, - "id": 3621, + "id": 3775, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5360:2:25", + "referencedDeclaration": 3754, + "src": "5360:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4582,7 +4582,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5351:12:25", + "src": "5351:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4595,12 +4595,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3627, + "id": 3781, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5383:6:25", + "referencedDeclaration": 3756, + "src": "5383:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4618,26 +4618,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3623, + "id": 3777, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5366:8:25", + "referencedDeclaration": 3679, + "src": "5366:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3625, + "id": 3779, "indexExpression": { "argumentTypes": null, - "id": 3624, + "id": 3778, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5375:2:25", + "referencedDeclaration": 3754, + "src": "5375:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4648,27 +4648,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5366:12:25", + "src": "5366:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3626, + "id": 3780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "5366:16:25", + "referencedDeclaration": 3439, + "src": "5366:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3628, + "id": 3782, "isConstant": false, "isLValue": false, "isPure": false, @@ -4676,21 +4676,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5366:24:25", + "src": "5366:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5351:39:25", + "src": "5351:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3630, + "id": 3784, "nodeType": "ExpressionStatement", - "src": "5351:39:25" + "src": "5351:39:26" }, { "eventCall": { @@ -4700,18 +4700,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3632, + "id": 3786, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5414:3:25", + "referencedDeclaration": 4491, + "src": "5414:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3633, + "id": 3787, "isConstant": false, "isLValue": false, "isPure": false, @@ -4719,7 +4719,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:25", + "src": "5414:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4727,12 +4727,12 @@ }, { "argumentTypes": null, - "id": 3634, + "id": 3788, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5426:2:25", + "referencedDeclaration": 3754, + "src": "5426:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4740,12 +4740,12 @@ }, { "argumentTypes": null, - "id": 3635, + "id": 3789, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5430:6:25", + "referencedDeclaration": 3756, + "src": "5430:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4767,18 +4767,18 @@ "typeString": "uint256" } ], - "id": 3631, + "id": 3785, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5405:8:25", + "referencedDeclaration": 3570, + "src": "5405:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3636, + "id": 3790, "isConstant": false, "isLValue": false, "isPure": false, @@ -4786,28 +4786,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5405:32:25", + "src": "5405:32:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3637, + "id": 3791, "nodeType": "EmitStatement", - "src": "5400:37:25" + "src": "5400:37:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3638, + "id": 3792, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5454:4:25", + "src": "5454:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4815,15 +4815,15 @@ }, "value": "true" }, - "functionReturnParameters": 3606, - "id": 3639, + "functionReturnParameters": 3760, + "id": 3793, "nodeType": "Return", - "src": "5447:11:25" + "src": "5447:11:26" } ] }, "documentation": null, - "id": 3641, + "id": 3795, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4831,16 +4831,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3603, + "id": 3757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3600, + "id": 3754, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5221:10:25", + "scope": 3795, + "src": "5221:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4848,10 +4848,10 @@ "typeString": "address" }, "typeName": { - "id": 3599, + "id": 3753, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5221:7:25", + "src": "5221:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4862,11 +4862,11 @@ }, { "constant": false, - "id": 3602, + "id": 3756, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5233:11:25", + "scope": 3795, + "src": "5233:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4874,10 +4874,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3601, + "id": 3755, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5233:4:25", + "src": "5233:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4887,20 +4887,20 @@ "visibility": "internal" } ], - "src": "5220:25:25" + "src": "5220:25:26" }, "payable": false, "returnParameters": { - "id": 3606, + "id": 3760, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3605, + "id": 3759, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5262:12:25", + "scope": 3795, + "src": "5262:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4908,10 +4908,10 @@ "typeString": "bool" }, "typeName": { - "id": 3604, + "id": 3758, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5262:4:25", + "src": "5262:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4921,24 +4921,24 @@ "visibility": "internal" } ], - "src": "5261:14:25" + "src": "5261:14:26" }, - "scope": 3813, - "src": "5203:262:25", + "scope": 3967, + "src": "5203:262:26", "stateMutability": "nonpayable", - "superFunction": 3388, + "superFunction": 3542, "visibility": "public" }, { "body": { - "id": 3668, + "id": 3822, "nodeType": "Block", - "src": "6048:127:25", + "src": "6048:127:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3657, + "id": 3811, "isConstant": false, "isLValue": false, "isPure": false, @@ -4949,34 +4949,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3650, + "id": 3804, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6058:7:25", + "referencedDeclaration": 3685, + "src": "6058:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3654, + "id": 3808, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3651, + "id": 3805, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6066:3:25", + "referencedDeclaration": 4491, + "src": "6066:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3652, + "id": 3806, "isConstant": false, "isLValue": false, "isPure": false, @@ -4984,7 +4984,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6066:10:25", + "src": "6066:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4995,21 +4995,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6058:19:25", + "src": "6058:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3655, + "id": 3809, "indexExpression": { "argumentTypes": null, - "id": 3653, + "id": 3807, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6078:7:25", + "referencedDeclaration": 3797, + "src": "6078:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5020,7 +5020,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6058:28:25", + "src": "6058:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5030,26 +5030,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3656, + "id": 3810, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6089:6:25", + "referencedDeclaration": 3799, + "src": "6089:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6058:37:25", + "src": "6058:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3658, + "id": 3812, "nodeType": "ExpressionStatement", - "src": "6058:37:25" + "src": "6058:37:26" }, { "eventCall": { @@ -5059,18 +5059,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3660, + "id": 3814, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6119:3:25", + "referencedDeclaration": 4491, + "src": "6119:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3661, + "id": 3815, "isConstant": false, "isLValue": false, "isPure": false, @@ -5078,7 +5078,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6119:10:25", + "src": "6119:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5086,12 +5086,12 @@ }, { "argumentTypes": null, - "id": 3662, + "id": 3816, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6131:7:25", + "referencedDeclaration": 3797, + "src": "6131:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5099,12 +5099,12 @@ }, { "argumentTypes": null, - "id": 3663, + "id": 3817, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6140:6:25", + "referencedDeclaration": 3799, + "src": "6140:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5126,18 +5126,18 @@ "typeString": "uint256" } ], - "id": 3659, + "id": 3813, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "6110:8:25", + "referencedDeclaration": 3578, + "src": "6110:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3664, + "id": 3818, "isConstant": false, "isLValue": false, "isPure": false, @@ -5145,28 +5145,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6110:37:25", + "src": "6110:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3665, + "id": 3819, "nodeType": "EmitStatement", - "src": "6105:42:25" + "src": "6105:42:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3666, + "id": 3820, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6164:4:25", + "src": "6164:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5174,15 +5174,15 @@ }, "value": "true" }, - "functionReturnParameters": 3649, - "id": 3667, + "functionReturnParameters": 3803, + "id": 3821, "nodeType": "Return", - "src": "6157:11:25" + "src": "6157:11:26" } ] }, "documentation": null, - "id": 3669, + "id": 3823, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5190,16 +5190,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3646, + "id": 3800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3643, + "id": 3797, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "5988:15:25", + "scope": 3823, + "src": "5988:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5207,10 +5207,10 @@ "typeString": "address" }, "typeName": { - "id": 3642, + "id": 3796, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5988:7:25", + "src": "5988:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5221,11 +5221,11 @@ }, { "constant": false, - "id": 3645, + "id": 3799, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6005:11:25", + "scope": 3823, + "src": "6005:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5233,10 +5233,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3644, + "id": 3798, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6005:4:25", + "src": "6005:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5246,20 +5246,20 @@ "visibility": "internal" } ], - "src": "5987:30:25" + "src": "5987:30:26" }, "payable": false, "returnParameters": { - "id": 3649, + "id": 3803, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3648, + "id": 3802, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6034:12:25", + "scope": 3823, + "src": "6034:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5267,10 +5267,10 @@ "typeString": "bool" }, "typeName": { - "id": 3647, + "id": 3801, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6034:4:25", + "src": "6034:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5280,24 +5280,24 @@ "visibility": "internal" } ], - "src": "6033:14:25" + "src": "6033:14:26" }, - "scope": 3813, - "src": "5971:204:25", + "scope": 3967, + "src": "5971:204:26", "stateMutability": "nonpayable", - "superFunction": 3397, + "superFunction": 3551, "visibility": "public" }, { "body": { - "id": 3727, + "id": 3881, "nodeType": "Block", - "src": "6798:246:25", + "src": "6798:246:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3689, + "id": 3843, "isConstant": false, "isLValue": false, "isPure": false, @@ -5306,26 +5306,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3680, + "id": 3834, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6808:8:25", + "referencedDeclaration": 3679, + "src": "6808:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3682, + "id": 3836, "indexExpression": { "argumentTypes": null, - "id": 3681, + "id": 3835, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6817:4:25", + "referencedDeclaration": 3825, + "src": "6817:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5336,7 +5336,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6808:14:25", + "src": "6808:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5349,12 +5349,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3687, + "id": 3841, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6844:6:25", + "referencedDeclaration": 3829, + "src": "6844:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5372,26 +5372,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3683, + "id": 3837, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6825:8:25", + "referencedDeclaration": 3679, + "src": "6825:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3685, + "id": 3839, "indexExpression": { "argumentTypes": null, - "id": 3684, + "id": 3838, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6834:4:25", + "referencedDeclaration": 3825, + "src": "6834:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5402,27 +5402,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6825:14:25", + "src": "6825:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3686, + "id": 3840, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6825:18:25", + "referencedDeclaration": 3461, + "src": "6825:18:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3688, + "id": 3842, "isConstant": false, "isLValue": false, "isPure": false, @@ -5430,26 +5430,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6825:26:25", + "src": "6825:26:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6808:43:25", + "src": "6808:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3690, + "id": 3844, "nodeType": "ExpressionStatement", - "src": "6808:43:25" + "src": "6808:43:26" }, { "expression": { "argumentTypes": null, - "id": 3706, + "id": 3860, "isConstant": false, "isLValue": false, "isPure": false, @@ -5460,26 +5460,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3691, + "id": 3845, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6861:7:25", + "referencedDeclaration": 3685, + "src": "6861:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3695, + "id": 3849, "indexExpression": { "argumentTypes": null, - "id": 3692, + "id": 3846, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6869:4:25", + "referencedDeclaration": 3825, + "src": "6869:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5490,29 +5490,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6861:13:25", + "src": "6861:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3696, + "id": 3850, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3693, + "id": 3847, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6875:3:25", + "referencedDeclaration": 4491, + "src": "6875:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3694, + "id": 3848, "isConstant": false, "isLValue": false, "isPure": false, @@ -5520,7 +5520,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6875:10:25", + "src": "6875:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5531,7 +5531,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6861:25:25", + "src": "6861:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5544,12 +5544,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3704, + "id": 3858, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6919:6:25", + "referencedDeclaration": 3829, + "src": "6919:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5569,26 +5569,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3697, + "id": 3851, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6889:7:25", + "referencedDeclaration": 3685, + "src": "6889:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3699, + "id": 3853, "indexExpression": { "argumentTypes": null, - "id": 3698, + "id": 3852, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6897:4:25", + "referencedDeclaration": 3825, + "src": "6897:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5599,29 +5599,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:13:25", + "src": "6889:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3702, + "id": 3856, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3700, + "id": 3854, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6903:3:25", + "referencedDeclaration": 4491, + "src": "6903:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3701, + "id": 3855, "isConstant": false, "isLValue": false, "isPure": false, @@ -5629,7 +5629,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6903:10:25", + "src": "6903:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5640,27 +5640,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:25:25", + "src": "6889:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3703, + "id": 3857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6889:29:25", + "referencedDeclaration": 3461, + "src": "6889:29:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3705, + "id": 3859, "isConstant": false, "isLValue": false, "isPure": false, @@ -5668,26 +5668,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6889:37:25", + "src": "6889:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6861:65:25", + "src": "6861:65:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3707, + "id": 3861, "nodeType": "ExpressionStatement", - "src": "6861:65:25" + "src": "6861:65:26" }, { "expression": { "argumentTypes": null, - "id": 3717, + "id": 3871, "isConstant": false, "isLValue": false, "isPure": false, @@ -5696,26 +5696,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3708, + "id": 3862, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6936:8:25", + "referencedDeclaration": 3679, + "src": "6936:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3710, + "id": 3864, "indexExpression": { "argumentTypes": null, - "id": 3709, + "id": 3863, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6945:2:25", + "referencedDeclaration": 3827, + "src": "6945:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5726,7 +5726,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6936:12:25", + "src": "6936:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5739,12 +5739,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3715, + "id": 3869, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6968:6:25", + "referencedDeclaration": 3829, + "src": "6968:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5762,26 +5762,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3711, + "id": 3865, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6951:8:25", + "referencedDeclaration": 3679, + "src": "6951:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3713, + "id": 3867, "indexExpression": { "argumentTypes": null, - "id": 3712, + "id": 3866, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6960:2:25", + "referencedDeclaration": 3827, + "src": "6960:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5792,27 +5792,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6951:12:25", + "src": "6951:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3714, + "id": 3868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "6951:16:25", + "referencedDeclaration": 3439, + "src": "6951:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3716, + "id": 3870, "isConstant": false, "isLValue": false, "isPure": false, @@ -5820,21 +5820,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6951:24:25", + "src": "6951:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6936:39:25", + "src": "6936:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3718, + "id": 3872, "nodeType": "ExpressionStatement", - "src": "6936:39:25" + "src": "6936:39:26" }, { "eventCall": { @@ -5842,12 +5842,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3720, + "id": 3874, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6999:4:25", + "referencedDeclaration": 3825, + "src": "6999:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5855,12 +5855,12 @@ }, { "argumentTypes": null, - "id": 3721, + "id": 3875, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "7005:2:25", + "referencedDeclaration": 3827, + "src": "7005:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5868,12 +5868,12 @@ }, { "argumentTypes": null, - "id": 3722, + "id": 3876, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "7009:6:25", + "referencedDeclaration": 3829, + "src": "7009:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5895,18 +5895,18 @@ "typeString": "uint256" } ], - "id": 3719, + "id": 3873, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "6990:8:25", + "referencedDeclaration": 3570, + "src": "6990:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3723, + "id": 3877, "isConstant": false, "isLValue": false, "isPure": false, @@ -5914,28 +5914,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6990:26:25", + "src": "6990:26:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3724, + "id": 3878, "nodeType": "EmitStatement", - "src": "6985:31:25" + "src": "6985:31:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3725, + "id": 3879, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7033:4:25", + "src": "7033:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5943,15 +5943,15 @@ }, "value": "true" }, - "functionReturnParameters": 3679, - "id": 3726, + "functionReturnParameters": 3833, + "id": 3880, "nodeType": "Return", - "src": "7026:11:25" + "src": "7026:11:26" } ] }, "documentation": null, - "id": 3728, + "id": 3882, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5959,16 +5959,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3676, + "id": 3830, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3671, + "id": 3825, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6729:12:25", + "scope": 3882, + "src": "6729:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5976,10 +5976,10 @@ "typeString": "address" }, "typeName": { - "id": 3670, + "id": 3824, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6729:7:25", + "src": "6729:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5990,11 +5990,11 @@ }, { "constant": false, - "id": 3673, + "id": 3827, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6743:10:25", + "scope": 3882, + "src": "6743:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6002,10 +6002,10 @@ "typeString": "address" }, "typeName": { - "id": 3672, + "id": 3826, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6743:7:25", + "src": "6743:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6016,11 +6016,11 @@ }, { "constant": false, - "id": 3675, + "id": 3829, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6755:11:25", + "scope": 3882, + "src": "6755:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6028,10 +6028,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3674, + "id": 3828, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6755:4:25", + "src": "6755:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6041,20 +6041,20 @@ "visibility": "internal" } ], - "src": "6728:39:25" + "src": "6728:39:26" }, "payable": false, "returnParameters": { - "id": 3679, + "id": 3833, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3678, + "id": 3832, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6784:12:25", + "scope": 3882, + "src": "6784:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6062,10 +6062,10 @@ "typeString": "bool" }, "typeName": { - "id": 3677, + "id": 3831, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6784:4:25", + "src": "6784:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6075,19 +6075,19 @@ "visibility": "internal" } ], - "src": "6783:14:25" + "src": "6783:14:26" }, - "scope": 3813, - "src": "6707:337:25", + "scope": 3967, + "src": "6707:337:26", "stateMutability": "nonpayable", - "superFunction": 3408, + "superFunction": 3562, "visibility": "public" }, { "body": { - "id": 3743, + "id": 3897, "nodeType": "Block", - "src": "7418:52:25", + "src": "7418:52:26", "statements": [ { "expression": { @@ -6096,26 +6096,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3737, + "id": 3891, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7435:7:25", + "referencedDeclaration": 3685, + "src": "7435:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3739, + "id": 3893, "indexExpression": { "argumentTypes": null, - "id": 3738, + "id": 3892, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3730, - "src": "7443:10:25", + "referencedDeclaration": 3884, + "src": "7443:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6126,21 +6126,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:19:25", + "src": "7435:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3741, + "id": 3895, "indexExpression": { "argumentTypes": null, - "id": 3740, + "id": 3894, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "7455:7:25", + "referencedDeclaration": 3886, + "src": "7455:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6151,21 +6151,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:28:25", + "src": "7435:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3736, - "id": 3742, + "functionReturnParameters": 3890, + "id": 3896, "nodeType": "Return", - "src": "7428:35:25" + "src": "7428:35:26" } ] }, "documentation": null, - "id": 3744, + "id": 3898, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6173,16 +6173,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3733, + "id": 3887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3730, + "id": 3884, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7344:18:25", + "scope": 3898, + "src": "7344:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6190,10 +6190,10 @@ "typeString": "address" }, "typeName": { - "id": 3729, + "id": 3883, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7344:7:25", + "src": "7344:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6204,11 +6204,11 @@ }, { "constant": false, - "id": 3732, + "id": 3886, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7364:15:25", + "scope": 3898, + "src": "7364:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6216,10 +6216,10 @@ "typeString": "address" }, "typeName": { - "id": 3731, + "id": 3885, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7364:7:25", + "src": "7364:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6229,20 +6229,20 @@ "visibility": "internal" } ], - "src": "7343:37:25" + "src": "7343:37:26" }, "payable": false, "returnParameters": { - "id": 3736, + "id": 3890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3735, + "id": 3889, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7402:14:25", + "scope": 3898, + "src": "7402:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6250,10 +6250,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3734, + "id": 3888, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7402:4:25", + "src": "7402:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6263,24 +6263,24 @@ "visibility": "internal" } ], - "src": "7401:16:25" + "src": "7401:16:26" }, - "scope": 3813, - "src": "7325:145:25", + "scope": 3967, + "src": "7325:145:26", "stateMutability": "view", - "superFunction": 3379, + "superFunction": 3533, "visibility": "public" }, { "body": { - "id": 3784, + "id": 3938, "nodeType": "Block", - "src": "7926:216:25", + "src": "7926:216:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3762, + "id": 3916, "isConstant": false, "isLValue": false, "isPure": false, @@ -6291,34 +6291,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3755, + "id": 3909, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7936:7:25", + "referencedDeclaration": 3685, + "src": "7936:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3759, + "id": 3913, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3756, + "id": 3910, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7944:3:25", + "referencedDeclaration": 4491, + "src": "7944:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3757, + "id": 3911, "isConstant": false, "isLValue": false, "isPure": false, @@ -6326,7 +6326,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7944:10:25", + "src": "7944:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6337,21 +6337,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7936:19:25", + "src": "7936:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3760, + "id": 3914, "indexExpression": { "argumentTypes": null, - "id": 3758, + "id": 3912, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "7956:7:25", + "referencedDeclaration": 3900, + "src": "7956:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6362,7 +6362,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7936:28:25", + "src": "7936:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6372,26 +6372,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3761, + "id": 3915, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "7967:6:25", + "referencedDeclaration": 3902, + "src": "7967:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7936:37:25", + "src": "7936:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3763, + "id": 3917, "nodeType": "ExpressionStatement", - "src": "7936:37:25" + "src": "7936:37:26" }, { "eventCall": { @@ -6401,18 +6401,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3765, + "id": 3919, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7997:3:25", + "referencedDeclaration": 4491, + "src": "7997:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3766, + "id": 3920, "isConstant": false, "isLValue": false, "isPure": false, @@ -6420,7 +6420,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7997:10:25", + "src": "7997:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6428,12 +6428,12 @@ }, { "argumentTypes": null, - "id": 3767, + "id": 3921, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8009:7:25", + "referencedDeclaration": 3900, + "src": "8009:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6441,12 +6441,12 @@ }, { "argumentTypes": null, - "id": 3768, + "id": 3922, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8018:6:25", + "referencedDeclaration": 3902, + "src": "8018:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6468,18 +6468,18 @@ "typeString": "uint256" } ], - "id": 3764, + "id": 3918, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "7988:8:25", + "referencedDeclaration": 3578, + "src": "7988:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3769, + "id": 3923, "isConstant": false, "isLValue": false, "isPure": false, @@ -6487,15 +6487,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7988:37:25", + "src": "7988:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3770, + "id": 3924, "nodeType": "EmitStatement", - "src": "7983:42:25" + "src": "7983:42:26" }, { "expression": { @@ -6505,18 +6505,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3775, + "id": 3929, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "8083:3:25", + "referencedDeclaration": 4491, + "src": "8083:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3776, + "id": 3930, "isConstant": false, "isLValue": false, "isPure": false, @@ -6524,7 +6524,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8083:10:25", + "src": "8083:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6532,12 +6532,12 @@ }, { "argumentTypes": null, - "id": 3777, + "id": 3931, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8095:6:25", + "referencedDeclaration": 3902, + "src": "8095:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6545,25 +6545,25 @@ }, { "argumentTypes": null, - "id": 3778, + "id": 3932, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3907, - "src": "8103:4:25", + "referencedDeclaration": 4574, + "src": "8103:4:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" } }, { "argumentTypes": null, - "id": 3779, + "id": 3933, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3750, - "src": "8109:4:25", + "referencedDeclaration": 3904, + "src": "8109:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6581,7 +6581,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" }, { @@ -6594,12 +6594,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3772, + "id": 3926, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8058:7:25", + "referencedDeclaration": 3900, + "src": "8058:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6613,18 +6613,18 @@ "typeString": "address" } ], - "id": 3771, + "id": 3925, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3437, - "src": "8035:22:25", + "referencedDeclaration": 3591, + "src": "8035:22:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, - "id": 3773, + "id": 3927, "isConstant": false, "isLValue": false, "isPure": false, @@ -6632,27 +6632,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:31:25", + "src": "8035:31:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", "typeString": "contract ApproveAndCallFallBack" } }, - "id": 3774, + "id": 3928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", - "referencedDeclaration": 3436, - "src": "8035:47:25", + "referencedDeclaration": 3590, + "src": "8035:47:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,address,bytes memory) external" } }, - "id": 3780, + "id": 3934, "isConstant": false, "isLValue": false, "isPure": false, @@ -6660,28 +6660,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:79:25", + "src": "8035:79:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3781, + "id": 3935, "nodeType": "ExpressionStatement", - "src": "8035:79:25" + "src": "8035:79:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3782, + "id": 3936, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8131:4:25", + "src": "8131:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6689,15 +6689,15 @@ }, "value": "true" }, - "functionReturnParameters": 3754, - "id": 3783, + "functionReturnParameters": 3908, + "id": 3937, "nodeType": "Return", - "src": "8124:11:25" + "src": "8124:11:26" } ] }, "documentation": null, - "id": 3785, + "id": 3939, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6705,16 +6705,16 @@ "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 3751, + "id": 3905, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3746, + "id": 3900, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7854:15:25", + "scope": 3939, + "src": "7854:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6722,10 +6722,10 @@ "typeString": "address" }, "typeName": { - "id": 3745, + "id": 3899, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7854:7:25", + "src": "7854:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6736,11 +6736,11 @@ }, { "constant": false, - "id": 3748, + "id": 3902, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7871:11:25", + "scope": 3939, + "src": "7871:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6748,10 +6748,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3747, + "id": 3901, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7871:4:25", + "src": "7871:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6762,11 +6762,11 @@ }, { "constant": false, - "id": 3750, + "id": 3904, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7884:10:25", + "scope": 3939, + "src": "7884:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6774,10 +6774,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3749, + "id": 3903, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7884:5:25", + "src": "7884:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6787,20 +6787,20 @@ "visibility": "internal" } ], - "src": "7853:42:25" + "src": "7853:42:26" }, "payable": false, "returnParameters": { - "id": 3754, + "id": 3908, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3753, + "id": 3907, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7912:12:25", + "scope": 3939, + "src": "7912:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6808,10 +6808,10 @@ "typeString": "bool" }, "typeName": { - "id": 3752, + "id": 3906, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7912:4:25", + "src": "7912:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6821,19 +6821,19 @@ "visibility": "internal" } ], - "src": "7911:14:25" + "src": "7911:14:26" }, - "scope": 3813, - "src": "7830:312:25", + "scope": 3967, + "src": "7830:312:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3791, + "id": 3945, "nodeType": "Block", - "src": "8360:25:25", + "src": "8360:25:26", "statements": [ { "expression": { @@ -6841,21 +6841,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3788, + "id": 3942, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 3833, - 3834 + 4496, + 4497 ], - "referencedDeclaration": 3833, - "src": "8370:6:25", + "referencedDeclaration": 4496, + "src": "8370:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 3789, + "id": 3943, "isConstant": false, "isLValue": false, "isPure": false, @@ -6863,20 +6863,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8370:8:25", + "src": "8370:8:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3790, + "id": 3944, "nodeType": "ExpressionStatement", - "src": "8370:8:25" + "src": "8370:8:26" } ] }, "documentation": null, - "id": 3792, + "id": 3946, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6884,29 +6884,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3786, + "id": 3940, "nodeType": "ParameterList", "parameters": [], - "src": "8342:2:25" + "src": "8342:2:26" }, "payable": true, "returnParameters": { - "id": 3787, + "id": 3941, "nodeType": "ParameterList", "parameters": [], - "src": "8360:0:25" + "src": "8360:0:26" }, - "scope": 3813, - "src": "8333:52:25", + "scope": 3967, + "src": "8333:52:26", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3811, + "id": 3965, "nodeType": "Block", - "src": "8723:76:25", + "src": "8723:76:26", "statements": [ { "expression": { @@ -6914,12 +6914,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3807, + "id": 3961, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "8778:5:25", + "referencedDeclaration": 3593, + "src": "8778:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6927,12 +6927,12 @@ }, { "argumentTypes": null, - "id": 3808, + "id": 3962, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3796, - "src": "8785:6:25", + "referencedDeclaration": 3950, + "src": "8785:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6955,12 +6955,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3804, + "id": 3958, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3794, - "src": "8755:12:25", + "referencedDeclaration": 3948, + "src": "8755:12:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6974,18 +6974,18 @@ "typeString": "address" } ], - "id": 3803, + "id": 3957, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3425, - "src": "8740:14:25", + "referencedDeclaration": 3579, + "src": "8740:14:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", "typeString": "type(contract ERC20Interface)" } }, - "id": 3805, + "id": 3959, "isConstant": false, "isLValue": false, "isPure": false, @@ -6993,27 +6993,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:28:25", + "src": "8740:28:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3806, + "id": 3960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 3388, - "src": "8740:37:25", + "referencedDeclaration": 3542, + "src": "8740:37:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 3809, + "id": 3963, "isConstant": false, "isLValue": false, "isPure": false, @@ -7021,58 +7021,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:52:25", + "src": "8740:52:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3802, - "id": 3810, + "functionReturnParameters": 3956, + "id": 3964, "nodeType": "Return", - "src": "8733:59:25" + "src": "8733:59:26" } ] }, "documentation": null, - "id": 3812, + "id": 3966, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3799, + "id": 3953, "modifierName": { "argumentTypes": null, - "id": 3798, + "id": 3952, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "8690:9:25", + "referencedDeclaration": 3621, + "src": "8690:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8690:9:25" + "src": "8690:9:26" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 3797, + "id": 3951, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3794, + "id": 3948, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8648:20:25", + "scope": 3966, + "src": "8648:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7080,10 +7080,10 @@ "typeString": "address" }, "typeName": { - "id": 3793, + "id": 3947, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8648:7:25", + "src": "8648:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7094,11 +7094,11 @@ }, { "constant": false, - "id": 3796, + "id": 3950, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8670:11:25", + "scope": 3966, + "src": "8670:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7106,10 +7106,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3795, + "id": 3949, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8670:4:25", + "src": "8670:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7119,20 +7119,20 @@ "visibility": "internal" } ], - "src": "8647:35:25" + "src": "8647:35:26" }, "payable": false, "returnParameters": { - "id": 3802, + "id": 3956, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3801, + "id": 3955, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8709:12:25", + "scope": 3966, + "src": "8709:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7140,10 +7140,10 @@ "typeString": "bool" }, "typeName": { - "id": 3800, + "id": 3954, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8709:4:25", + "src": "8709:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7153,45 +7153,45 @@ "visibility": "internal" } ], - "src": "8708:14:25" + "src": "8708:14:26" }, - "scope": 3813, - "src": "8617:182:25", + "scope": 3967, + "src": "8617:182:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "3506:5295:25" + "scope": 3968, + "src": "3506:5295:26" } ], - "src": "0:8801:25" + "src": "0:8801:26" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ - 3437 + 3591 ], "ERC20Interface": [ - 3425 + 3579 ], "Owned": [ - 3506 + 3660 ], "SafeMath": [ - 3358 + 3512 ], "TestToken": [ - 3813 + 3967 ] }, - "id": 3814, + "id": 3968, "nodeType": "SourceUnit", "nodes": [ { - "id": 3263, + "id": 3417, "literals": [ "solidity", "^", @@ -7199,7 +7199,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:24:26" }, { "baseContracts": [], @@ -7207,35 +7207,35 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 3358, + "id": 3512, "linearizedBaseContracts": [ - 3358 + 3512 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3284, + "id": 3438, "nodeType": "Block", - "src": "719:51:25", + "src": "719:51:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3276, + "id": 3430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3272, + "id": 3426, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "729:1:25", + "referencedDeclaration": 3424, + "src": "729:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7249,19 +7249,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3275, + "id": 3429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3273, + "id": 3427, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "733:1:25", + "referencedDeclaration": 3419, + "src": "733:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7271,32 +7271,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 3274, + "id": 3428, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3267, - "src": "737:1:25", + "referencedDeclaration": 3421, + "src": "737:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:5:25", + "src": "733:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "729:9:25", + "src": "729:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3277, + "id": 3431, "nodeType": "ExpressionStatement", - "src": "729:9:25" + "src": "729:9:26" }, { "expression": { @@ -7308,19 +7308,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3281, + "id": 3435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3279, + "id": 3433, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "756:1:25", + "referencedDeclaration": 3424, + "src": "756:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7330,18 +7330,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 3280, + "id": 3434, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "761:1:25", + "referencedDeclaration": 3419, + "src": "761:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "756:6:25", + "src": "756:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7355,21 +7355,21 @@ "typeString": "bool" } ], - "id": 3278, + "id": 3432, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "748:7:25", + "referencedDeclaration": 4494, + "src": "748:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3282, + "id": 3436, "isConstant": false, "isLValue": false, "isPure": false, @@ -7377,20 +7377,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:15:25", + "src": "748:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3283, + "id": 3437, "nodeType": "ExpressionStatement", - "src": "748:15:25" + "src": "748:15:26" } ] }, "documentation": null, - "id": 3285, + "id": 3439, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7398,16 +7398,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 3268, + "id": 3422, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3265, + "id": 3419, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "672:6:25", + "scope": 3439, + "src": "672:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7415,10 +7415,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3264, + "id": 3418, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "672:4:25", + "src": "672:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7429,11 +7429,11 @@ }, { "constant": false, - "id": 3267, + "id": 3421, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "680:6:25", + "scope": 3439, + "src": "680:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7441,10 +7441,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3266, + "id": 3420, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "680:4:25", + "src": "680:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7454,20 +7454,20 @@ "visibility": "internal" } ], - "src": "671:16:25" + "src": "671:16:26" }, "payable": false, "returnParameters": { - "id": 3271, + "id": 3425, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3270, + "id": 3424, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "711:6:25", + "scope": 3439, + "src": "711:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7475,10 +7475,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3269, + "id": 3423, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "711:4:25", + "src": "711:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7488,19 +7488,19 @@ "visibility": "internal" } ], - "src": "710:8:25" + "src": "710:8:26" }, - "scope": 3358, - "src": "659:111:25", + "scope": 3512, + "src": "659:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3306, + "id": 3460, "nodeType": "Block", - "src": "835:51:25", + "src": "835:51:26", "statements": [ { "expression": { @@ -7512,19 +7512,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3297, + "id": 3451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3295, + "id": 3449, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "853:1:25", + "referencedDeclaration": 3443, + "src": "853:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7534,18 +7534,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 3296, + "id": 3450, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "858:1:25", + "referencedDeclaration": 3441, + "src": "858:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "853:6:25", + "src": "853:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7559,21 +7559,21 @@ "typeString": "bool" } ], - "id": 3294, + "id": 3448, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "845:7:25", + "referencedDeclaration": 4494, + "src": "845:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3298, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, @@ -7581,32 +7581,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:15:25", + "src": "845:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3299, + "id": 3453, "nodeType": "ExpressionStatement", - "src": "845:15:25" + "src": "845:15:26" }, { "expression": { "argumentTypes": null, - "id": 3304, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3300, + "id": 3454, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3292, - "src": "870:1:25", + "referencedDeclaration": 3446, + "src": "870:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7620,19 +7620,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3303, + "id": 3457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3301, + "id": 3455, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "874:1:25", + "referencedDeclaration": 3441, + "src": "874:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7642,37 +7642,37 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 3302, + "id": 3456, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "878:1:25", + "referencedDeclaration": 3443, + "src": "878:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "874:5:25", + "src": "874:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "870:9:25", + "src": "870:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3305, + "id": 3459, "nodeType": "ExpressionStatement", - "src": "870:9:25" + "src": "870:9:26" } ] }, "documentation": null, - "id": 3307, + "id": 3461, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7680,16 +7680,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 3290, + "id": 3444, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3287, + "id": 3441, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "788:6:25", + "scope": 3461, + "src": "788:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7697,10 +7697,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3286, + "id": 3440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "788:4:25", + "src": "788:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7711,11 +7711,11 @@ }, { "constant": false, - "id": 3289, + "id": 3443, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "796:6:25", + "scope": 3461, + "src": "796:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7723,10 +7723,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3288, + "id": 3442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "796:4:25", + "src": "796:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7736,20 +7736,20 @@ "visibility": "internal" } ], - "src": "787:16:25" + "src": "787:16:26" }, "payable": false, "returnParameters": { - "id": 3293, + "id": 3447, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3292, + "id": 3446, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "827:6:25", + "scope": 3461, + "src": "827:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7757,10 +7757,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3291, + "id": 3445, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:25", + "src": "827:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7770,36 +7770,36 @@ "visibility": "internal" } ], - "src": "826:8:25" + "src": "826:8:26" }, - "scope": 3358, - "src": "775:111:25", + "scope": 3512, + "src": "775:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3334, + "id": 3488, "nodeType": "Block", - "src": "951:65:25", + "src": "951:65:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3320, + "id": 3474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3316, + "id": 3470, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "961:1:25", + "referencedDeclaration": 3468, + "src": "961:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7813,19 +7813,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3319, + "id": 3473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3317, + "id": 3471, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "965:1:25", + "referencedDeclaration": 3463, + "src": "965:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7835,32 +7835,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 3318, + "id": 3472, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "969:1:25", + "referencedDeclaration": 3465, + "src": "969:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "965:5:25", + "src": "965:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "961:9:25", + "src": "961:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3321, + "id": 3475, "nodeType": "ExpressionStatement", - "src": "961:9:25" + "src": "961:9:26" }, { "expression": { @@ -7872,7 +7872,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3331, + "id": 3485, "isConstant": false, "isLValue": false, "isPure": false, @@ -7883,19 +7883,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3325, + "id": 3479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3323, + "id": 3477, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "988:1:25", + "referencedDeclaration": 3463, + "src": "988:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7906,14 +7906,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3324, + "id": 3478, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "993:1:25", + "src": "993:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7921,7 +7921,7 @@ }, "value": "0" }, - "src": "988:6:25", + "src": "988:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7935,7 +7935,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3330, + "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, @@ -7946,19 +7946,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3328, + "id": 3482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3326, + "id": 3480, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "998:1:25", + "referencedDeclaration": 3468, + "src": "998:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7968,18 +7968,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3327, + "id": 3481, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "1002:1:25", + "referencedDeclaration": 3463, + "src": "1002:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:5:25", + "src": "998:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7989,24 +7989,24 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3329, + "id": 3483, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "1007:1:25", + "referencedDeclaration": 3465, + "src": "1007:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:25", + "src": "998:10:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "988:20:25", + "src": "988:20:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8020,21 +8020,21 @@ "typeString": "bool" } ], - "id": 3322, + "id": 3476, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "980:7:25", + "referencedDeclaration": 4494, + "src": "980:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3332, + "id": 3486, "isConstant": false, "isLValue": false, "isPure": false, @@ -8042,20 +8042,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "980:29:25", + "src": "980:29:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3333, + "id": 3487, "nodeType": "ExpressionStatement", - "src": "980:29:25" + "src": "980:29:26" } ] }, "documentation": null, - "id": 3335, + "id": 3489, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8063,16 +8063,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 3312, + "id": 3466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3309, + "id": 3463, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "904:6:25", + "scope": 3489, + "src": "904:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8080,10 +8080,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3308, + "id": 3462, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "904:4:25", + "src": "904:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8094,11 +8094,11 @@ }, { "constant": false, - "id": 3311, + "id": 3465, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "912:6:25", + "scope": 3489, + "src": "912:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8106,10 +8106,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3310, + "id": 3464, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "912:4:25", + "src": "912:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8119,20 +8119,20 @@ "visibility": "internal" } ], - "src": "903:16:25" + "src": "903:16:26" }, "payable": false, "returnParameters": { - "id": 3315, + "id": 3469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3314, + "id": 3468, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "943:6:25", + "scope": 3489, + "src": "943:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8140,10 +8140,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3313, + "id": 3467, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "943:4:25", + "src": "943:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8153,19 +8153,19 @@ "visibility": "internal" } ], - "src": "942:8:25" + "src": "942:8:26" }, - "scope": 3358, - "src": "891:125:25", + "scope": 3512, + "src": "891:125:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3356, + "id": 3510, "nodeType": "Block", - "src": "1081:50:25", + "src": "1081:50:26", "statements": [ { "expression": { @@ -8177,19 +8177,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3347, + "id": 3501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3345, + "id": 3499, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1099:1:25", + "referencedDeclaration": 3493, + "src": "1099:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8200,14 +8200,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3346, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:1:25", + "src": "1103:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8215,7 +8215,7 @@ }, "value": "0" }, - "src": "1099:5:25", + "src": "1099:5:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8229,21 +8229,21 @@ "typeString": "bool" } ], - "id": 3344, + "id": 3498, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "1091:7:25", + "referencedDeclaration": 4494, + "src": "1091:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3348, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, @@ -8251,32 +8251,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:14:25", + "src": "1091:14:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3349, + "id": 3503, "nodeType": "ExpressionStatement", - "src": "1091:14:25" + "src": "1091:14:26" }, { "expression": { "argumentTypes": null, - "id": 3354, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3350, + "id": 3504, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3342, - "src": "1115:1:25", + "referencedDeclaration": 3496, + "src": "1115:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8290,19 +8290,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3353, + "id": 3507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3351, + "id": 3505, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "1119:1:25", + "referencedDeclaration": 3491, + "src": "1119:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8312,37 +8312,37 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3352, + "id": 3506, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1123:1:25", + "referencedDeclaration": 3493, + "src": "1123:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:5:25", + "src": "1119:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1115:9:25", + "src": "1115:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3355, + "id": 3509, "nodeType": "ExpressionStatement", - "src": "1115:9:25" + "src": "1115:9:26" } ] }, "documentation": null, - "id": 3357, + "id": 3511, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8350,16 +8350,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 3340, + "id": 3494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3337, + "id": 3491, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1034:6:25", + "scope": 3511, + "src": "1034:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8367,10 +8367,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3336, + "id": 3490, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1034:4:25", + "src": "1034:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8381,11 +8381,11 @@ }, { "constant": false, - "id": 3339, + "id": 3493, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1042:6:25", + "scope": 3511, + "src": "1042:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8393,10 +8393,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3338, + "id": 3492, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1042:4:25", + "src": "1042:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8406,20 +8406,20 @@ "visibility": "internal" } ], - "src": "1033:16:25" + "src": "1033:16:26" }, "payable": false, "returnParameters": { - "id": 3343, + "id": 3497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3342, + "id": 3496, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1073:6:25", + "scope": 3511, + "src": "1073:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8427,10 +8427,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3341, + "id": 3495, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1073:4:25", + "src": "1073:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8440,17 +8440,17 @@ "visibility": "internal" } ], - "src": "1072:8:25" + "src": "1072:8:26" }, - "scope": 3358, - "src": "1021:110:25", + "scope": 3512, + "src": "1021:110:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 3814, - "src": "636:497:25" + "scope": 3968, + "src": "636:497:26" }, { "baseContracts": [], @@ -8458,9 +8458,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3425, + "id": 3579, "linearizedBaseContracts": [ - 3425 + 3579 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", @@ -8468,7 +8468,7 @@ { "body": null, "documentation": null, - "id": 3363, + "id": 3517, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8476,23 +8476,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3359, + "id": 3513, "nodeType": "ParameterList", "parameters": [], - "src": "1445:2:25" + "src": "1445:2:26" }, "payable": false, "returnParameters": { - "id": 3362, + "id": 3516, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3361, + "id": 3515, "name": "", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "1473:4:25", + "scope": 3517, + "src": "1473:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8500,10 +8500,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3360, + "id": 3514, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1473:4:25", + "src": "1473:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8513,10 +8513,10 @@ "visibility": "internal" } ], - "src": "1472:6:25" + "src": "1472:6:26" }, - "scope": 3425, - "src": "1425:54:25", + "scope": 3579, + "src": "1425:54:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8524,7 +8524,7 @@ { "body": null, "documentation": null, - "id": 3370, + "id": 3524, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8532,16 +8532,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3366, + "id": 3520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3365, + "id": 3519, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1503:18:25", + "scope": 3524, + "src": "1503:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8549,10 +8549,10 @@ "typeString": "address" }, "typeName": { - "id": 3364, + "id": 3518, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1503:7:25", + "src": "1503:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8562,20 +8562,20 @@ "visibility": "internal" } ], - "src": "1502:20:25" + "src": "1502:20:26" }, "payable": false, "returnParameters": { - "id": 3369, + "id": 3523, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3368, + "id": 3522, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1548:12:25", + "scope": 3524, + "src": "1548:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8583,10 +8583,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3367, + "id": 3521, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:25", + "src": "1548:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8596,10 +8596,10 @@ "visibility": "internal" } ], - "src": "1547:14:25" + "src": "1547:14:26" }, - "scope": 3425, - "src": "1484:78:25", + "scope": 3579, + "src": "1484:78:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8607,7 +8607,7 @@ { "body": null, "documentation": null, - "id": 3379, + "id": 3533, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8615,16 +8615,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3375, + "id": 3529, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3372, + "id": 3526, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1586:18:25", + "scope": 3533, + "src": "1586:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8632,10 +8632,10 @@ "typeString": "address" }, "typeName": { - "id": 3371, + "id": 3525, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:25", + "src": "1586:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8646,11 +8646,11 @@ }, { "constant": false, - "id": 3374, + "id": 3528, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1606:15:25", + "scope": 3533, + "src": "1606:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8658,10 +8658,10 @@ "typeString": "address" }, "typeName": { - "id": 3373, + "id": 3527, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1606:7:25", + "src": "1606:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8671,20 +8671,20 @@ "visibility": "internal" } ], - "src": "1585:37:25" + "src": "1585:37:26" }, "payable": false, "returnParameters": { - "id": 3378, + "id": 3532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3377, + "id": 3531, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1648:14:25", + "scope": 3533, + "src": "1648:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8692,10 +8692,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3376, + "id": 3530, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1648:4:25", + "src": "1648:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8705,10 +8705,10 @@ "visibility": "internal" } ], - "src": "1647:16:25" + "src": "1647:16:26" }, - "scope": 3425, - "src": "1567:97:25", + "scope": 3579, + "src": "1567:97:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8716,7 +8716,7 @@ { "body": null, "documentation": null, - "id": 3388, + "id": 3542, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -8724,16 +8724,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3384, + "id": 3538, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3381, + "id": 3535, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1687:10:25", + "scope": 3542, + "src": "1687:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8741,10 +8741,10 @@ "typeString": "address" }, "typeName": { - "id": 3380, + "id": 3534, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:25", + "src": "1687:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8755,11 +8755,11 @@ }, { "constant": false, - "id": 3383, + "id": 3537, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1699:11:25", + "scope": 3542, + "src": "1699:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8767,10 +8767,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3382, + "id": 3536, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:25", + "src": "1699:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8780,20 +8780,20 @@ "visibility": "internal" } ], - "src": "1686:25:25" + "src": "1686:25:26" }, "payable": false, "returnParameters": { - "id": 3387, + "id": 3541, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3386, + "id": 3540, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1728:12:25", + "scope": 3542, + "src": "1728:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8801,10 +8801,10 @@ "typeString": "bool" }, "typeName": { - "id": 3385, + "id": 3539, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1728:4:25", + "src": "1728:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8814,10 +8814,10 @@ "visibility": "internal" } ], - "src": "1727:14:25" + "src": "1727:14:26" }, - "scope": 3425, - "src": "1669:73:25", + "scope": 3579, + "src": "1669:73:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -8825,7 +8825,7 @@ { "body": null, "documentation": null, - "id": 3397, + "id": 3551, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -8833,16 +8833,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3393, + "id": 3547, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3390, + "id": 3544, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1764:15:25", + "scope": 3551, + "src": "1764:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8850,10 +8850,10 @@ "typeString": "address" }, "typeName": { - "id": 3389, + "id": 3543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:25", + "src": "1764:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8864,11 +8864,11 @@ }, { "constant": false, - "id": 3392, + "id": 3546, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1781:11:25", + "scope": 3551, + "src": "1781:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8876,10 +8876,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3391, + "id": 3545, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:25", + "src": "1781:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8889,20 +8889,20 @@ "visibility": "internal" } ], - "src": "1763:30:25" + "src": "1763:30:26" }, "payable": false, "returnParameters": { - "id": 3396, + "id": 3550, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3395, + "id": 3549, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1810:12:25", + "scope": 3551, + "src": "1810:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8910,10 +8910,10 @@ "typeString": "bool" }, "typeName": { - "id": 3394, + "id": 3548, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1810:4:25", + "src": "1810:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8923,10 +8923,10 @@ "visibility": "internal" } ], - "src": "1809:14:25" + "src": "1809:14:26" }, - "scope": 3425, - "src": "1747:77:25", + "scope": 3579, + "src": "1747:77:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -8934,7 +8934,7 @@ { "body": null, "documentation": null, - "id": 3408, + "id": 3562, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -8942,16 +8942,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3404, + "id": 3558, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3399, + "id": 3553, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1851:12:25", + "scope": 3562, + "src": "1851:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8959,10 +8959,10 @@ "typeString": "address" }, "typeName": { - "id": 3398, + "id": 3552, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1851:7:25", + "src": "1851:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8973,11 +8973,11 @@ }, { "constant": false, - "id": 3401, + "id": 3555, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1865:10:25", + "scope": 3562, + "src": "1865:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8985,10 +8985,10 @@ "typeString": "address" }, "typeName": { - "id": 3400, + "id": 3554, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:25", + "src": "1865:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8999,11 +8999,11 @@ }, { "constant": false, - "id": 3403, + "id": 3557, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1877:11:25", + "scope": 3562, + "src": "1877:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9011,10 +9011,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3402, + "id": 3556, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1877:4:25", + "src": "1877:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9024,20 +9024,20 @@ "visibility": "internal" } ], - "src": "1850:39:25" + "src": "1850:39:26" }, "payable": false, "returnParameters": { - "id": 3407, + "id": 3561, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3406, + "id": 3560, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1906:12:25", + "scope": 3562, + "src": "1906:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9045,10 +9045,10 @@ "typeString": "bool" }, "typeName": { - "id": 3405, + "id": 3559, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1906:4:25", + "src": "1906:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9058,10 +9058,10 @@ "visibility": "internal" } ], - "src": "1905:14:25" + "src": "1905:14:26" }, - "scope": 3425, - "src": "1829:91:25", + "scope": 3579, + "src": "1829:91:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -9069,21 +9069,21 @@ { "anonymous": false, "documentation": null, - "id": 3416, + "id": 3570, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 3415, + "id": 3569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3410, + "id": 3564, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1941:20:25", + "scope": 3570, + "src": "1941:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9091,10 +9091,10 @@ "typeString": "address" }, "typeName": { - "id": 3409, + "id": 3563, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1941:7:25", + "src": "1941:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9105,12 +9105,12 @@ }, { "constant": false, - "id": 3412, + "id": 3566, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1963:18:25", + "scope": 3570, + "src": "1963:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9118,10 +9118,10 @@ "typeString": "address" }, "typeName": { - "id": 3411, + "id": 3565, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1963:7:25", + "src": "1963:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9132,12 +9132,12 @@ }, { "constant": false, - "id": 3414, + "id": 3568, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1983:11:25", + "scope": 3570, + "src": "1983:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9145,10 +9145,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3413, + "id": 3567, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:25", + "src": "1983:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9158,28 +9158,28 @@ "visibility": "internal" } ], - "src": "1940:55:25" + "src": "1940:55:26" }, - "src": "1926:70:25" + "src": "1926:70:26" }, { "anonymous": false, "documentation": null, - "id": 3424, + "id": 3578, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 3423, + "id": 3577, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3418, + "id": 3572, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2016:26:25", + "scope": 3578, + "src": "2016:26:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9187,10 +9187,10 @@ "typeString": "address" }, "typeName": { - "id": 3417, + "id": 3571, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2016:7:25", + "src": "2016:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9201,12 +9201,12 @@ }, { "constant": false, - "id": 3420, + "id": 3574, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2044:23:25", + "scope": 3578, + "src": "2044:23:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9214,10 +9214,10 @@ "typeString": "address" }, "typeName": { - "id": 3419, + "id": 3573, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2044:7:25", + "src": "2044:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9228,12 +9228,12 @@ }, { "constant": false, - "id": 3422, + "id": 3576, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2069:11:25", + "scope": 3578, + "src": "2069:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9241,10 +9241,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3421, + "id": 3575, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2069:4:25", + "src": "2069:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9254,13 +9254,13 @@ "visibility": "internal" } ], - "src": "2015:66:25" + "src": "2015:66:26" }, - "src": "2001:81:25" + "src": "2001:81:26" } ], - "scope": 3814, - "src": "1395:689:25" + "scope": 3968, + "src": "1395:689:26" }, { "baseContracts": [], @@ -9268,9 +9268,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3437, + "id": 3591, "linearizedBaseContracts": [ - 3437 + 3591 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", @@ -9278,7 +9278,7 @@ { "body": null, "documentation": null, - "id": 3436, + "id": 3590, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -9286,16 +9286,16 @@ "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 3434, + "id": 3588, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3427, + "id": 3581, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2416:12:25", + "scope": 3590, + "src": "2416:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9303,10 +9303,10 @@ "typeString": "address" }, "typeName": { - "id": 3426, + "id": 3580, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2416:7:25", + "src": "2416:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9317,11 +9317,11 @@ }, { "constant": false, - "id": 3429, + "id": 3583, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2430:14:25", + "scope": 3590, + "src": "2430:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9329,10 +9329,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3428, + "id": 3582, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2430:7:25", + "src": "2430:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9343,11 +9343,11 @@ }, { "constant": false, - "id": 3431, + "id": 3585, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2446:13:25", + "scope": 3590, + "src": "2446:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9355,10 +9355,10 @@ "typeString": "address" }, "typeName": { - "id": 3430, + "id": 3584, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2446:7:25", + "src": "2446:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9369,11 +9369,11 @@ }, { "constant": false, - "id": 3433, + "id": 3587, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2461:10:25", + "scope": 3590, + "src": "2461:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9381,10 +9381,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3432, + "id": 3586, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2461:5:25", + "src": "2461:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9394,24 +9394,24 @@ "visibility": "internal" } ], - "src": "2415:57:25" + "src": "2415:57:26" }, "payable": false, "returnParameters": { - "id": 3435, + "id": 3589, "nodeType": "ParameterList", "parameters": [], - "src": "2479:0:25" + "src": "2479:0:26" }, - "scope": 3437, - "src": "2391:89:25", + "scope": 3591, + "src": "2391:89:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2353:129:25" + "scope": 3968, + "src": "2353:129:26" }, { "baseContracts": [], @@ -9419,20 +9419,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3506, + "id": 3660, "linearizedBaseContracts": [ - 3506 + 3660 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 3439, + "id": 3593, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2684:20:25", + "scope": 3660, + "src": "2684:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -9440,10 +9440,10 @@ "typeString": "address" }, "typeName": { - "id": 3438, + "id": 3592, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2684:7:25", + "src": "2684:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9454,11 +9454,11 @@ }, { "constant": false, - "id": 3441, + "id": 3595, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2710:23:25", + "scope": 3660, + "src": "2710:23:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -9466,10 +9466,10 @@ "typeString": "address" }, "typeName": { - "id": 3440, + "id": 3594, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2710:7:25", + "src": "2710:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9481,21 +9481,21 @@ { "anonymous": false, "documentation": null, - "id": 3447, + "id": 3601, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 3446, + "id": 3600, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3443, + "id": 3597, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2767:21:25", + "scope": 3601, + "src": "2767:21:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9503,10 +9503,10 @@ "typeString": "address" }, "typeName": { - "id": 3442, + "id": 3596, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2767:7:25", + "src": "2767:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9517,12 +9517,12 @@ }, { "constant": false, - "id": 3445, + "id": 3599, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2790:19:25", + "scope": 3601, + "src": "2790:19:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9530,10 +9530,10 @@ "typeString": "address" }, "typeName": { - "id": 3444, + "id": 3598, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2790:7:25", + "src": "2790:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9543,32 +9543,32 @@ "visibility": "internal" } ], - "src": "2766:44:25" + "src": "2766:44:26" }, - "src": "2740:71:25" + "src": "2740:71:26" }, { "body": { - "id": 3455, + "id": 3609, "nodeType": "Block", - "src": "2838:35:25", + "src": "2838:35:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3453, + "id": 3607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3450, + "id": 3604, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2848:5:25", + "referencedDeclaration": 3593, + "src": "2848:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9580,18 +9580,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3451, + "id": 3605, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2856:3:25", + "referencedDeclaration": 4491, + "src": "2856:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3452, + "id": 3606, "isConstant": false, "isLValue": false, "isPure": false, @@ -9599,26 +9599,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2856:10:25", + "src": "2856:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2848:18:25", + "src": "2848:18:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3454, + "id": 3608, "nodeType": "ExpressionStatement", - "src": "2848:18:25" + "src": "2848:18:26" } ] }, "documentation": null, - "id": 3456, + "id": 3610, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -9626,29 +9626,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3448, + "id": 3602, "nodeType": "ParameterList", "parameters": [], - "src": "2828:2:25" + "src": "2828:2:26" }, "payable": false, "returnParameters": { - "id": 3449, + "id": 3603, "nodeType": "ParameterList", "parameters": [], - "src": "2838:0:25" + "src": "2838:0:26" }, - "scope": 3506, - "src": "2817:56:25", + "scope": 3660, + "src": "2817:56:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3466, + "id": 3620, "nodeType": "Block", - "src": "2898:56:25", + "src": "2898:56:26", "statements": [ { "expression": { @@ -9660,7 +9660,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3462, + "id": 3616, "isConstant": false, "isLValue": false, "isPure": false, @@ -9669,18 +9669,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3459, + "id": 3613, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2916:3:25", + "referencedDeclaration": 4491, + "src": "2916:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3460, + "id": 3614, "isConstant": false, "isLValue": false, "isPure": false, @@ -9688,7 +9688,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2916:10:25", + "src": "2916:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9698,18 +9698,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3461, + "id": 3615, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2930:5:25", + "referencedDeclaration": 3593, + "src": "2930:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2916:19:25", + "src": "2916:19:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9723,21 +9723,21 @@ "typeString": "bool" } ], - "id": 3458, + "id": 3612, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "2908:7:25", + "referencedDeclaration": 4494, + "src": "2908:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3463, + "id": 3617, "isConstant": false, "isLValue": false, "isPure": false, @@ -9745,58 +9745,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:28:25", + "src": "2908:28:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3464, + "id": 3618, "nodeType": "ExpressionStatement", - "src": "2908:28:25" + "src": "2908:28:26" }, { - "id": 3465, + "id": 3619, "nodeType": "PlaceholderStatement", - "src": "2946:1:25" + "src": "2946:1:26" } ] }, "documentation": null, - "id": 3467, + "id": 3621, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 3457, + "id": 3611, "nodeType": "ParameterList", "parameters": [], - "src": "2898:0:25" + "src": "2898:0:26" }, - "src": "2879:75:25", + "src": "2879:75:26", "visibility": "internal" }, { "body": { - "id": 3478, + "id": 3632, "nodeType": "Block", - "src": "3023:37:25", + "src": "3023:37:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3476, + "id": 3630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3474, + "id": 3628, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3033:8:25", + "referencedDeclaration": 3595, + "src": "3033:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9806,68 +9806,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3475, + "id": 3629, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3469, - "src": "3044:9:25", + "referencedDeclaration": 3623, + "src": "3044:9:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3033:20:25", + "src": "3033:20:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3477, + "id": 3631, "nodeType": "ExpressionStatement", - "src": "3033:20:25" + "src": "3033:20:26" } ] }, "documentation": null, - "id": 3479, + "id": 3633, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3472, + "id": 3626, "modifierName": { "argumentTypes": null, - "id": 3471, + "id": 3625, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3013:9:25", + "referencedDeclaration": 3621, + "src": "3013:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3013:9:25" + "src": "3013:9:26" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3470, + "id": 3624, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3469, + "id": 3623, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 3479, - "src": "2987:17:25", + "scope": 3633, + "src": "2987:17:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9875,10 +9875,10 @@ "typeString": "address" }, "typeName": { - "id": 3468, + "id": 3622, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2987:7:25", + "src": "2987:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9888,26 +9888,26 @@ "visibility": "internal" } ], - "src": "2986:19:25" + "src": "2986:19:26" }, "payable": false, "returnParameters": { - "id": 3473, + "id": 3627, "nodeType": "ParameterList", "parameters": [], - "src": "3023:0:25" + "src": "3023:0:26" }, - "scope": 3506, - "src": "2960:100:25", + "scope": 3660, + "src": "2960:100:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3504, + "id": 3658, "nodeType": "Block", - "src": "3099:157:25", + "src": "3099:157:26", "statements": [ { "expression": { @@ -9919,7 +9919,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3486, + "id": 3640, "isConstant": false, "isLValue": false, "isPure": false, @@ -9928,18 +9928,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3483, + "id": 3637, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "3117:3:25", + "referencedDeclaration": 4491, + "src": "3117:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3484, + "id": 3638, "isConstant": false, "isLValue": false, "isPure": false, @@ -9947,7 +9947,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3117:10:25", + "src": "3117:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9957,18 +9957,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3485, + "id": 3639, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3131:8:25", + "referencedDeclaration": 3595, + "src": "3131:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3117:22:25", + "src": "3117:22:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9982,21 +9982,21 @@ "typeString": "bool" } ], - "id": 3482, + "id": 3636, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "3109:7:25", + "referencedDeclaration": 4494, + "src": "3109:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3487, + "id": 3641, "isConstant": false, "isLValue": false, "isPure": false, @@ -10004,15 +10004,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3109:31:25", + "src": "3109:31:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3488, + "id": 3642, "nodeType": "ExpressionStatement", - "src": "3109:31:25" + "src": "3109:31:26" }, { "eventCall": { @@ -10020,12 +10020,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3490, + "id": 3644, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3176:5:25", + "referencedDeclaration": 3593, + "src": "3176:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10033,12 +10033,12 @@ }, { "argumentTypes": null, - "id": 3491, + "id": 3645, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3183:8:25", + "referencedDeclaration": 3595, + "src": "3183:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10056,18 +10056,18 @@ "typeString": "address" } ], - "id": 3489, + "id": 3643, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3447, - "src": "3155:20:25", + "referencedDeclaration": 3601, + "src": "3155:20:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 3492, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, @@ -10075,32 +10075,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3155:37:25", + "src": "3155:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3493, + "id": 3647, "nodeType": "EmitStatement", - "src": "3150:42:25" + "src": "3150:42:26" }, { "expression": { "argumentTypes": null, - "id": 3496, + "id": 3650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3494, + "id": 3648, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3202:5:25", + "referencedDeclaration": 3593, + "src": "3202:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10110,43 +10110,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3495, + "id": 3649, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3210:8:25", + "referencedDeclaration": 3595, + "src": "3210:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3202:16:25", + "src": "3202:16:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3497, + "id": 3651, "nodeType": "ExpressionStatement", - "src": "3202:16:25" + "src": "3202:16:26" }, { "expression": { "argumentTypes": null, - "id": 3502, + "id": 3656, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3498, + "id": 3652, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3228:8:25", + "referencedDeclaration": 3595, + "src": "3228:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10160,14 +10160,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3500, + "id": 3654, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3247:1:25", + "src": "3247:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10183,20 +10183,20 @@ "typeString": "int_const 0" } ], - "id": 3499, + "id": 3653, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:25", + "src": "3239:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3501, + "id": 3655, "isConstant": false, "isLValue": false, "isPure": true, @@ -10204,26 +10204,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3239:10:25", + "src": "3239:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3228:21:25", + "src": "3228:21:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3503, + "id": 3657, "nodeType": "ExpressionStatement", - "src": "3228:21:25" + "src": "3228:21:26" } ] }, "documentation": null, - "id": 3505, + "id": 3659, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -10231,27 +10231,27 @@ "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3480, + "id": 3634, "nodeType": "ParameterList", "parameters": [], - "src": "3089:2:25" + "src": "3089:2:26" }, "payable": false, "returnParameters": { - "id": 3481, + "id": 3635, "nodeType": "ParameterList", "parameters": [], - "src": "3099:0:25" + "src": "3099:0:26" }, - "scope": 3506, - "src": "3065:191:25", + "scope": 3660, + "src": "3065:191:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2663:595:25" + "scope": 3968, + "src": "2663:595:26" }, { "baseContracts": [ @@ -10259,76 +10259,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3507, + "id": 3661, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3425, - "src": "3528:14:25", + "referencedDeclaration": 3579, + "src": "3528:14:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3508, + "id": 3662, "nodeType": "InheritanceSpecifier", - "src": "3528:14:25" + "src": "3528:14:26" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3509, + "id": 3663, "name": "Owned", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3506, - "src": "3544:5:25", + "referencedDeclaration": 3660, + "src": "3544:5:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3506", + "typeIdentifier": "t_contract$_Owned_$3660", "typeString": "contract Owned" } }, - "id": 3510, + "id": 3664, "nodeType": "InheritanceSpecifier", - "src": "3544:5:25" + "src": "3544:5:26" } ], "contractDependencies": [ - 3425, - 3506 + 3579, + 3660 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3813, + "id": 3967, "linearizedBaseContracts": [ - 3813, - 3506, - 3425 + 3967, + 3660, + 3579 ], "name": "TestToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3513, + "id": 3667, "libraryName": { "contractScope": null, - "id": 3511, + "id": 3665, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3358, - "src": "3562:8:25", + "referencedDeclaration": 3512, + "src": "3562:8:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeIdentifier": "t_contract$_SafeMath_$3512", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3556:24:25", + "src": "3556:24:26", "typeName": { - "id": 3512, + "id": 3666, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3575:4:25", + "src": "3575:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10337,11 +10337,11 @@ }, { "constant": false, - "id": 3515, + "id": 3669, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3586:20:25", + "scope": 3967, + "src": "3586:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10349,10 +10349,10 @@ "typeString": "string" }, "typeName": { - "id": 3514, + "id": 3668, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3586:6:25", + "src": "3586:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -10363,11 +10363,11 @@ }, { "constant": false, - "id": 3517, + "id": 3671, "name": "name", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3612:19:25", + "scope": 3967, + "src": "3612:19:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10375,10 +10375,10 @@ "typeString": "string" }, "typeName": { - "id": 3516, + "id": 3670, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3612:6:25", + "src": "3612:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -10389,11 +10389,11 @@ }, { "constant": false, - "id": 3519, + "id": 3673, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3637:21:25", + "scope": 3967, + "src": "3637:21:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10401,10 +10401,10 @@ "typeString": "uint8" }, "typeName": { - "id": 3518, + "id": 3672, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3637:5:25", + "src": "3637:5:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10415,11 +10415,11 @@ }, { "constant": false, - "id": 3521, + "id": 3675, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3664:17:25", + "scope": 3967, + "src": "3664:17:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10427,10 +10427,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3520, + "id": 3674, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3664:4:25", + "src": "3664:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10441,11 +10441,11 @@ }, { "constant": false, - "id": 3525, + "id": 3679, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3688:33:25", + "scope": 3967, + "src": "3688:33:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10453,28 +10453,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 3524, + "id": 3678, "keyType": { - "id": 3522, + "id": 3676, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3696:7:25", + "src": "3696:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3688:24:25", + "src": "3688:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3523, + "id": 3677, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3707:4:25", + "src": "3707:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10486,11 +10486,11 @@ }, { "constant": false, - "id": 3531, + "id": 3685, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3727:52:25", + "scope": 3967, + "src": "3727:52:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10498,46 +10498,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 3530, + "id": 3684, "keyType": { - "id": 3526, + "id": 3680, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3735:7:25", + "src": "3735:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3727:44:25", + "src": "3727:44:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 3529, + "id": 3683, "keyType": { - "id": 3527, + "id": 3681, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3754:7:25", + "src": "3754:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3746:24:25", + "src": "3746:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3528, + "id": 3682, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3765:4:25", + "src": "3765:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10550,26 +10550,26 @@ }, { "body": { - "id": 3570, + "id": 3724, "nodeType": "Block", - "src": "3987:235:25", + "src": "3987:235:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3536, + "id": 3690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3534, + "id": 3688, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3997:6:25", + "referencedDeclaration": 3669, + "src": "3997:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -10580,14 +10580,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "544b4e", - "id": 3535, + "id": 3689, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4006:5:25", + "src": "4006:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", @@ -10595,32 +10595,32 @@ }, "value": "TKN" }, - "src": "3997:14:25", + "src": "3997:14:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3537, + "id": 3691, "nodeType": "ExpressionStatement", - "src": "3997:14:25" + "src": "3997:14:26" }, { "expression": { "argumentTypes": null, - "id": 3540, + "id": 3694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3538, + "id": 3692, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3517, - "src": "4021:4:25", + "referencedDeclaration": 3671, + "src": "4021:4:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -10631,14 +10631,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "546f6b656e204578616d706c65", - "id": 3539, + "id": 3693, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4028:15:25", + "src": "4028:15:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", @@ -10646,32 +10646,32 @@ }, "value": "Token Example" }, - "src": "4021:22:25", + "src": "4021:22:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3541, + "id": 3695, "nodeType": "ExpressionStatement", - "src": "4021:22:25" + "src": "4021:22:26" }, { "expression": { "argumentTypes": null, - "id": 3544, + "id": 3698, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3542, + "id": 3696, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4053:8:25", + "referencedDeclaration": 3673, + "src": "4053:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10682,14 +10682,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3138", - "id": 3543, + "id": 3697, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4064:2:25", + "src": "4064:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -10697,32 +10697,32 @@ }, "value": "18" }, - "src": "4053:13:25", + "src": "4053:13:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 3545, + "id": 3699, "nodeType": "ExpressionStatement", - "src": "4053:13:25" + "src": "4053:13:26" }, { "expression": { "argumentTypes": null, - "id": 3554, + "id": 3708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3546, + "id": 3700, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4076:12:25", + "referencedDeclaration": 3675, + "src": "4076:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10736,7 +10736,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3553, + "id": 3707, "isConstant": false, "isLValue": false, "isPure": false, @@ -10744,14 +10744,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 3547, + "id": 3701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4091:7:25", + "src": "4091:7:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -10767,7 +10767,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3552, + "id": 3706, "isConstant": false, "isLValue": false, "isPure": false, @@ -10775,14 +10775,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 3548, + "id": 3702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4101:2:25", + "src": "4101:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -10797,12 +10797,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3550, + "id": 3704, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4110:8:25", + "referencedDeclaration": 3673, + "src": "4110:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10816,20 +10816,20 @@ "typeString": "uint8" } ], - "id": 3549, + "id": 3703, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:25", + "src": "4105:4:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 3551, + "id": 3705, "isConstant": false, "isLValue": false, "isPure": false, @@ -10837,38 +10837,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4105:14:25", + "src": "4105:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4101:18:25", + "src": "4101:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4091:28:25", + "src": "4091:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4076:43:25", + "src": "4076:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3555, + "id": 3709, "nodeType": "ExpressionStatement", - "src": "4076:43:25" + "src": "4076:43:26" }, { "expression": { "argumentTypes": null, - "id": 3560, + "id": 3714, "isConstant": false, "isLValue": false, "isPure": false, @@ -10877,26 +10877,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3556, + "id": 3710, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4129:8:25", + "referencedDeclaration": 3679, + "src": "4129:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3558, + "id": 3712, "indexExpression": { "argumentTypes": null, - "id": 3557, + "id": 3711, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4138:5:25", + "referencedDeclaration": 3593, + "src": "4138:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10907,7 +10907,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4129:15:25", + "src": "4129:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10917,26 +10917,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3559, + "id": 3713, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4147:12:25", + "referencedDeclaration": 3675, + "src": "4147:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4129:30:25", + "src": "4129:30:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3561, + "id": 3715, "nodeType": "ExpressionStatement", - "src": "4129:30:25" + "src": "4129:30:26" }, { "eventCall": { @@ -10948,14 +10948,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3564, + "id": 3718, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4191:1:25", + "src": "4191:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10971,20 +10971,20 @@ "typeString": "int_const 0" } ], - "id": 3563, + "id": 3717, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:25", + "src": "4183:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3565, + "id": 3719, "isConstant": false, "isLValue": false, "isPure": true, @@ -10992,7 +10992,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4183:10:25", + "src": "4183:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11000,12 +11000,12 @@ }, { "argumentTypes": null, - "id": 3566, + "id": 3720, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4195:5:25", + "referencedDeclaration": 3593, + "src": "4195:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11013,12 +11013,12 @@ }, { "argumentTypes": null, - "id": 3567, + "id": 3721, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4202:12:25", + "referencedDeclaration": 3675, + "src": "4202:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11040,18 +11040,18 @@ "typeString": "uint256" } ], - "id": 3562, + "id": 3716, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "4174:8:25", + "referencedDeclaration": 3570, + "src": "4174:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3568, + "id": 3722, "isConstant": false, "isLValue": false, "isPure": false, @@ -11059,20 +11059,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4174:41:25", + "src": "4174:41:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3569, + "id": 3723, "nodeType": "EmitStatement", - "src": "4169:46:25" + "src": "4169:46:26" } ] }, "documentation": null, - "id": 3571, + "id": 3725, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -11080,29 +11080,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3532, + "id": 3686, "nodeType": "ParameterList", "parameters": [], - "src": "3977:2:25" + "src": "3977:2:26" }, "payable": false, "returnParameters": { - "id": 3533, + "id": 3687, "nodeType": "ParameterList", "parameters": [], - "src": "3987:0:25" + "src": "3987:0:26" }, - "scope": 3813, - "src": "3966:256:25", + "scope": 3967, + "src": "3966:256:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3585, + "id": 3739, "nodeType": "Block", - "src": "4459:62:25", + "src": "4459:62:26", "statements": [ { "expression": { @@ -11112,32 +11112,32 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3578, + "id": 3732, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4493:8:25", + "referencedDeclaration": 3679, + "src": "4493:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3582, + "id": 3736, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 3580, + "id": 3734, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4510:1:25", + "src": "4510:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11153,20 +11153,20 @@ "typeString": "int_const 0" } ], - "id": 3579, + "id": 3733, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:25", + "src": "4502:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3581, + "id": 3735, "isConstant": false, "isLValue": false, "isPure": true, @@ -11174,7 +11174,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4502:10:25", + "src": "4502:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11185,7 +11185,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4493:20:25", + "src": "4493:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11201,32 +11201,32 @@ ], "expression": { "argumentTypes": null, - "id": 3576, + "id": 3730, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4476:12:25", + "referencedDeclaration": 3675, + "src": "4476:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3577, + "id": 3731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "4476:16:25", + "referencedDeclaration": 3461, + "src": "4476:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3583, + "id": 3737, "isConstant": false, "isLValue": false, "isPure": false, @@ -11234,21 +11234,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4476:38:25", + "src": "4476:38:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3575, - "id": 3584, + "functionReturnParameters": 3729, + "id": 3738, "nodeType": "Return", - "src": "4469:45:25" + "src": "4469:45:26" } ] }, "documentation": null, - "id": 3586, + "id": 3740, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11256,23 +11256,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3572, + "id": 3726, "nodeType": "ParameterList", "parameters": [], - "src": "4429:2:25" + "src": "4429:2:26" }, "payable": false, "returnParameters": { - "id": 3575, + "id": 3729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3574, + "id": 3728, "name": "", "nodeType": "VariableDeclaration", - "scope": 3586, - "src": "4453:4:25", + "scope": 3740, + "src": "4453:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11280,10 +11280,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3573, + "id": 3727, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4453:4:25", + "src": "4453:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11293,45 +11293,45 @@ "visibility": "internal" } ], - "src": "4452:6:25" + "src": "4452:6:26" }, - "scope": 3813, - "src": "4409:112:25", + "scope": 3967, + "src": "4409:112:26", "stateMutability": "view", - "superFunction": 3363, + "superFunction": 3517, "visibility": "public" }, { "body": { - "id": 3597, + "id": 3751, "nodeType": "Block", - "src": "4816:44:25", + "src": "4816:44:26", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3593, + "id": 3747, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4833:8:25", + "referencedDeclaration": 3679, + "src": "4833:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3595, + "id": 3749, "indexExpression": { "argumentTypes": null, - "id": 3594, + "id": 3748, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3588, - "src": "4842:10:25", + "referencedDeclaration": 3742, + "src": "4842:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11342,21 +11342,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4833:20:25", + "src": "4833:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3592, - "id": 3596, + "functionReturnParameters": 3746, + "id": 3750, "nodeType": "Return", - "src": "4826:27:25" + "src": "4826:27:26" } ] }, "documentation": null, - "id": 3598, + "id": 3752, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11364,16 +11364,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3589, + "id": 3743, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3588, + "id": 3742, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4761:18:25", + "scope": 3752, + "src": "4761:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11381,10 +11381,10 @@ "typeString": "address" }, "typeName": { - "id": 3587, + "id": 3741, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4761:7:25", + "src": "4761:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11394,20 +11394,20 @@ "visibility": "internal" } ], - "src": "4760:20:25" + "src": "4760:20:26" }, "payable": false, "returnParameters": { - "id": 3592, + "id": 3746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3591, + "id": 3745, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4802:12:25", + "scope": 3752, + "src": "4802:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11415,10 +11415,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3590, + "id": 3744, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4802:4:25", + "src": "4802:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11428,24 +11428,24 @@ "visibility": "internal" } ], - "src": "4801:14:25" + "src": "4801:14:26" }, - "scope": 3813, - "src": "4742:118:25", + "scope": 3967, + "src": "4742:118:26", "stateMutability": "view", - "superFunction": 3370, + "superFunction": 3524, "visibility": "public" }, { "body": { - "id": 3640, + "id": 3794, "nodeType": "Block", - "src": "5276:189:25", + "src": "5276:189:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3618, + "id": 3772, "isConstant": false, "isLValue": false, "isPure": false, @@ -11454,34 +11454,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3607, + "id": 3761, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5286:8:25", + "referencedDeclaration": 3679, + "src": "5286:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3610, + "id": 3764, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3608, + "id": 3762, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5295:3:25", + "referencedDeclaration": 4491, + "src": "5295:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3609, + "id": 3763, "isConstant": false, "isLValue": false, "isPure": false, @@ -11489,7 +11489,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5295:10:25", + "src": "5295:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11500,7 +11500,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5286:20:25", + "src": "5286:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11513,12 +11513,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3616, + "id": 3770, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5334:6:25", + "referencedDeclaration": 3756, + "src": "5334:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11536,34 +11536,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3611, + "id": 3765, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5309:8:25", + "referencedDeclaration": 3679, + "src": "5309:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3614, + "id": 3768, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3612, + "id": 3766, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5318:3:25", + "referencedDeclaration": 4491, + "src": "5318:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3613, + "id": 3767, "isConstant": false, "isLValue": false, "isPure": false, @@ -11571,7 +11571,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5318:10:25", + "src": "5318:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11582,27 +11582,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5309:20:25", + "src": "5309:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3615, + "id": 3769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "5309:24:25", + "referencedDeclaration": 3461, + "src": "5309:24:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3617, + "id": 3771, "isConstant": false, "isLValue": false, "isPure": false, @@ -11610,26 +11610,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5309:32:25", + "src": "5309:32:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5286:55:25", + "src": "5286:55:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3619, + "id": 3773, "nodeType": "ExpressionStatement", - "src": "5286:55:25" + "src": "5286:55:26" }, { "expression": { "argumentTypes": null, - "id": 3629, + "id": 3783, "isConstant": false, "isLValue": false, "isPure": false, @@ -11638,26 +11638,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3620, + "id": 3774, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5351:8:25", + "referencedDeclaration": 3679, + "src": "5351:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3622, + "id": 3776, "indexExpression": { "argumentTypes": null, - "id": 3621, + "id": 3775, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5360:2:25", + "referencedDeclaration": 3754, + "src": "5360:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11668,7 +11668,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5351:12:25", + "src": "5351:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11681,12 +11681,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3627, + "id": 3781, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5383:6:25", + "referencedDeclaration": 3756, + "src": "5383:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11704,26 +11704,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3623, + "id": 3777, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5366:8:25", + "referencedDeclaration": 3679, + "src": "5366:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3625, + "id": 3779, "indexExpression": { "argumentTypes": null, - "id": 3624, + "id": 3778, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5375:2:25", + "referencedDeclaration": 3754, + "src": "5375:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11734,27 +11734,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5366:12:25", + "src": "5366:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3626, + "id": 3780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "5366:16:25", + "referencedDeclaration": 3439, + "src": "5366:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3628, + "id": 3782, "isConstant": false, "isLValue": false, "isPure": false, @@ -11762,21 +11762,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5366:24:25", + "src": "5366:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5351:39:25", + "src": "5351:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3630, + "id": 3784, "nodeType": "ExpressionStatement", - "src": "5351:39:25" + "src": "5351:39:26" }, { "eventCall": { @@ -11786,18 +11786,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3632, + "id": 3786, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5414:3:25", + "referencedDeclaration": 4491, + "src": "5414:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3633, + "id": 3787, "isConstant": false, "isLValue": false, "isPure": false, @@ -11805,7 +11805,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:25", + "src": "5414:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11813,12 +11813,12 @@ }, { "argumentTypes": null, - "id": 3634, + "id": 3788, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5426:2:25", + "referencedDeclaration": 3754, + "src": "5426:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11826,12 +11826,12 @@ }, { "argumentTypes": null, - "id": 3635, + "id": 3789, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5430:6:25", + "referencedDeclaration": 3756, + "src": "5430:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11853,18 +11853,18 @@ "typeString": "uint256" } ], - "id": 3631, + "id": 3785, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5405:8:25", + "referencedDeclaration": 3570, + "src": "5405:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3636, + "id": 3790, "isConstant": false, "isLValue": false, "isPure": false, @@ -11872,28 +11872,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5405:32:25", + "src": "5405:32:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3637, + "id": 3791, "nodeType": "EmitStatement", - "src": "5400:37:25" + "src": "5400:37:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3638, + "id": 3792, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5454:4:25", + "src": "5454:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11901,15 +11901,15 @@ }, "value": "true" }, - "functionReturnParameters": 3606, - "id": 3639, + "functionReturnParameters": 3760, + "id": 3793, "nodeType": "Return", - "src": "5447:11:25" + "src": "5447:11:26" } ] }, "documentation": null, - "id": 3641, + "id": 3795, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -11917,16 +11917,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3603, + "id": 3757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3600, + "id": 3754, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5221:10:25", + "scope": 3795, + "src": "5221:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11934,10 +11934,10 @@ "typeString": "address" }, "typeName": { - "id": 3599, + "id": 3753, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5221:7:25", + "src": "5221:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11948,11 +11948,11 @@ }, { "constant": false, - "id": 3602, + "id": 3756, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5233:11:25", + "scope": 3795, + "src": "5233:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11960,10 +11960,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3601, + "id": 3755, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5233:4:25", + "src": "5233:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11973,20 +11973,20 @@ "visibility": "internal" } ], - "src": "5220:25:25" + "src": "5220:25:26" }, "payable": false, "returnParameters": { - "id": 3606, + "id": 3760, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3605, + "id": 3759, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5262:12:25", + "scope": 3795, + "src": "5262:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11994,10 +11994,10 @@ "typeString": "bool" }, "typeName": { - "id": 3604, + "id": 3758, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5262:4:25", + "src": "5262:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12007,24 +12007,24 @@ "visibility": "internal" } ], - "src": "5261:14:25" + "src": "5261:14:26" }, - "scope": 3813, - "src": "5203:262:25", + "scope": 3967, + "src": "5203:262:26", "stateMutability": "nonpayable", - "superFunction": 3388, + "superFunction": 3542, "visibility": "public" }, { "body": { - "id": 3668, + "id": 3822, "nodeType": "Block", - "src": "6048:127:25", + "src": "6048:127:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3657, + "id": 3811, "isConstant": false, "isLValue": false, "isPure": false, @@ -12035,34 +12035,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3650, + "id": 3804, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6058:7:25", + "referencedDeclaration": 3685, + "src": "6058:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3654, + "id": 3808, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3651, + "id": 3805, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6066:3:25", + "referencedDeclaration": 4491, + "src": "6066:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3652, + "id": 3806, "isConstant": false, "isLValue": false, "isPure": false, @@ -12070,7 +12070,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6066:10:25", + "src": "6066:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12081,21 +12081,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6058:19:25", + "src": "6058:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3655, + "id": 3809, "indexExpression": { "argumentTypes": null, - "id": 3653, + "id": 3807, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6078:7:25", + "referencedDeclaration": 3797, + "src": "6078:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12106,7 +12106,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6058:28:25", + "src": "6058:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12116,26 +12116,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3656, + "id": 3810, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6089:6:25", + "referencedDeclaration": 3799, + "src": "6089:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6058:37:25", + "src": "6058:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3658, + "id": 3812, "nodeType": "ExpressionStatement", - "src": "6058:37:25" + "src": "6058:37:26" }, { "eventCall": { @@ -12145,18 +12145,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3660, + "id": 3814, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6119:3:25", + "referencedDeclaration": 4491, + "src": "6119:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3661, + "id": 3815, "isConstant": false, "isLValue": false, "isPure": false, @@ -12164,7 +12164,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6119:10:25", + "src": "6119:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12172,12 +12172,12 @@ }, { "argumentTypes": null, - "id": 3662, + "id": 3816, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6131:7:25", + "referencedDeclaration": 3797, + "src": "6131:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12185,12 +12185,12 @@ }, { "argumentTypes": null, - "id": 3663, + "id": 3817, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6140:6:25", + "referencedDeclaration": 3799, + "src": "6140:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12212,18 +12212,18 @@ "typeString": "uint256" } ], - "id": 3659, + "id": 3813, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "6110:8:25", + "referencedDeclaration": 3578, + "src": "6110:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3664, + "id": 3818, "isConstant": false, "isLValue": false, "isPure": false, @@ -12231,28 +12231,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6110:37:25", + "src": "6110:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3665, + "id": 3819, "nodeType": "EmitStatement", - "src": "6105:42:25" + "src": "6105:42:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3666, + "id": 3820, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6164:4:25", + "src": "6164:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12260,15 +12260,15 @@ }, "value": "true" }, - "functionReturnParameters": 3649, - "id": 3667, + "functionReturnParameters": 3803, + "id": 3821, "nodeType": "Return", - "src": "6157:11:25" + "src": "6157:11:26" } ] }, "documentation": null, - "id": 3669, + "id": 3823, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12276,16 +12276,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3646, + "id": 3800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3643, + "id": 3797, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "5988:15:25", + "scope": 3823, + "src": "5988:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12293,10 +12293,10 @@ "typeString": "address" }, "typeName": { - "id": 3642, + "id": 3796, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5988:7:25", + "src": "5988:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12307,11 +12307,11 @@ }, { "constant": false, - "id": 3645, + "id": 3799, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6005:11:25", + "scope": 3823, + "src": "6005:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12319,10 +12319,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3644, + "id": 3798, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6005:4:25", + "src": "6005:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12332,20 +12332,20 @@ "visibility": "internal" } ], - "src": "5987:30:25" + "src": "5987:30:26" }, "payable": false, "returnParameters": { - "id": 3649, + "id": 3803, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3648, + "id": 3802, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6034:12:25", + "scope": 3823, + "src": "6034:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12353,10 +12353,10 @@ "typeString": "bool" }, "typeName": { - "id": 3647, + "id": 3801, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6034:4:25", + "src": "6034:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12366,24 +12366,24 @@ "visibility": "internal" } ], - "src": "6033:14:25" + "src": "6033:14:26" }, - "scope": 3813, - "src": "5971:204:25", + "scope": 3967, + "src": "5971:204:26", "stateMutability": "nonpayable", - "superFunction": 3397, + "superFunction": 3551, "visibility": "public" }, { "body": { - "id": 3727, + "id": 3881, "nodeType": "Block", - "src": "6798:246:25", + "src": "6798:246:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3689, + "id": 3843, "isConstant": false, "isLValue": false, "isPure": false, @@ -12392,26 +12392,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3680, + "id": 3834, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6808:8:25", + "referencedDeclaration": 3679, + "src": "6808:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3682, + "id": 3836, "indexExpression": { "argumentTypes": null, - "id": 3681, + "id": 3835, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6817:4:25", + "referencedDeclaration": 3825, + "src": "6817:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12422,7 +12422,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6808:14:25", + "src": "6808:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12435,12 +12435,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3687, + "id": 3841, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6844:6:25", + "referencedDeclaration": 3829, + "src": "6844:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12458,26 +12458,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3683, + "id": 3837, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6825:8:25", + "referencedDeclaration": 3679, + "src": "6825:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3685, + "id": 3839, "indexExpression": { "argumentTypes": null, - "id": 3684, + "id": 3838, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6834:4:25", + "referencedDeclaration": 3825, + "src": "6834:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12488,27 +12488,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6825:14:25", + "src": "6825:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3686, + "id": 3840, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6825:18:25", + "referencedDeclaration": 3461, + "src": "6825:18:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3688, + "id": 3842, "isConstant": false, "isLValue": false, "isPure": false, @@ -12516,26 +12516,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6825:26:25", + "src": "6825:26:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6808:43:25", + "src": "6808:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3690, + "id": 3844, "nodeType": "ExpressionStatement", - "src": "6808:43:25" + "src": "6808:43:26" }, { "expression": { "argumentTypes": null, - "id": 3706, + "id": 3860, "isConstant": false, "isLValue": false, "isPure": false, @@ -12546,26 +12546,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3691, + "id": 3845, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6861:7:25", + "referencedDeclaration": 3685, + "src": "6861:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3695, + "id": 3849, "indexExpression": { "argumentTypes": null, - "id": 3692, + "id": 3846, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6869:4:25", + "referencedDeclaration": 3825, + "src": "6869:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12576,29 +12576,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6861:13:25", + "src": "6861:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3696, + "id": 3850, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3693, + "id": 3847, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6875:3:25", + "referencedDeclaration": 4491, + "src": "6875:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3694, + "id": 3848, "isConstant": false, "isLValue": false, "isPure": false, @@ -12606,7 +12606,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6875:10:25", + "src": "6875:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12617,7 +12617,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6861:25:25", + "src": "6861:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12630,12 +12630,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3704, + "id": 3858, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6919:6:25", + "referencedDeclaration": 3829, + "src": "6919:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12655,26 +12655,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3697, + "id": 3851, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6889:7:25", + "referencedDeclaration": 3685, + "src": "6889:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3699, + "id": 3853, "indexExpression": { "argumentTypes": null, - "id": 3698, + "id": 3852, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6897:4:25", + "referencedDeclaration": 3825, + "src": "6897:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12685,29 +12685,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:13:25", + "src": "6889:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3702, + "id": 3856, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3700, + "id": 3854, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6903:3:25", + "referencedDeclaration": 4491, + "src": "6903:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3701, + "id": 3855, "isConstant": false, "isLValue": false, "isPure": false, @@ -12715,7 +12715,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6903:10:25", + "src": "6903:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12726,27 +12726,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:25:25", + "src": "6889:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3703, + "id": 3857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6889:29:25", + "referencedDeclaration": 3461, + "src": "6889:29:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3705, + "id": 3859, "isConstant": false, "isLValue": false, "isPure": false, @@ -12754,26 +12754,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6889:37:25", + "src": "6889:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6861:65:25", + "src": "6861:65:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3707, + "id": 3861, "nodeType": "ExpressionStatement", - "src": "6861:65:25" + "src": "6861:65:26" }, { "expression": { "argumentTypes": null, - "id": 3717, + "id": 3871, "isConstant": false, "isLValue": false, "isPure": false, @@ -12782,26 +12782,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3708, + "id": 3862, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6936:8:25", + "referencedDeclaration": 3679, + "src": "6936:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3710, + "id": 3864, "indexExpression": { "argumentTypes": null, - "id": 3709, + "id": 3863, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6945:2:25", + "referencedDeclaration": 3827, + "src": "6945:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12812,7 +12812,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6936:12:25", + "src": "6936:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12825,12 +12825,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3715, + "id": 3869, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6968:6:25", + "referencedDeclaration": 3829, + "src": "6968:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12848,26 +12848,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3711, + "id": 3865, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6951:8:25", + "referencedDeclaration": 3679, + "src": "6951:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3713, + "id": 3867, "indexExpression": { "argumentTypes": null, - "id": 3712, + "id": 3866, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6960:2:25", + "referencedDeclaration": 3827, + "src": "6960:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12878,27 +12878,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6951:12:25", + "src": "6951:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3714, + "id": 3868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "6951:16:25", + "referencedDeclaration": 3439, + "src": "6951:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3716, + "id": 3870, "isConstant": false, "isLValue": false, "isPure": false, @@ -12906,21 +12906,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6951:24:25", + "src": "6951:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6936:39:25", + "src": "6936:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3718, + "id": 3872, "nodeType": "ExpressionStatement", - "src": "6936:39:25" + "src": "6936:39:26" }, { "eventCall": { @@ -12928,12 +12928,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3720, + "id": 3874, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6999:4:25", + "referencedDeclaration": 3825, + "src": "6999:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12941,12 +12941,12 @@ }, { "argumentTypes": null, - "id": 3721, + "id": 3875, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "7005:2:25", + "referencedDeclaration": 3827, + "src": "7005:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12954,12 +12954,12 @@ }, { "argumentTypes": null, - "id": 3722, + "id": 3876, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "7009:6:25", + "referencedDeclaration": 3829, + "src": "7009:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12981,18 +12981,18 @@ "typeString": "uint256" } ], - "id": 3719, + "id": 3873, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "6990:8:25", + "referencedDeclaration": 3570, + "src": "6990:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3723, + "id": 3877, "isConstant": false, "isLValue": false, "isPure": false, @@ -13000,28 +13000,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6990:26:25", + "src": "6990:26:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3724, + "id": 3878, "nodeType": "EmitStatement", - "src": "6985:31:25" + "src": "6985:31:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3725, + "id": 3879, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7033:4:25", + "src": "7033:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13029,15 +13029,15 @@ }, "value": "true" }, - "functionReturnParameters": 3679, - "id": 3726, + "functionReturnParameters": 3833, + "id": 3880, "nodeType": "Return", - "src": "7026:11:25" + "src": "7026:11:26" } ] }, "documentation": null, - "id": 3728, + "id": 3882, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -13045,16 +13045,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3676, + "id": 3830, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3671, + "id": 3825, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6729:12:25", + "scope": 3882, + "src": "6729:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13062,10 +13062,10 @@ "typeString": "address" }, "typeName": { - "id": 3670, + "id": 3824, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6729:7:25", + "src": "6729:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13076,11 +13076,11 @@ }, { "constant": false, - "id": 3673, + "id": 3827, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6743:10:25", + "scope": 3882, + "src": "6743:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13088,10 +13088,10 @@ "typeString": "address" }, "typeName": { - "id": 3672, + "id": 3826, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6743:7:25", + "src": "6743:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13102,11 +13102,11 @@ }, { "constant": false, - "id": 3675, + "id": 3829, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6755:11:25", + "scope": 3882, + "src": "6755:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13114,10 +13114,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3674, + "id": 3828, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6755:4:25", + "src": "6755:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13127,20 +13127,20 @@ "visibility": "internal" } ], - "src": "6728:39:25" + "src": "6728:39:26" }, "payable": false, "returnParameters": { - "id": 3679, + "id": 3833, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3678, + "id": 3832, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6784:12:25", + "scope": 3882, + "src": "6784:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13148,10 +13148,10 @@ "typeString": "bool" }, "typeName": { - "id": 3677, + "id": 3831, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6784:4:25", + "src": "6784:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13161,19 +13161,19 @@ "visibility": "internal" } ], - "src": "6783:14:25" + "src": "6783:14:26" }, - "scope": 3813, - "src": "6707:337:25", + "scope": 3967, + "src": "6707:337:26", "stateMutability": "nonpayable", - "superFunction": 3408, + "superFunction": 3562, "visibility": "public" }, { "body": { - "id": 3743, + "id": 3897, "nodeType": "Block", - "src": "7418:52:25", + "src": "7418:52:26", "statements": [ { "expression": { @@ -13182,26 +13182,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3737, + "id": 3891, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7435:7:25", + "referencedDeclaration": 3685, + "src": "7435:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3739, + "id": 3893, "indexExpression": { "argumentTypes": null, - "id": 3738, + "id": 3892, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3730, - "src": "7443:10:25", + "referencedDeclaration": 3884, + "src": "7443:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13212,21 +13212,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:19:25", + "src": "7435:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3741, + "id": 3895, "indexExpression": { "argumentTypes": null, - "id": 3740, + "id": 3894, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "7455:7:25", + "referencedDeclaration": 3886, + "src": "7455:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13237,21 +13237,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:28:25", + "src": "7435:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3736, - "id": 3742, + "functionReturnParameters": 3890, + "id": 3896, "nodeType": "Return", - "src": "7428:35:25" + "src": "7428:35:26" } ] }, "documentation": null, - "id": 3744, + "id": 3898, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13259,16 +13259,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3733, + "id": 3887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3730, + "id": 3884, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7344:18:25", + "scope": 3898, + "src": "7344:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13276,10 +13276,10 @@ "typeString": "address" }, "typeName": { - "id": 3729, + "id": 3883, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7344:7:25", + "src": "7344:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13290,11 +13290,11 @@ }, { "constant": false, - "id": 3732, + "id": 3886, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7364:15:25", + "scope": 3898, + "src": "7364:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13302,10 +13302,10 @@ "typeString": "address" }, "typeName": { - "id": 3731, + "id": 3885, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7364:7:25", + "src": "7364:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13315,20 +13315,20 @@ "visibility": "internal" } ], - "src": "7343:37:25" + "src": "7343:37:26" }, "payable": false, "returnParameters": { - "id": 3736, + "id": 3890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3735, + "id": 3889, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7402:14:25", + "scope": 3898, + "src": "7402:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13336,10 +13336,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3734, + "id": 3888, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7402:4:25", + "src": "7402:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13349,24 +13349,24 @@ "visibility": "internal" } ], - "src": "7401:16:25" + "src": "7401:16:26" }, - "scope": 3813, - "src": "7325:145:25", + "scope": 3967, + "src": "7325:145:26", "stateMutability": "view", - "superFunction": 3379, + "superFunction": 3533, "visibility": "public" }, { "body": { - "id": 3784, + "id": 3938, "nodeType": "Block", - "src": "7926:216:25", + "src": "7926:216:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3762, + "id": 3916, "isConstant": false, "isLValue": false, "isPure": false, @@ -13377,34 +13377,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3755, + "id": 3909, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7936:7:25", + "referencedDeclaration": 3685, + "src": "7936:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3759, + "id": 3913, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3756, + "id": 3910, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7944:3:25", + "referencedDeclaration": 4491, + "src": "7944:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3757, + "id": 3911, "isConstant": false, "isLValue": false, "isPure": false, @@ -13412,7 +13412,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7944:10:25", + "src": "7944:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13423,21 +13423,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7936:19:25", + "src": "7936:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3760, + "id": 3914, "indexExpression": { "argumentTypes": null, - "id": 3758, + "id": 3912, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "7956:7:25", + "referencedDeclaration": 3900, + "src": "7956:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13448,7 +13448,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7936:28:25", + "src": "7936:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13458,26 +13458,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3761, + "id": 3915, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "7967:6:25", + "referencedDeclaration": 3902, + "src": "7967:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7936:37:25", + "src": "7936:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3763, + "id": 3917, "nodeType": "ExpressionStatement", - "src": "7936:37:25" + "src": "7936:37:26" }, { "eventCall": { @@ -13487,18 +13487,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3765, + "id": 3919, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7997:3:25", + "referencedDeclaration": 4491, + "src": "7997:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3766, + "id": 3920, "isConstant": false, "isLValue": false, "isPure": false, @@ -13506,7 +13506,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7997:10:25", + "src": "7997:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13514,12 +13514,12 @@ }, { "argumentTypes": null, - "id": 3767, + "id": 3921, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8009:7:25", + "referencedDeclaration": 3900, + "src": "8009:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13527,12 +13527,12 @@ }, { "argumentTypes": null, - "id": 3768, + "id": 3922, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8018:6:25", + "referencedDeclaration": 3902, + "src": "8018:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13554,18 +13554,18 @@ "typeString": "uint256" } ], - "id": 3764, + "id": 3918, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "7988:8:25", + "referencedDeclaration": 3578, + "src": "7988:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3769, + "id": 3923, "isConstant": false, "isLValue": false, "isPure": false, @@ -13573,15 +13573,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7988:37:25", + "src": "7988:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3770, + "id": 3924, "nodeType": "EmitStatement", - "src": "7983:42:25" + "src": "7983:42:26" }, { "expression": { @@ -13591,18 +13591,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3775, + "id": 3929, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "8083:3:25", + "referencedDeclaration": 4491, + "src": "8083:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3776, + "id": 3930, "isConstant": false, "isLValue": false, "isPure": false, @@ -13610,7 +13610,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8083:10:25", + "src": "8083:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13618,12 +13618,12 @@ }, { "argumentTypes": null, - "id": 3777, + "id": 3931, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8095:6:25", + "referencedDeclaration": 3902, + "src": "8095:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13631,25 +13631,25 @@ }, { "argumentTypes": null, - "id": 3778, + "id": 3932, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3907, - "src": "8103:4:25", + "referencedDeclaration": 4574, + "src": "8103:4:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" } }, { "argumentTypes": null, - "id": 3779, + "id": 3933, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3750, - "src": "8109:4:25", + "referencedDeclaration": 3904, + "src": "8109:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -13667,7 +13667,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" }, { @@ -13680,12 +13680,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3772, + "id": 3926, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8058:7:25", + "referencedDeclaration": 3900, + "src": "8058:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13699,18 +13699,18 @@ "typeString": "address" } ], - "id": 3771, + "id": 3925, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3437, - "src": "8035:22:25", + "referencedDeclaration": 3591, + "src": "8035:22:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, - "id": 3773, + "id": 3927, "isConstant": false, "isLValue": false, "isPure": false, @@ -13718,27 +13718,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:31:25", + "src": "8035:31:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", "typeString": "contract ApproveAndCallFallBack" } }, - "id": 3774, + "id": 3928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", - "referencedDeclaration": 3436, - "src": "8035:47:25", + "referencedDeclaration": 3590, + "src": "8035:47:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,address,bytes memory) external" } }, - "id": 3780, + "id": 3934, "isConstant": false, "isLValue": false, "isPure": false, @@ -13746,28 +13746,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:79:25", + "src": "8035:79:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3781, + "id": 3935, "nodeType": "ExpressionStatement", - "src": "8035:79:25" + "src": "8035:79:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3782, + "id": 3936, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8131:4:25", + "src": "8131:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13775,15 +13775,15 @@ }, "value": "true" }, - "functionReturnParameters": 3754, - "id": 3783, + "functionReturnParameters": 3908, + "id": 3937, "nodeType": "Return", - "src": "8124:11:25" + "src": "8124:11:26" } ] }, "documentation": null, - "id": 3785, + "id": 3939, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -13791,16 +13791,16 @@ "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 3751, + "id": 3905, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3746, + "id": 3900, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7854:15:25", + "scope": 3939, + "src": "7854:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13808,10 +13808,10 @@ "typeString": "address" }, "typeName": { - "id": 3745, + "id": 3899, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7854:7:25", + "src": "7854:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13822,11 +13822,11 @@ }, { "constant": false, - "id": 3748, + "id": 3902, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7871:11:25", + "scope": 3939, + "src": "7871:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13834,10 +13834,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3747, + "id": 3901, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7871:4:25", + "src": "7871:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13848,11 +13848,11 @@ }, { "constant": false, - "id": 3750, + "id": 3904, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7884:10:25", + "scope": 3939, + "src": "7884:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13860,10 +13860,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3749, + "id": 3903, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7884:5:25", + "src": "7884:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -13873,20 +13873,20 @@ "visibility": "internal" } ], - "src": "7853:42:25" + "src": "7853:42:26" }, "payable": false, "returnParameters": { - "id": 3754, + "id": 3908, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3753, + "id": 3907, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7912:12:25", + "scope": 3939, + "src": "7912:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13894,10 +13894,10 @@ "typeString": "bool" }, "typeName": { - "id": 3752, + "id": 3906, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7912:4:25", + "src": "7912:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13907,19 +13907,19 @@ "visibility": "internal" } ], - "src": "7911:14:25" + "src": "7911:14:26" }, - "scope": 3813, - "src": "7830:312:25", + "scope": 3967, + "src": "7830:312:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3791, + "id": 3945, "nodeType": "Block", - "src": "8360:25:25", + "src": "8360:25:26", "statements": [ { "expression": { @@ -13927,21 +13927,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3788, + "id": 3942, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 3833, - 3834 + 4496, + 4497 ], - "referencedDeclaration": 3833, - "src": "8370:6:25", + "referencedDeclaration": 4496, + "src": "8370:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 3789, + "id": 3943, "isConstant": false, "isLValue": false, "isPure": false, @@ -13949,20 +13949,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8370:8:25", + "src": "8370:8:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3790, + "id": 3944, "nodeType": "ExpressionStatement", - "src": "8370:8:25" + "src": "8370:8:26" } ] }, "documentation": null, - "id": 3792, + "id": 3946, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -13970,29 +13970,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3786, + "id": 3940, "nodeType": "ParameterList", "parameters": [], - "src": "8342:2:25" + "src": "8342:2:26" }, "payable": true, "returnParameters": { - "id": 3787, + "id": 3941, "nodeType": "ParameterList", "parameters": [], - "src": "8360:0:25" + "src": "8360:0:26" }, - "scope": 3813, - "src": "8333:52:25", + "scope": 3967, + "src": "8333:52:26", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3811, + "id": 3965, "nodeType": "Block", - "src": "8723:76:25", + "src": "8723:76:26", "statements": [ { "expression": { @@ -14000,12 +14000,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3807, + "id": 3961, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "8778:5:25", + "referencedDeclaration": 3593, + "src": "8778:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14013,12 +14013,12 @@ }, { "argumentTypes": null, - "id": 3808, + "id": 3962, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3796, - "src": "8785:6:25", + "referencedDeclaration": 3950, + "src": "8785:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14041,12 +14041,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3804, + "id": 3958, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3794, - "src": "8755:12:25", + "referencedDeclaration": 3948, + "src": "8755:12:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14060,18 +14060,18 @@ "typeString": "address" } ], - "id": 3803, + "id": 3957, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3425, - "src": "8740:14:25", + "referencedDeclaration": 3579, + "src": "8740:14:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", "typeString": "type(contract ERC20Interface)" } }, - "id": 3805, + "id": 3959, "isConstant": false, "isLValue": false, "isPure": false, @@ -14079,27 +14079,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:28:25", + "src": "8740:28:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3806, + "id": 3960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 3388, - "src": "8740:37:25", + "referencedDeclaration": 3542, + "src": "8740:37:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 3809, + "id": 3963, "isConstant": false, "isLValue": false, "isPure": false, @@ -14107,58 +14107,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:52:25", + "src": "8740:52:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3802, - "id": 3810, + "functionReturnParameters": 3956, + "id": 3964, "nodeType": "Return", - "src": "8733:59:25" + "src": "8733:59:26" } ] }, "documentation": null, - "id": 3812, + "id": 3966, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3799, + "id": 3953, "modifierName": { "argumentTypes": null, - "id": 3798, + "id": 3952, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "8690:9:25", + "referencedDeclaration": 3621, + "src": "8690:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8690:9:25" + "src": "8690:9:26" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 3797, + "id": 3951, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3794, + "id": 3948, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8648:20:25", + "scope": 3966, + "src": "8648:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14166,10 +14166,10 @@ "typeString": "address" }, "typeName": { - "id": 3793, + "id": 3947, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8648:7:25", + "src": "8648:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14180,11 +14180,11 @@ }, { "constant": false, - "id": 3796, + "id": 3950, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8670:11:25", + "scope": 3966, + "src": "8670:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14192,10 +14192,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3795, + "id": 3949, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8670:4:25", + "src": "8670:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14205,20 +14205,20 @@ "visibility": "internal" } ], - "src": "8647:35:25" + "src": "8647:35:26" }, "payable": false, "returnParameters": { - "id": 3802, + "id": 3956, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3801, + "id": 3955, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8709:12:25", + "scope": 3966, + "src": "8709:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14226,10 +14226,10 @@ "typeString": "bool" }, "typeName": { - "id": 3800, + "id": 3954, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8709:4:25", + "src": "8709:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14239,20 +14239,20 @@ "visibility": "internal" } ], - "src": "8708:14:25" + "src": "8708:14:26" }, - "scope": 3813, - "src": "8617:182:25", + "scope": 3967, + "src": "8617:182:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "3506:5295:25" + "scope": 3968, + "src": "3506:5295:26" } ], - "src": "0:8801:25" + "src": "0:8801:26" }, "compiler": { "name": "solc", @@ -14260,5 +14260,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.105Z" + "updatedAt": "2018-09-26T08:32:07.660Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/SafeMath.json b/safe-contracts/build/contracts/test/SafeMath.json index 5046e62a..9615bc52 100644 --- a/safe-contracts/build/contracts/test/SafeMath.json +++ b/safe-contracts/build/contracts/test/SafeMath.json @@ -3,34 +3,34 @@ "abi": [], "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058207b85988d9fca11f15e3ba4c2a2e5ad1c0debc1a24f938c9db30c754a373620960029", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058207b85988d9fca11f15e3ba4c2a2e5ad1c0debc1a24f938c9db30c754a373620960029", - "sourceMap": "636:497:25:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "636:497:25:-;;;;;;;;", + "sourceMap": "636:497:26:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "636:497:26:-;;;;;;;;", "source": "pragma solidity ^0.4.24;\n\n// ----------------------------------------------------------------------------\n// 'FIXED' 'Example Fixed Supply Token' token contract\n//\n// Symbol : FIXED\n// Name : Example Fixed Supply Token\n// Total supply: 1,000,000.000000000000000000\n// Decimals : 18\n//\n// Enjoy.\n//\n// (c) BokkyPooBah / Bok Consulting Pty Ltd 2018. The MIT Licence.\n// ----------------------------------------------------------------------------\n\n\n// ----------------------------------------------------------------------------\n// Safe maths\n// ----------------------------------------------------------------------------\nlibrary SafeMath {\n function add(uint a, uint b) internal pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n function sub(uint a, uint b) internal pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n function mul(uint a, uint b) internal pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n function div(uint a, uint b) internal pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC Token Standard #20 Interface\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n// ----------------------------------------------------------------------------\ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n\n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n\n// ----------------------------------------------------------------------------\n// Contract function to receive approval and execute function in one call\n//\n// Borrowed from MiniMeToken\n// ----------------------------------------------------------------------------\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n\n// ----------------------------------------------------------------------------\n// Owned contract\n// ----------------------------------------------------------------------------\ncontract Owned {\n address public owner;\n address public newOwner;\n\n event OwnershipTransferred(address indexed _from, address indexed _to);\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner {\n require(msg.sender == owner);\n _;\n }\n\n function transferOwnership(address _newOwner) public onlyOwner {\n newOwner = _newOwner;\n }\n function acceptOwnership() public {\n require(msg.sender == newOwner);\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n newOwner = address(0);\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and a\n// fixed supply\n// ----------------------------------------------------------------------------\ncontract TestToken is ERC20Interface, Owned {\n using SafeMath for uint;\n\n string public symbol;\n string public name;\n uint8 public decimals;\n uint _totalSupply;\n\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n\n\n // ------------------------------------------------------------------------\n // Constructor\n // ------------------------------------------------------------------------\n constructor() public {\n symbol = \"TKN\";\n name = \"Token Example\";\n decimals = 18;\n _totalSupply = 1000000 * 10**uint(decimals);\n balances[owner] = _totalSupply;\n emit Transfer(address(0), owner, _totalSupply);\n }\n\n\n // ------------------------------------------------------------------------\n // Total supply\n // ------------------------------------------------------------------------\n function totalSupply() public view returns (uint) {\n return _totalSupply.sub(balances[address(0)]);\n }\n\n\n // ------------------------------------------------------------------------\n // Get the token balance for account `tokenOwner`\n // ------------------------------------------------------------------------\n function balanceOf(address tokenOwner) public view returns (uint balance) {\n return balances[tokenOwner];\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer the balance from token owner's account to `to` account\n // - Owner's account must have sufficient balance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = balances[msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account\n //\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n // recommends that there are no checks for the approval double-spend attack\n // as this should be implemented in user interfaces \n // ------------------------------------------------------------------------\n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer `tokens` from the `from` account to the `to` account\n // \n // The calling account must already have sufficient tokens approve(...)-d\n // for spending from the `from` account and\n // - From account must have sufficient balance to transfer\n // - Spender must have sufficient allowance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = balances[from].sub(tokens);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Returns the amount of tokens approved by the owner that can be\n // transferred to the spender's account\n // ------------------------------------------------------------------------\n function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account. The `spender` contract function\n // `receiveApproval(...)` is then executed\n // ------------------------------------------------------------------------\n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Don't accept ETH\n // ------------------------------------------------------------------------\n function () public payable {\n revert();\n }\n\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return ERC20Interface(tokenAddress).transfer(owner, tokens);\n }\n}", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ - 3437 + 3591 ], "ERC20Interface": [ - 3425 + 3579 ], "Owned": [ - 3506 + 3660 ], "SafeMath": [ - 3358 + 3512 ], "TestToken": [ - 3813 + 3967 ] }, - "id": 3814, + "id": 3968, "nodeType": "SourceUnit", "nodes": [ { - "id": 3263, + "id": 3417, "literals": [ "solidity", "^", @@ -38,7 +38,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:24:26" }, { "baseContracts": [], @@ -46,35 +46,35 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 3358, + "id": 3512, "linearizedBaseContracts": [ - 3358 + 3512 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3284, + "id": 3438, "nodeType": "Block", - "src": "719:51:25", + "src": "719:51:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3276, + "id": 3430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3272, + "id": 3426, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "729:1:25", + "referencedDeclaration": 3424, + "src": "729:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -88,19 +88,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3275, + "id": 3429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3273, + "id": 3427, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "733:1:25", + "referencedDeclaration": 3419, + "src": "733:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -110,32 +110,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 3274, + "id": 3428, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3267, - "src": "737:1:25", + "referencedDeclaration": 3421, + "src": "737:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:5:25", + "src": "733:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "729:9:25", + "src": "729:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3277, + "id": 3431, "nodeType": "ExpressionStatement", - "src": "729:9:25" + "src": "729:9:26" }, { "expression": { @@ -147,19 +147,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3281, + "id": 3435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3279, + "id": 3433, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "756:1:25", + "referencedDeclaration": 3424, + "src": "756:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -169,18 +169,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 3280, + "id": 3434, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "761:1:25", + "referencedDeclaration": 3419, + "src": "761:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "756:6:25", + "src": "756:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -194,21 +194,21 @@ "typeString": "bool" } ], - "id": 3278, + "id": 3432, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "748:7:25", + "referencedDeclaration": 4494, + "src": "748:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3282, + "id": 3436, "isConstant": false, "isLValue": false, "isPure": false, @@ -216,20 +216,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:15:25", + "src": "748:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3283, + "id": 3437, "nodeType": "ExpressionStatement", - "src": "748:15:25" + "src": "748:15:26" } ] }, "documentation": null, - "id": 3285, + "id": 3439, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -237,16 +237,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 3268, + "id": 3422, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3265, + "id": 3419, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "672:6:25", + "scope": 3439, + "src": "672:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -254,10 +254,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3264, + "id": 3418, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "672:4:25", + "src": "672:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -268,11 +268,11 @@ }, { "constant": false, - "id": 3267, + "id": 3421, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "680:6:25", + "scope": 3439, + "src": "680:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -280,10 +280,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3266, + "id": 3420, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "680:4:25", + "src": "680:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -293,20 +293,20 @@ "visibility": "internal" } ], - "src": "671:16:25" + "src": "671:16:26" }, "payable": false, "returnParameters": { - "id": 3271, + "id": 3425, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3270, + "id": 3424, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "711:6:25", + "scope": 3439, + "src": "711:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -314,10 +314,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3269, + "id": 3423, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "711:4:25", + "src": "711:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -327,19 +327,19 @@ "visibility": "internal" } ], - "src": "710:8:25" + "src": "710:8:26" }, - "scope": 3358, - "src": "659:111:25", + "scope": 3512, + "src": "659:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3306, + "id": 3460, "nodeType": "Block", - "src": "835:51:25", + "src": "835:51:26", "statements": [ { "expression": { @@ -351,19 +351,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3297, + "id": 3451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3295, + "id": 3449, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "853:1:25", + "referencedDeclaration": 3443, + "src": "853:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -373,18 +373,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 3296, + "id": 3450, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "858:1:25", + "referencedDeclaration": 3441, + "src": "858:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "853:6:25", + "src": "853:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -398,21 +398,21 @@ "typeString": "bool" } ], - "id": 3294, + "id": 3448, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "845:7:25", + "referencedDeclaration": 4494, + "src": "845:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3298, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, @@ -420,32 +420,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:15:25", + "src": "845:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3299, + "id": 3453, "nodeType": "ExpressionStatement", - "src": "845:15:25" + "src": "845:15:26" }, { "expression": { "argumentTypes": null, - "id": 3304, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3300, + "id": 3454, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3292, - "src": "870:1:25", + "referencedDeclaration": 3446, + "src": "870:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -459,19 +459,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3303, + "id": 3457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3301, + "id": 3455, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "874:1:25", + "referencedDeclaration": 3441, + "src": "874:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -481,37 +481,37 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 3302, + "id": 3456, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "878:1:25", + "referencedDeclaration": 3443, + "src": "878:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "874:5:25", + "src": "874:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "870:9:25", + "src": "870:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3305, + "id": 3459, "nodeType": "ExpressionStatement", - "src": "870:9:25" + "src": "870:9:26" } ] }, "documentation": null, - "id": 3307, + "id": 3461, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -519,16 +519,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 3290, + "id": 3444, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3287, + "id": 3441, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "788:6:25", + "scope": 3461, + "src": "788:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -536,10 +536,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3286, + "id": 3440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "788:4:25", + "src": "788:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -550,11 +550,11 @@ }, { "constant": false, - "id": 3289, + "id": 3443, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "796:6:25", + "scope": 3461, + "src": "796:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -562,10 +562,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3288, + "id": 3442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "796:4:25", + "src": "796:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -575,20 +575,20 @@ "visibility": "internal" } ], - "src": "787:16:25" + "src": "787:16:26" }, "payable": false, "returnParameters": { - "id": 3293, + "id": 3447, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3292, + "id": 3446, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "827:6:25", + "scope": 3461, + "src": "827:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -596,10 +596,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3291, + "id": 3445, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:25", + "src": "827:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -609,36 +609,36 @@ "visibility": "internal" } ], - "src": "826:8:25" + "src": "826:8:26" }, - "scope": 3358, - "src": "775:111:25", + "scope": 3512, + "src": "775:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3334, + "id": 3488, "nodeType": "Block", - "src": "951:65:25", + "src": "951:65:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3320, + "id": 3474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3316, + "id": 3470, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "961:1:25", + "referencedDeclaration": 3468, + "src": "961:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -652,19 +652,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3319, + "id": 3473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3317, + "id": 3471, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "965:1:25", + "referencedDeclaration": 3463, + "src": "965:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -674,32 +674,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 3318, + "id": 3472, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "969:1:25", + "referencedDeclaration": 3465, + "src": "969:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "965:5:25", + "src": "965:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "961:9:25", + "src": "961:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3321, + "id": 3475, "nodeType": "ExpressionStatement", - "src": "961:9:25" + "src": "961:9:26" }, { "expression": { @@ -711,7 +711,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3331, + "id": 3485, "isConstant": false, "isLValue": false, "isPure": false, @@ -722,19 +722,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3325, + "id": 3479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3323, + "id": 3477, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "988:1:25", + "referencedDeclaration": 3463, + "src": "988:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -745,14 +745,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3324, + "id": 3478, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "993:1:25", + "src": "993:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -760,7 +760,7 @@ }, "value": "0" }, - "src": "988:6:25", + "src": "988:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -774,7 +774,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3330, + "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, @@ -785,19 +785,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3328, + "id": 3482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3326, + "id": 3480, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "998:1:25", + "referencedDeclaration": 3468, + "src": "998:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -807,18 +807,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3327, + "id": 3481, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "1002:1:25", + "referencedDeclaration": 3463, + "src": "1002:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:5:25", + "src": "998:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -828,24 +828,24 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3329, + "id": 3483, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "1007:1:25", + "referencedDeclaration": 3465, + "src": "1007:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:25", + "src": "998:10:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "988:20:25", + "src": "988:20:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -859,21 +859,21 @@ "typeString": "bool" } ], - "id": 3322, + "id": 3476, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "980:7:25", + "referencedDeclaration": 4494, + "src": "980:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3332, + "id": 3486, "isConstant": false, "isLValue": false, "isPure": false, @@ -881,20 +881,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "980:29:25", + "src": "980:29:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3333, + "id": 3487, "nodeType": "ExpressionStatement", - "src": "980:29:25" + "src": "980:29:26" } ] }, "documentation": null, - "id": 3335, + "id": 3489, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -902,16 +902,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 3312, + "id": 3466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3309, + "id": 3463, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "904:6:25", + "scope": 3489, + "src": "904:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -919,10 +919,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3308, + "id": 3462, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "904:4:25", + "src": "904:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -933,11 +933,11 @@ }, { "constant": false, - "id": 3311, + "id": 3465, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "912:6:25", + "scope": 3489, + "src": "912:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -945,10 +945,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3310, + "id": 3464, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "912:4:25", + "src": "912:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -958,20 +958,20 @@ "visibility": "internal" } ], - "src": "903:16:25" + "src": "903:16:26" }, "payable": false, "returnParameters": { - "id": 3315, + "id": 3469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3314, + "id": 3468, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "943:6:25", + "scope": 3489, + "src": "943:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -979,10 +979,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3313, + "id": 3467, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "943:4:25", + "src": "943:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -992,19 +992,19 @@ "visibility": "internal" } ], - "src": "942:8:25" + "src": "942:8:26" }, - "scope": 3358, - "src": "891:125:25", + "scope": 3512, + "src": "891:125:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3356, + "id": 3510, "nodeType": "Block", - "src": "1081:50:25", + "src": "1081:50:26", "statements": [ { "expression": { @@ -1016,19 +1016,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3347, + "id": 3501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3345, + "id": 3499, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1099:1:25", + "referencedDeclaration": 3493, + "src": "1099:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1039,14 +1039,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3346, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:1:25", + "src": "1103:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1054,7 +1054,7 @@ }, "value": "0" }, - "src": "1099:5:25", + "src": "1099:5:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1068,21 +1068,21 @@ "typeString": "bool" } ], - "id": 3344, + "id": 3498, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "1091:7:25", + "referencedDeclaration": 4494, + "src": "1091:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3348, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, @@ -1090,32 +1090,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:14:25", + "src": "1091:14:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3349, + "id": 3503, "nodeType": "ExpressionStatement", - "src": "1091:14:25" + "src": "1091:14:26" }, { "expression": { "argumentTypes": null, - "id": 3354, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3350, + "id": 3504, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3342, - "src": "1115:1:25", + "referencedDeclaration": 3496, + "src": "1115:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1129,19 +1129,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3353, + "id": 3507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3351, + "id": 3505, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "1119:1:25", + "referencedDeclaration": 3491, + "src": "1119:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1151,37 +1151,37 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3352, + "id": 3506, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1123:1:25", + "referencedDeclaration": 3493, + "src": "1123:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:5:25", + "src": "1119:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1115:9:25", + "src": "1115:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3355, + "id": 3509, "nodeType": "ExpressionStatement", - "src": "1115:9:25" + "src": "1115:9:26" } ] }, "documentation": null, - "id": 3357, + "id": 3511, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1189,16 +1189,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 3340, + "id": 3494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3337, + "id": 3491, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1034:6:25", + "scope": 3511, + "src": "1034:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1206,10 +1206,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3336, + "id": 3490, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1034:4:25", + "src": "1034:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1220,11 +1220,11 @@ }, { "constant": false, - "id": 3339, + "id": 3493, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1042:6:25", + "scope": 3511, + "src": "1042:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1232,10 +1232,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3338, + "id": 3492, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1042:4:25", + "src": "1042:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1245,20 +1245,20 @@ "visibility": "internal" } ], - "src": "1033:16:25" + "src": "1033:16:26" }, "payable": false, "returnParameters": { - "id": 3343, + "id": 3497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3342, + "id": 3496, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1073:6:25", + "scope": 3511, + "src": "1073:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1266,10 +1266,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3341, + "id": 3495, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1073:4:25", + "src": "1073:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1279,17 +1279,17 @@ "visibility": "internal" } ], - "src": "1072:8:25" + "src": "1072:8:26" }, - "scope": 3358, - "src": "1021:110:25", + "scope": 3512, + "src": "1021:110:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 3814, - "src": "636:497:25" + "scope": 3968, + "src": "636:497:26" }, { "baseContracts": [], @@ -1297,9 +1297,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3425, + "id": 3579, "linearizedBaseContracts": [ - 3425 + 3579 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", @@ -1307,7 +1307,7 @@ { "body": null, "documentation": null, - "id": 3363, + "id": 3517, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1315,23 +1315,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3359, + "id": 3513, "nodeType": "ParameterList", "parameters": [], - "src": "1445:2:25" + "src": "1445:2:26" }, "payable": false, "returnParameters": { - "id": 3362, + "id": 3516, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3361, + "id": 3515, "name": "", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "1473:4:25", + "scope": 3517, + "src": "1473:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1339,10 +1339,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3360, + "id": 3514, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1473:4:25", + "src": "1473:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1352,10 +1352,10 @@ "visibility": "internal" } ], - "src": "1472:6:25" + "src": "1472:6:26" }, - "scope": 3425, - "src": "1425:54:25", + "scope": 3579, + "src": "1425:54:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1363,7 +1363,7 @@ { "body": null, "documentation": null, - "id": 3370, + "id": 3524, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1371,16 +1371,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3366, + "id": 3520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3365, + "id": 3519, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1503:18:25", + "scope": 3524, + "src": "1503:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1388,10 +1388,10 @@ "typeString": "address" }, "typeName": { - "id": 3364, + "id": 3518, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1503:7:25", + "src": "1503:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1401,20 +1401,20 @@ "visibility": "internal" } ], - "src": "1502:20:25" + "src": "1502:20:26" }, "payable": false, "returnParameters": { - "id": 3369, + "id": 3523, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3368, + "id": 3522, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1548:12:25", + "scope": 3524, + "src": "1548:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1422,10 +1422,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3367, + "id": 3521, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:25", + "src": "1548:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1435,10 +1435,10 @@ "visibility": "internal" } ], - "src": "1547:14:25" + "src": "1547:14:26" }, - "scope": 3425, - "src": "1484:78:25", + "scope": 3579, + "src": "1484:78:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1446,7 +1446,7 @@ { "body": null, "documentation": null, - "id": 3379, + "id": 3533, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1454,16 +1454,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3375, + "id": 3529, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3372, + "id": 3526, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1586:18:25", + "scope": 3533, + "src": "1586:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1471,10 +1471,10 @@ "typeString": "address" }, "typeName": { - "id": 3371, + "id": 3525, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:25", + "src": "1586:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1485,11 +1485,11 @@ }, { "constant": false, - "id": 3374, + "id": 3528, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1606:15:25", + "scope": 3533, + "src": "1606:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1497,10 +1497,10 @@ "typeString": "address" }, "typeName": { - "id": 3373, + "id": 3527, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1606:7:25", + "src": "1606:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1510,20 +1510,20 @@ "visibility": "internal" } ], - "src": "1585:37:25" + "src": "1585:37:26" }, "payable": false, "returnParameters": { - "id": 3378, + "id": 3532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3377, + "id": 3531, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1648:14:25", + "scope": 3533, + "src": "1648:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1531,10 +1531,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3376, + "id": 3530, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1648:4:25", + "src": "1648:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1544,10 +1544,10 @@ "visibility": "internal" } ], - "src": "1647:16:25" + "src": "1647:16:26" }, - "scope": 3425, - "src": "1567:97:25", + "scope": 3579, + "src": "1567:97:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1555,7 +1555,7 @@ { "body": null, "documentation": null, - "id": 3388, + "id": 3542, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1563,16 +1563,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3384, + "id": 3538, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3381, + "id": 3535, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1687:10:25", + "scope": 3542, + "src": "1687:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1580,10 +1580,10 @@ "typeString": "address" }, "typeName": { - "id": 3380, + "id": 3534, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:25", + "src": "1687:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1594,11 +1594,11 @@ }, { "constant": false, - "id": 3383, + "id": 3537, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1699:11:25", + "scope": 3542, + "src": "1699:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1606,10 +1606,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3382, + "id": 3536, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:25", + "src": "1699:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1619,20 +1619,20 @@ "visibility": "internal" } ], - "src": "1686:25:25" + "src": "1686:25:26" }, "payable": false, "returnParameters": { - "id": 3387, + "id": 3541, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3386, + "id": 3540, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1728:12:25", + "scope": 3542, + "src": "1728:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1640,10 +1640,10 @@ "typeString": "bool" }, "typeName": { - "id": 3385, + "id": 3539, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1728:4:25", + "src": "1728:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1653,10 +1653,10 @@ "visibility": "internal" } ], - "src": "1727:14:25" + "src": "1727:14:26" }, - "scope": 3425, - "src": "1669:73:25", + "scope": 3579, + "src": "1669:73:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1664,7 +1664,7 @@ { "body": null, "documentation": null, - "id": 3397, + "id": 3551, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1672,16 +1672,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3393, + "id": 3547, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3390, + "id": 3544, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1764:15:25", + "scope": 3551, + "src": "1764:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1689,10 +1689,10 @@ "typeString": "address" }, "typeName": { - "id": 3389, + "id": 3543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:25", + "src": "1764:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1703,11 +1703,11 @@ }, { "constant": false, - "id": 3392, + "id": 3546, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1781:11:25", + "scope": 3551, + "src": "1781:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1715,10 +1715,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3391, + "id": 3545, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:25", + "src": "1781:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1728,20 +1728,20 @@ "visibility": "internal" } ], - "src": "1763:30:25" + "src": "1763:30:26" }, "payable": false, "returnParameters": { - "id": 3396, + "id": 3550, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3395, + "id": 3549, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1810:12:25", + "scope": 3551, + "src": "1810:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1749,10 +1749,10 @@ "typeString": "bool" }, "typeName": { - "id": 3394, + "id": 3548, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1810:4:25", + "src": "1810:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1762,10 +1762,10 @@ "visibility": "internal" } ], - "src": "1809:14:25" + "src": "1809:14:26" }, - "scope": 3425, - "src": "1747:77:25", + "scope": 3579, + "src": "1747:77:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1773,7 +1773,7 @@ { "body": null, "documentation": null, - "id": 3408, + "id": 3562, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1781,16 +1781,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3404, + "id": 3558, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3399, + "id": 3553, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1851:12:25", + "scope": 3562, + "src": "1851:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1798,10 +1798,10 @@ "typeString": "address" }, "typeName": { - "id": 3398, + "id": 3552, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1851:7:25", + "src": "1851:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1812,11 +1812,11 @@ }, { "constant": false, - "id": 3401, + "id": 3555, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1865:10:25", + "scope": 3562, + "src": "1865:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1824,10 +1824,10 @@ "typeString": "address" }, "typeName": { - "id": 3400, + "id": 3554, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:25", + "src": "1865:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1838,11 +1838,11 @@ }, { "constant": false, - "id": 3403, + "id": 3557, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1877:11:25", + "scope": 3562, + "src": "1877:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1850,10 +1850,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3402, + "id": 3556, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1877:4:25", + "src": "1877:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1863,20 +1863,20 @@ "visibility": "internal" } ], - "src": "1850:39:25" + "src": "1850:39:26" }, "payable": false, "returnParameters": { - "id": 3407, + "id": 3561, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3406, + "id": 3560, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1906:12:25", + "scope": 3562, + "src": "1906:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1884,10 +1884,10 @@ "typeString": "bool" }, "typeName": { - "id": 3405, + "id": 3559, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1906:4:25", + "src": "1906:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1897,10 +1897,10 @@ "visibility": "internal" } ], - "src": "1905:14:25" + "src": "1905:14:26" }, - "scope": 3425, - "src": "1829:91:25", + "scope": 3579, + "src": "1829:91:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1908,21 +1908,21 @@ { "anonymous": false, "documentation": null, - "id": 3416, + "id": 3570, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 3415, + "id": 3569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3410, + "id": 3564, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1941:20:25", + "scope": 3570, + "src": "1941:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1930,10 +1930,10 @@ "typeString": "address" }, "typeName": { - "id": 3409, + "id": 3563, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1941:7:25", + "src": "1941:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1944,12 +1944,12 @@ }, { "constant": false, - "id": 3412, + "id": 3566, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1963:18:25", + "scope": 3570, + "src": "1963:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1957,10 +1957,10 @@ "typeString": "address" }, "typeName": { - "id": 3411, + "id": 3565, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1963:7:25", + "src": "1963:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1971,12 +1971,12 @@ }, { "constant": false, - "id": 3414, + "id": 3568, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1983:11:25", + "scope": 3570, + "src": "1983:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1984,10 +1984,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3413, + "id": 3567, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:25", + "src": "1983:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1997,28 +1997,28 @@ "visibility": "internal" } ], - "src": "1940:55:25" + "src": "1940:55:26" }, - "src": "1926:70:25" + "src": "1926:70:26" }, { "anonymous": false, "documentation": null, - "id": 3424, + "id": 3578, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 3423, + "id": 3577, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3418, + "id": 3572, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2016:26:25", + "scope": 3578, + "src": "2016:26:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2026,10 +2026,10 @@ "typeString": "address" }, "typeName": { - "id": 3417, + "id": 3571, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2016:7:25", + "src": "2016:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2040,12 +2040,12 @@ }, { "constant": false, - "id": 3420, + "id": 3574, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2044:23:25", + "scope": 3578, + "src": "2044:23:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2053,10 +2053,10 @@ "typeString": "address" }, "typeName": { - "id": 3419, + "id": 3573, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2044:7:25", + "src": "2044:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2067,12 +2067,12 @@ }, { "constant": false, - "id": 3422, + "id": 3576, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2069:11:25", + "scope": 3578, + "src": "2069:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2080,10 +2080,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3421, + "id": 3575, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2069:4:25", + "src": "2069:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2093,13 +2093,13 @@ "visibility": "internal" } ], - "src": "2015:66:25" + "src": "2015:66:26" }, - "src": "2001:81:25" + "src": "2001:81:26" } ], - "scope": 3814, - "src": "1395:689:25" + "scope": 3968, + "src": "1395:689:26" }, { "baseContracts": [], @@ -2107,9 +2107,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3437, + "id": 3591, "linearizedBaseContracts": [ - 3437 + 3591 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", @@ -2117,7 +2117,7 @@ { "body": null, "documentation": null, - "id": 3436, + "id": 3590, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -2125,16 +2125,16 @@ "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 3434, + "id": 3588, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3427, + "id": 3581, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2416:12:25", + "scope": 3590, + "src": "2416:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2142,10 +2142,10 @@ "typeString": "address" }, "typeName": { - "id": 3426, + "id": 3580, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2416:7:25", + "src": "2416:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2156,11 +2156,11 @@ }, { "constant": false, - "id": 3429, + "id": 3583, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2430:14:25", + "scope": 3590, + "src": "2430:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2168,10 +2168,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3428, + "id": 3582, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2430:7:25", + "src": "2430:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2182,11 +2182,11 @@ }, { "constant": false, - "id": 3431, + "id": 3585, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2446:13:25", + "scope": 3590, + "src": "2446:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2194,10 +2194,10 @@ "typeString": "address" }, "typeName": { - "id": 3430, + "id": 3584, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2446:7:25", + "src": "2446:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2208,11 +2208,11 @@ }, { "constant": false, - "id": 3433, + "id": 3587, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2461:10:25", + "scope": 3590, + "src": "2461:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2220,10 +2220,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3432, + "id": 3586, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2461:5:25", + "src": "2461:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2233,24 +2233,24 @@ "visibility": "internal" } ], - "src": "2415:57:25" + "src": "2415:57:26" }, "payable": false, "returnParameters": { - "id": 3435, + "id": 3589, "nodeType": "ParameterList", "parameters": [], - "src": "2479:0:25" + "src": "2479:0:26" }, - "scope": 3437, - "src": "2391:89:25", + "scope": 3591, + "src": "2391:89:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2353:129:25" + "scope": 3968, + "src": "2353:129:26" }, { "baseContracts": [], @@ -2258,20 +2258,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3506, + "id": 3660, "linearizedBaseContracts": [ - 3506 + 3660 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 3439, + "id": 3593, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2684:20:25", + "scope": 3660, + "src": "2684:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2279,10 +2279,10 @@ "typeString": "address" }, "typeName": { - "id": 3438, + "id": 3592, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2684:7:25", + "src": "2684:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2293,11 +2293,11 @@ }, { "constant": false, - "id": 3441, + "id": 3595, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2710:23:25", + "scope": 3660, + "src": "2710:23:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2305,10 +2305,10 @@ "typeString": "address" }, "typeName": { - "id": 3440, + "id": 3594, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2710:7:25", + "src": "2710:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2320,21 +2320,21 @@ { "anonymous": false, "documentation": null, - "id": 3447, + "id": 3601, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 3446, + "id": 3600, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3443, + "id": 3597, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2767:21:25", + "scope": 3601, + "src": "2767:21:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2342,10 +2342,10 @@ "typeString": "address" }, "typeName": { - "id": 3442, + "id": 3596, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2767:7:25", + "src": "2767:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2356,12 +2356,12 @@ }, { "constant": false, - "id": 3445, + "id": 3599, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2790:19:25", + "scope": 3601, + "src": "2790:19:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2369,10 +2369,10 @@ "typeString": "address" }, "typeName": { - "id": 3444, + "id": 3598, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2790:7:25", + "src": "2790:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2382,32 +2382,32 @@ "visibility": "internal" } ], - "src": "2766:44:25" + "src": "2766:44:26" }, - "src": "2740:71:25" + "src": "2740:71:26" }, { "body": { - "id": 3455, + "id": 3609, "nodeType": "Block", - "src": "2838:35:25", + "src": "2838:35:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3453, + "id": 3607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3450, + "id": 3604, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2848:5:25", + "referencedDeclaration": 3593, + "src": "2848:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2419,18 +2419,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3451, + "id": 3605, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2856:3:25", + "referencedDeclaration": 4491, + "src": "2856:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3452, + "id": 3606, "isConstant": false, "isLValue": false, "isPure": false, @@ -2438,26 +2438,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2856:10:25", + "src": "2856:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2848:18:25", + "src": "2848:18:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3454, + "id": 3608, "nodeType": "ExpressionStatement", - "src": "2848:18:25" + "src": "2848:18:26" } ] }, "documentation": null, - "id": 3456, + "id": 3610, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -2465,29 +2465,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3448, + "id": 3602, "nodeType": "ParameterList", "parameters": [], - "src": "2828:2:25" + "src": "2828:2:26" }, "payable": false, "returnParameters": { - "id": 3449, + "id": 3603, "nodeType": "ParameterList", "parameters": [], - "src": "2838:0:25" + "src": "2838:0:26" }, - "scope": 3506, - "src": "2817:56:25", + "scope": 3660, + "src": "2817:56:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3466, + "id": 3620, "nodeType": "Block", - "src": "2898:56:25", + "src": "2898:56:26", "statements": [ { "expression": { @@ -2499,7 +2499,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3462, + "id": 3616, "isConstant": false, "isLValue": false, "isPure": false, @@ -2508,18 +2508,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3459, + "id": 3613, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2916:3:25", + "referencedDeclaration": 4491, + "src": "2916:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3460, + "id": 3614, "isConstant": false, "isLValue": false, "isPure": false, @@ -2527,7 +2527,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2916:10:25", + "src": "2916:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2537,18 +2537,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3461, + "id": 3615, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2930:5:25", + "referencedDeclaration": 3593, + "src": "2930:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2916:19:25", + "src": "2916:19:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2562,21 +2562,21 @@ "typeString": "bool" } ], - "id": 3458, + "id": 3612, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "2908:7:25", + "referencedDeclaration": 4494, + "src": "2908:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3463, + "id": 3617, "isConstant": false, "isLValue": false, "isPure": false, @@ -2584,58 +2584,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:28:25", + "src": "2908:28:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3464, + "id": 3618, "nodeType": "ExpressionStatement", - "src": "2908:28:25" + "src": "2908:28:26" }, { - "id": 3465, + "id": 3619, "nodeType": "PlaceholderStatement", - "src": "2946:1:25" + "src": "2946:1:26" } ] }, "documentation": null, - "id": 3467, + "id": 3621, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 3457, + "id": 3611, "nodeType": "ParameterList", "parameters": [], - "src": "2898:0:25" + "src": "2898:0:26" }, - "src": "2879:75:25", + "src": "2879:75:26", "visibility": "internal" }, { "body": { - "id": 3478, + "id": 3632, "nodeType": "Block", - "src": "3023:37:25", + "src": "3023:37:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3476, + "id": 3630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3474, + "id": 3628, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3033:8:25", + "referencedDeclaration": 3595, + "src": "3033:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2645,68 +2645,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3475, + "id": 3629, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3469, - "src": "3044:9:25", + "referencedDeclaration": 3623, + "src": "3044:9:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3033:20:25", + "src": "3033:20:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3477, + "id": 3631, "nodeType": "ExpressionStatement", - "src": "3033:20:25" + "src": "3033:20:26" } ] }, "documentation": null, - "id": 3479, + "id": 3633, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3472, + "id": 3626, "modifierName": { "argumentTypes": null, - "id": 3471, + "id": 3625, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3013:9:25", + "referencedDeclaration": 3621, + "src": "3013:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3013:9:25" + "src": "3013:9:26" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3470, + "id": 3624, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3469, + "id": 3623, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 3479, - "src": "2987:17:25", + "scope": 3633, + "src": "2987:17:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2714,10 +2714,10 @@ "typeString": "address" }, "typeName": { - "id": 3468, + "id": 3622, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2987:7:25", + "src": "2987:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2727,26 +2727,26 @@ "visibility": "internal" } ], - "src": "2986:19:25" + "src": "2986:19:26" }, "payable": false, "returnParameters": { - "id": 3473, + "id": 3627, "nodeType": "ParameterList", "parameters": [], - "src": "3023:0:25" + "src": "3023:0:26" }, - "scope": 3506, - "src": "2960:100:25", + "scope": 3660, + "src": "2960:100:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3504, + "id": 3658, "nodeType": "Block", - "src": "3099:157:25", + "src": "3099:157:26", "statements": [ { "expression": { @@ -2758,7 +2758,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3486, + "id": 3640, "isConstant": false, "isLValue": false, "isPure": false, @@ -2767,18 +2767,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3483, + "id": 3637, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "3117:3:25", + "referencedDeclaration": 4491, + "src": "3117:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3484, + "id": 3638, "isConstant": false, "isLValue": false, "isPure": false, @@ -2786,7 +2786,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3117:10:25", + "src": "3117:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2796,18 +2796,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3485, + "id": 3639, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3131:8:25", + "referencedDeclaration": 3595, + "src": "3131:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3117:22:25", + "src": "3117:22:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2821,21 +2821,21 @@ "typeString": "bool" } ], - "id": 3482, + "id": 3636, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "3109:7:25", + "referencedDeclaration": 4494, + "src": "3109:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3487, + "id": 3641, "isConstant": false, "isLValue": false, "isPure": false, @@ -2843,15 +2843,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3109:31:25", + "src": "3109:31:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3488, + "id": 3642, "nodeType": "ExpressionStatement", - "src": "3109:31:25" + "src": "3109:31:26" }, { "eventCall": { @@ -2859,12 +2859,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3490, + "id": 3644, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3176:5:25", + "referencedDeclaration": 3593, + "src": "3176:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2872,12 +2872,12 @@ }, { "argumentTypes": null, - "id": 3491, + "id": 3645, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3183:8:25", + "referencedDeclaration": 3595, + "src": "3183:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2895,18 +2895,18 @@ "typeString": "address" } ], - "id": 3489, + "id": 3643, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3447, - "src": "3155:20:25", + "referencedDeclaration": 3601, + "src": "3155:20:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 3492, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, @@ -2914,32 +2914,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3155:37:25", + "src": "3155:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3493, + "id": 3647, "nodeType": "EmitStatement", - "src": "3150:42:25" + "src": "3150:42:26" }, { "expression": { "argumentTypes": null, - "id": 3496, + "id": 3650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3494, + "id": 3648, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3202:5:25", + "referencedDeclaration": 3593, + "src": "3202:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2949,43 +2949,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3495, + "id": 3649, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3210:8:25", + "referencedDeclaration": 3595, + "src": "3210:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3202:16:25", + "src": "3202:16:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3497, + "id": 3651, "nodeType": "ExpressionStatement", - "src": "3202:16:25" + "src": "3202:16:26" }, { "expression": { "argumentTypes": null, - "id": 3502, + "id": 3656, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3498, + "id": 3652, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3228:8:25", + "referencedDeclaration": 3595, + "src": "3228:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2999,14 +2999,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3500, + "id": 3654, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3247:1:25", + "src": "3247:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3022,20 +3022,20 @@ "typeString": "int_const 0" } ], - "id": 3499, + "id": 3653, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:25", + "src": "3239:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3501, + "id": 3655, "isConstant": false, "isLValue": false, "isPure": true, @@ -3043,26 +3043,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3239:10:25", + "src": "3239:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3228:21:25", + "src": "3228:21:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3503, + "id": 3657, "nodeType": "ExpressionStatement", - "src": "3228:21:25" + "src": "3228:21:26" } ] }, "documentation": null, - "id": 3505, + "id": 3659, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3070,27 +3070,27 @@ "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3480, + "id": 3634, "nodeType": "ParameterList", "parameters": [], - "src": "3089:2:25" + "src": "3089:2:26" }, "payable": false, "returnParameters": { - "id": 3481, + "id": 3635, "nodeType": "ParameterList", "parameters": [], - "src": "3099:0:25" + "src": "3099:0:26" }, - "scope": 3506, - "src": "3065:191:25", + "scope": 3660, + "src": "3065:191:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2663:595:25" + "scope": 3968, + "src": "2663:595:26" }, { "baseContracts": [ @@ -3098,76 +3098,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3507, + "id": 3661, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3425, - "src": "3528:14:25", + "referencedDeclaration": 3579, + "src": "3528:14:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3508, + "id": 3662, "nodeType": "InheritanceSpecifier", - "src": "3528:14:25" + "src": "3528:14:26" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3509, + "id": 3663, "name": "Owned", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3506, - "src": "3544:5:25", + "referencedDeclaration": 3660, + "src": "3544:5:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3506", + "typeIdentifier": "t_contract$_Owned_$3660", "typeString": "contract Owned" } }, - "id": 3510, + "id": 3664, "nodeType": "InheritanceSpecifier", - "src": "3544:5:25" + "src": "3544:5:26" } ], "contractDependencies": [ - 3425, - 3506 + 3579, + 3660 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3813, + "id": 3967, "linearizedBaseContracts": [ - 3813, - 3506, - 3425 + 3967, + 3660, + 3579 ], "name": "TestToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3513, + "id": 3667, "libraryName": { "contractScope": null, - "id": 3511, + "id": 3665, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3358, - "src": "3562:8:25", + "referencedDeclaration": 3512, + "src": "3562:8:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeIdentifier": "t_contract$_SafeMath_$3512", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3556:24:25", + "src": "3556:24:26", "typeName": { - "id": 3512, + "id": 3666, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3575:4:25", + "src": "3575:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3176,11 +3176,11 @@ }, { "constant": false, - "id": 3515, + "id": 3669, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3586:20:25", + "scope": 3967, + "src": "3586:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3188,10 +3188,10 @@ "typeString": "string" }, "typeName": { - "id": 3514, + "id": 3668, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3586:6:25", + "src": "3586:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3202,11 +3202,11 @@ }, { "constant": false, - "id": 3517, + "id": 3671, "name": "name", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3612:19:25", + "scope": 3967, + "src": "3612:19:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3214,10 +3214,10 @@ "typeString": "string" }, "typeName": { - "id": 3516, + "id": 3670, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3612:6:25", + "src": "3612:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3228,11 +3228,11 @@ }, { "constant": false, - "id": 3519, + "id": 3673, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3637:21:25", + "scope": 3967, + "src": "3637:21:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3240,10 +3240,10 @@ "typeString": "uint8" }, "typeName": { - "id": 3518, + "id": 3672, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3637:5:25", + "src": "3637:5:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3254,11 +3254,11 @@ }, { "constant": false, - "id": 3521, + "id": 3675, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3664:17:25", + "scope": 3967, + "src": "3664:17:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3266,10 +3266,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3520, + "id": 3674, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3664:4:25", + "src": "3664:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3280,11 +3280,11 @@ }, { "constant": false, - "id": 3525, + "id": 3679, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3688:33:25", + "scope": 3967, + "src": "3688:33:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3292,28 +3292,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 3524, + "id": 3678, "keyType": { - "id": 3522, + "id": 3676, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3696:7:25", + "src": "3696:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3688:24:25", + "src": "3688:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3523, + "id": 3677, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3707:4:25", + "src": "3707:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3325,11 +3325,11 @@ }, { "constant": false, - "id": 3531, + "id": 3685, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3727:52:25", + "scope": 3967, + "src": "3727:52:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3337,46 +3337,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 3530, + "id": 3684, "keyType": { - "id": 3526, + "id": 3680, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3735:7:25", + "src": "3735:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3727:44:25", + "src": "3727:44:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 3529, + "id": 3683, "keyType": { - "id": 3527, + "id": 3681, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3754:7:25", + "src": "3754:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3746:24:25", + "src": "3746:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3528, + "id": 3682, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3765:4:25", + "src": "3765:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3389,26 +3389,26 @@ }, { "body": { - "id": 3570, + "id": 3724, "nodeType": "Block", - "src": "3987:235:25", + "src": "3987:235:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3536, + "id": 3690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3534, + "id": 3688, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3997:6:25", + "referencedDeclaration": 3669, + "src": "3997:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3419,14 +3419,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "544b4e", - "id": 3535, + "id": 3689, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4006:5:25", + "src": "4006:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", @@ -3434,32 +3434,32 @@ }, "value": "TKN" }, - "src": "3997:14:25", + "src": "3997:14:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3537, + "id": 3691, "nodeType": "ExpressionStatement", - "src": "3997:14:25" + "src": "3997:14:26" }, { "expression": { "argumentTypes": null, - "id": 3540, + "id": 3694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3538, + "id": 3692, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3517, - "src": "4021:4:25", + "referencedDeclaration": 3671, + "src": "4021:4:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3470,14 +3470,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "546f6b656e204578616d706c65", - "id": 3539, + "id": 3693, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4028:15:25", + "src": "4028:15:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", @@ -3485,32 +3485,32 @@ }, "value": "Token Example" }, - "src": "4021:22:25", + "src": "4021:22:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3541, + "id": 3695, "nodeType": "ExpressionStatement", - "src": "4021:22:25" + "src": "4021:22:26" }, { "expression": { "argumentTypes": null, - "id": 3544, + "id": 3698, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3542, + "id": 3696, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4053:8:25", + "referencedDeclaration": 3673, + "src": "4053:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3521,14 +3521,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3138", - "id": 3543, + "id": 3697, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4064:2:25", + "src": "4064:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -3536,32 +3536,32 @@ }, "value": "18" }, - "src": "4053:13:25", + "src": "4053:13:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 3545, + "id": 3699, "nodeType": "ExpressionStatement", - "src": "4053:13:25" + "src": "4053:13:26" }, { "expression": { "argumentTypes": null, - "id": 3554, + "id": 3708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3546, + "id": 3700, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4076:12:25", + "referencedDeclaration": 3675, + "src": "4076:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3575,7 +3575,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3553, + "id": 3707, "isConstant": false, "isLValue": false, "isPure": false, @@ -3583,14 +3583,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 3547, + "id": 3701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4091:7:25", + "src": "4091:7:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -3606,7 +3606,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3552, + "id": 3706, "isConstant": false, "isLValue": false, "isPure": false, @@ -3614,14 +3614,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 3548, + "id": 3702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4101:2:25", + "src": "4101:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -3636,12 +3636,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3550, + "id": 3704, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4110:8:25", + "referencedDeclaration": 3673, + "src": "4110:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3655,20 +3655,20 @@ "typeString": "uint8" } ], - "id": 3549, + "id": 3703, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:25", + "src": "4105:4:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 3551, + "id": 3705, "isConstant": false, "isLValue": false, "isPure": false, @@ -3676,38 +3676,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4105:14:25", + "src": "4105:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4101:18:25", + "src": "4101:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4091:28:25", + "src": "4091:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4076:43:25", + "src": "4076:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3555, + "id": 3709, "nodeType": "ExpressionStatement", - "src": "4076:43:25" + "src": "4076:43:26" }, { "expression": { "argumentTypes": null, - "id": 3560, + "id": 3714, "isConstant": false, "isLValue": false, "isPure": false, @@ -3716,26 +3716,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3556, + "id": 3710, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4129:8:25", + "referencedDeclaration": 3679, + "src": "4129:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3558, + "id": 3712, "indexExpression": { "argumentTypes": null, - "id": 3557, + "id": 3711, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4138:5:25", + "referencedDeclaration": 3593, + "src": "4138:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3746,7 +3746,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4129:15:25", + "src": "4129:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3756,26 +3756,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3559, + "id": 3713, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4147:12:25", + "referencedDeclaration": 3675, + "src": "4147:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4129:30:25", + "src": "4129:30:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3561, + "id": 3715, "nodeType": "ExpressionStatement", - "src": "4129:30:25" + "src": "4129:30:26" }, { "eventCall": { @@ -3787,14 +3787,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3564, + "id": 3718, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4191:1:25", + "src": "4191:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3810,20 +3810,20 @@ "typeString": "int_const 0" } ], - "id": 3563, + "id": 3717, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:25", + "src": "4183:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3565, + "id": 3719, "isConstant": false, "isLValue": false, "isPure": true, @@ -3831,7 +3831,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4183:10:25", + "src": "4183:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3839,12 +3839,12 @@ }, { "argumentTypes": null, - "id": 3566, + "id": 3720, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4195:5:25", + "referencedDeclaration": 3593, + "src": "4195:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3852,12 +3852,12 @@ }, { "argumentTypes": null, - "id": 3567, + "id": 3721, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4202:12:25", + "referencedDeclaration": 3675, + "src": "4202:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3879,18 +3879,18 @@ "typeString": "uint256" } ], - "id": 3562, + "id": 3716, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "4174:8:25", + "referencedDeclaration": 3570, + "src": "4174:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3568, + "id": 3722, "isConstant": false, "isLValue": false, "isPure": false, @@ -3898,20 +3898,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4174:41:25", + "src": "4174:41:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3569, + "id": 3723, "nodeType": "EmitStatement", - "src": "4169:46:25" + "src": "4169:46:26" } ] }, "documentation": null, - "id": 3571, + "id": 3725, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -3919,29 +3919,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3532, + "id": 3686, "nodeType": "ParameterList", "parameters": [], - "src": "3977:2:25" + "src": "3977:2:26" }, "payable": false, "returnParameters": { - "id": 3533, + "id": 3687, "nodeType": "ParameterList", "parameters": [], - "src": "3987:0:25" + "src": "3987:0:26" }, - "scope": 3813, - "src": "3966:256:25", + "scope": 3967, + "src": "3966:256:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3585, + "id": 3739, "nodeType": "Block", - "src": "4459:62:25", + "src": "4459:62:26", "statements": [ { "expression": { @@ -3951,32 +3951,32 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3578, + "id": 3732, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4493:8:25", + "referencedDeclaration": 3679, + "src": "4493:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3582, + "id": 3736, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 3580, + "id": 3734, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4510:1:25", + "src": "4510:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3992,20 +3992,20 @@ "typeString": "int_const 0" } ], - "id": 3579, + "id": 3733, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:25", + "src": "4502:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3581, + "id": 3735, "isConstant": false, "isLValue": false, "isPure": true, @@ -4013,7 +4013,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4502:10:25", + "src": "4502:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4024,7 +4024,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4493:20:25", + "src": "4493:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4040,32 +4040,32 @@ ], "expression": { "argumentTypes": null, - "id": 3576, + "id": 3730, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4476:12:25", + "referencedDeclaration": 3675, + "src": "4476:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3577, + "id": 3731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "4476:16:25", + "referencedDeclaration": 3461, + "src": "4476:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3583, + "id": 3737, "isConstant": false, "isLValue": false, "isPure": false, @@ -4073,21 +4073,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4476:38:25", + "src": "4476:38:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3575, - "id": 3584, + "functionReturnParameters": 3729, + "id": 3738, "nodeType": "Return", - "src": "4469:45:25" + "src": "4469:45:26" } ] }, "documentation": null, - "id": 3586, + "id": 3740, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4095,23 +4095,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3572, + "id": 3726, "nodeType": "ParameterList", "parameters": [], - "src": "4429:2:25" + "src": "4429:2:26" }, "payable": false, "returnParameters": { - "id": 3575, + "id": 3729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3574, + "id": 3728, "name": "", "nodeType": "VariableDeclaration", - "scope": 3586, - "src": "4453:4:25", + "scope": 3740, + "src": "4453:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4119,10 +4119,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3573, + "id": 3727, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4453:4:25", + "src": "4453:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4132,45 +4132,45 @@ "visibility": "internal" } ], - "src": "4452:6:25" + "src": "4452:6:26" }, - "scope": 3813, - "src": "4409:112:25", + "scope": 3967, + "src": "4409:112:26", "stateMutability": "view", - "superFunction": 3363, + "superFunction": 3517, "visibility": "public" }, { "body": { - "id": 3597, + "id": 3751, "nodeType": "Block", - "src": "4816:44:25", + "src": "4816:44:26", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3593, + "id": 3747, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4833:8:25", + "referencedDeclaration": 3679, + "src": "4833:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3595, + "id": 3749, "indexExpression": { "argumentTypes": null, - "id": 3594, + "id": 3748, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3588, - "src": "4842:10:25", + "referencedDeclaration": 3742, + "src": "4842:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4181,21 +4181,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4833:20:25", + "src": "4833:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3592, - "id": 3596, + "functionReturnParameters": 3746, + "id": 3750, "nodeType": "Return", - "src": "4826:27:25" + "src": "4826:27:26" } ] }, "documentation": null, - "id": 3598, + "id": 3752, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4203,16 +4203,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3589, + "id": 3743, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3588, + "id": 3742, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4761:18:25", + "scope": 3752, + "src": "4761:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4220,10 +4220,10 @@ "typeString": "address" }, "typeName": { - "id": 3587, + "id": 3741, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4761:7:25", + "src": "4761:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4233,20 +4233,20 @@ "visibility": "internal" } ], - "src": "4760:20:25" + "src": "4760:20:26" }, "payable": false, "returnParameters": { - "id": 3592, + "id": 3746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3591, + "id": 3745, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4802:12:25", + "scope": 3752, + "src": "4802:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4254,10 +4254,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3590, + "id": 3744, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4802:4:25", + "src": "4802:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4267,24 +4267,24 @@ "visibility": "internal" } ], - "src": "4801:14:25" + "src": "4801:14:26" }, - "scope": 3813, - "src": "4742:118:25", + "scope": 3967, + "src": "4742:118:26", "stateMutability": "view", - "superFunction": 3370, + "superFunction": 3524, "visibility": "public" }, { "body": { - "id": 3640, + "id": 3794, "nodeType": "Block", - "src": "5276:189:25", + "src": "5276:189:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3618, + "id": 3772, "isConstant": false, "isLValue": false, "isPure": false, @@ -4293,34 +4293,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3607, + "id": 3761, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5286:8:25", + "referencedDeclaration": 3679, + "src": "5286:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3610, + "id": 3764, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3608, + "id": 3762, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5295:3:25", + "referencedDeclaration": 4491, + "src": "5295:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3609, + "id": 3763, "isConstant": false, "isLValue": false, "isPure": false, @@ -4328,7 +4328,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5295:10:25", + "src": "5295:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4339,7 +4339,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5286:20:25", + "src": "5286:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4352,12 +4352,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3616, + "id": 3770, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5334:6:25", + "referencedDeclaration": 3756, + "src": "5334:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4375,34 +4375,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3611, + "id": 3765, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5309:8:25", + "referencedDeclaration": 3679, + "src": "5309:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3614, + "id": 3768, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3612, + "id": 3766, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5318:3:25", + "referencedDeclaration": 4491, + "src": "5318:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3613, + "id": 3767, "isConstant": false, "isLValue": false, "isPure": false, @@ -4410,7 +4410,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5318:10:25", + "src": "5318:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4421,27 +4421,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5309:20:25", + "src": "5309:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3615, + "id": 3769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "5309:24:25", + "referencedDeclaration": 3461, + "src": "5309:24:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3617, + "id": 3771, "isConstant": false, "isLValue": false, "isPure": false, @@ -4449,26 +4449,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5309:32:25", + "src": "5309:32:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5286:55:25", + "src": "5286:55:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3619, + "id": 3773, "nodeType": "ExpressionStatement", - "src": "5286:55:25" + "src": "5286:55:26" }, { "expression": { "argumentTypes": null, - "id": 3629, + "id": 3783, "isConstant": false, "isLValue": false, "isPure": false, @@ -4477,26 +4477,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3620, + "id": 3774, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5351:8:25", + "referencedDeclaration": 3679, + "src": "5351:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3622, + "id": 3776, "indexExpression": { "argumentTypes": null, - "id": 3621, + "id": 3775, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5360:2:25", + "referencedDeclaration": 3754, + "src": "5360:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4507,7 +4507,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5351:12:25", + "src": "5351:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4520,12 +4520,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3627, + "id": 3781, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5383:6:25", + "referencedDeclaration": 3756, + "src": "5383:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4543,26 +4543,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3623, + "id": 3777, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5366:8:25", + "referencedDeclaration": 3679, + "src": "5366:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3625, + "id": 3779, "indexExpression": { "argumentTypes": null, - "id": 3624, + "id": 3778, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5375:2:25", + "referencedDeclaration": 3754, + "src": "5375:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4573,27 +4573,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5366:12:25", + "src": "5366:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3626, + "id": 3780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "5366:16:25", + "referencedDeclaration": 3439, + "src": "5366:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3628, + "id": 3782, "isConstant": false, "isLValue": false, "isPure": false, @@ -4601,21 +4601,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5366:24:25", + "src": "5366:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5351:39:25", + "src": "5351:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3630, + "id": 3784, "nodeType": "ExpressionStatement", - "src": "5351:39:25" + "src": "5351:39:26" }, { "eventCall": { @@ -4625,18 +4625,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3632, + "id": 3786, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5414:3:25", + "referencedDeclaration": 4491, + "src": "5414:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3633, + "id": 3787, "isConstant": false, "isLValue": false, "isPure": false, @@ -4644,7 +4644,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:25", + "src": "5414:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4652,12 +4652,12 @@ }, { "argumentTypes": null, - "id": 3634, + "id": 3788, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5426:2:25", + "referencedDeclaration": 3754, + "src": "5426:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4665,12 +4665,12 @@ }, { "argumentTypes": null, - "id": 3635, + "id": 3789, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5430:6:25", + "referencedDeclaration": 3756, + "src": "5430:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4692,18 +4692,18 @@ "typeString": "uint256" } ], - "id": 3631, + "id": 3785, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5405:8:25", + "referencedDeclaration": 3570, + "src": "5405:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3636, + "id": 3790, "isConstant": false, "isLValue": false, "isPure": false, @@ -4711,28 +4711,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5405:32:25", + "src": "5405:32:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3637, + "id": 3791, "nodeType": "EmitStatement", - "src": "5400:37:25" + "src": "5400:37:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3638, + "id": 3792, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5454:4:25", + "src": "5454:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4740,15 +4740,15 @@ }, "value": "true" }, - "functionReturnParameters": 3606, - "id": 3639, + "functionReturnParameters": 3760, + "id": 3793, "nodeType": "Return", - "src": "5447:11:25" + "src": "5447:11:26" } ] }, "documentation": null, - "id": 3641, + "id": 3795, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4756,16 +4756,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3603, + "id": 3757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3600, + "id": 3754, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5221:10:25", + "scope": 3795, + "src": "5221:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4773,10 +4773,10 @@ "typeString": "address" }, "typeName": { - "id": 3599, + "id": 3753, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5221:7:25", + "src": "5221:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4787,11 +4787,11 @@ }, { "constant": false, - "id": 3602, + "id": 3756, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5233:11:25", + "scope": 3795, + "src": "5233:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4799,10 +4799,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3601, + "id": 3755, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5233:4:25", + "src": "5233:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4812,20 +4812,20 @@ "visibility": "internal" } ], - "src": "5220:25:25" + "src": "5220:25:26" }, "payable": false, "returnParameters": { - "id": 3606, + "id": 3760, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3605, + "id": 3759, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5262:12:25", + "scope": 3795, + "src": "5262:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4833,10 +4833,10 @@ "typeString": "bool" }, "typeName": { - "id": 3604, + "id": 3758, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5262:4:25", + "src": "5262:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4846,24 +4846,24 @@ "visibility": "internal" } ], - "src": "5261:14:25" + "src": "5261:14:26" }, - "scope": 3813, - "src": "5203:262:25", + "scope": 3967, + "src": "5203:262:26", "stateMutability": "nonpayable", - "superFunction": 3388, + "superFunction": 3542, "visibility": "public" }, { "body": { - "id": 3668, + "id": 3822, "nodeType": "Block", - "src": "6048:127:25", + "src": "6048:127:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3657, + "id": 3811, "isConstant": false, "isLValue": false, "isPure": false, @@ -4874,34 +4874,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3650, + "id": 3804, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6058:7:25", + "referencedDeclaration": 3685, + "src": "6058:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3654, + "id": 3808, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3651, + "id": 3805, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6066:3:25", + "referencedDeclaration": 4491, + "src": "6066:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3652, + "id": 3806, "isConstant": false, "isLValue": false, "isPure": false, @@ -4909,7 +4909,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6066:10:25", + "src": "6066:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4920,21 +4920,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6058:19:25", + "src": "6058:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3655, + "id": 3809, "indexExpression": { "argumentTypes": null, - "id": 3653, + "id": 3807, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6078:7:25", + "referencedDeclaration": 3797, + "src": "6078:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4945,7 +4945,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6058:28:25", + "src": "6058:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4955,26 +4955,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3656, + "id": 3810, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6089:6:25", + "referencedDeclaration": 3799, + "src": "6089:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6058:37:25", + "src": "6058:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3658, + "id": 3812, "nodeType": "ExpressionStatement", - "src": "6058:37:25" + "src": "6058:37:26" }, { "eventCall": { @@ -4984,18 +4984,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3660, + "id": 3814, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6119:3:25", + "referencedDeclaration": 4491, + "src": "6119:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3661, + "id": 3815, "isConstant": false, "isLValue": false, "isPure": false, @@ -5003,7 +5003,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6119:10:25", + "src": "6119:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5011,12 +5011,12 @@ }, { "argumentTypes": null, - "id": 3662, + "id": 3816, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6131:7:25", + "referencedDeclaration": 3797, + "src": "6131:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5024,12 +5024,12 @@ }, { "argumentTypes": null, - "id": 3663, + "id": 3817, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6140:6:25", + "referencedDeclaration": 3799, + "src": "6140:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5051,18 +5051,18 @@ "typeString": "uint256" } ], - "id": 3659, + "id": 3813, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "6110:8:25", + "referencedDeclaration": 3578, + "src": "6110:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3664, + "id": 3818, "isConstant": false, "isLValue": false, "isPure": false, @@ -5070,28 +5070,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6110:37:25", + "src": "6110:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3665, + "id": 3819, "nodeType": "EmitStatement", - "src": "6105:42:25" + "src": "6105:42:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3666, + "id": 3820, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6164:4:25", + "src": "6164:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5099,15 +5099,15 @@ }, "value": "true" }, - "functionReturnParameters": 3649, - "id": 3667, + "functionReturnParameters": 3803, + "id": 3821, "nodeType": "Return", - "src": "6157:11:25" + "src": "6157:11:26" } ] }, "documentation": null, - "id": 3669, + "id": 3823, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5115,16 +5115,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3646, + "id": 3800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3643, + "id": 3797, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "5988:15:25", + "scope": 3823, + "src": "5988:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5132,10 +5132,10 @@ "typeString": "address" }, "typeName": { - "id": 3642, + "id": 3796, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5988:7:25", + "src": "5988:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5146,11 +5146,11 @@ }, { "constant": false, - "id": 3645, + "id": 3799, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6005:11:25", + "scope": 3823, + "src": "6005:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5158,10 +5158,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3644, + "id": 3798, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6005:4:25", + "src": "6005:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5171,20 +5171,20 @@ "visibility": "internal" } ], - "src": "5987:30:25" + "src": "5987:30:26" }, "payable": false, "returnParameters": { - "id": 3649, + "id": 3803, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3648, + "id": 3802, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6034:12:25", + "scope": 3823, + "src": "6034:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5192,10 +5192,10 @@ "typeString": "bool" }, "typeName": { - "id": 3647, + "id": 3801, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6034:4:25", + "src": "6034:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5205,24 +5205,24 @@ "visibility": "internal" } ], - "src": "6033:14:25" + "src": "6033:14:26" }, - "scope": 3813, - "src": "5971:204:25", + "scope": 3967, + "src": "5971:204:26", "stateMutability": "nonpayable", - "superFunction": 3397, + "superFunction": 3551, "visibility": "public" }, { "body": { - "id": 3727, + "id": 3881, "nodeType": "Block", - "src": "6798:246:25", + "src": "6798:246:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3689, + "id": 3843, "isConstant": false, "isLValue": false, "isPure": false, @@ -5231,26 +5231,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3680, + "id": 3834, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6808:8:25", + "referencedDeclaration": 3679, + "src": "6808:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3682, + "id": 3836, "indexExpression": { "argumentTypes": null, - "id": 3681, + "id": 3835, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6817:4:25", + "referencedDeclaration": 3825, + "src": "6817:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5261,7 +5261,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6808:14:25", + "src": "6808:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5274,12 +5274,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3687, + "id": 3841, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6844:6:25", + "referencedDeclaration": 3829, + "src": "6844:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5297,26 +5297,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3683, + "id": 3837, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6825:8:25", + "referencedDeclaration": 3679, + "src": "6825:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3685, + "id": 3839, "indexExpression": { "argumentTypes": null, - "id": 3684, + "id": 3838, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6834:4:25", + "referencedDeclaration": 3825, + "src": "6834:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5327,27 +5327,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6825:14:25", + "src": "6825:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3686, + "id": 3840, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6825:18:25", + "referencedDeclaration": 3461, + "src": "6825:18:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3688, + "id": 3842, "isConstant": false, "isLValue": false, "isPure": false, @@ -5355,26 +5355,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6825:26:25", + "src": "6825:26:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6808:43:25", + "src": "6808:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3690, + "id": 3844, "nodeType": "ExpressionStatement", - "src": "6808:43:25" + "src": "6808:43:26" }, { "expression": { "argumentTypes": null, - "id": 3706, + "id": 3860, "isConstant": false, "isLValue": false, "isPure": false, @@ -5385,26 +5385,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3691, + "id": 3845, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6861:7:25", + "referencedDeclaration": 3685, + "src": "6861:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3695, + "id": 3849, "indexExpression": { "argumentTypes": null, - "id": 3692, + "id": 3846, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6869:4:25", + "referencedDeclaration": 3825, + "src": "6869:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5415,29 +5415,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6861:13:25", + "src": "6861:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3696, + "id": 3850, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3693, + "id": 3847, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6875:3:25", + "referencedDeclaration": 4491, + "src": "6875:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3694, + "id": 3848, "isConstant": false, "isLValue": false, "isPure": false, @@ -5445,7 +5445,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6875:10:25", + "src": "6875:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5456,7 +5456,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6861:25:25", + "src": "6861:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5469,12 +5469,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3704, + "id": 3858, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6919:6:25", + "referencedDeclaration": 3829, + "src": "6919:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5494,26 +5494,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3697, + "id": 3851, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6889:7:25", + "referencedDeclaration": 3685, + "src": "6889:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3699, + "id": 3853, "indexExpression": { "argumentTypes": null, - "id": 3698, + "id": 3852, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6897:4:25", + "referencedDeclaration": 3825, + "src": "6897:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5524,29 +5524,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:13:25", + "src": "6889:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3702, + "id": 3856, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3700, + "id": 3854, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6903:3:25", + "referencedDeclaration": 4491, + "src": "6903:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3701, + "id": 3855, "isConstant": false, "isLValue": false, "isPure": false, @@ -5554,7 +5554,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6903:10:25", + "src": "6903:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5565,27 +5565,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:25:25", + "src": "6889:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3703, + "id": 3857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6889:29:25", + "referencedDeclaration": 3461, + "src": "6889:29:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3705, + "id": 3859, "isConstant": false, "isLValue": false, "isPure": false, @@ -5593,26 +5593,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6889:37:25", + "src": "6889:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6861:65:25", + "src": "6861:65:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3707, + "id": 3861, "nodeType": "ExpressionStatement", - "src": "6861:65:25" + "src": "6861:65:26" }, { "expression": { "argumentTypes": null, - "id": 3717, + "id": 3871, "isConstant": false, "isLValue": false, "isPure": false, @@ -5621,26 +5621,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3708, + "id": 3862, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6936:8:25", + "referencedDeclaration": 3679, + "src": "6936:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3710, + "id": 3864, "indexExpression": { "argumentTypes": null, - "id": 3709, + "id": 3863, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6945:2:25", + "referencedDeclaration": 3827, + "src": "6945:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5651,7 +5651,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6936:12:25", + "src": "6936:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5664,12 +5664,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3715, + "id": 3869, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6968:6:25", + "referencedDeclaration": 3829, + "src": "6968:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5687,26 +5687,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3711, + "id": 3865, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6951:8:25", + "referencedDeclaration": 3679, + "src": "6951:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3713, + "id": 3867, "indexExpression": { "argumentTypes": null, - "id": 3712, + "id": 3866, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6960:2:25", + "referencedDeclaration": 3827, + "src": "6960:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5717,27 +5717,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6951:12:25", + "src": "6951:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3714, + "id": 3868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "6951:16:25", + "referencedDeclaration": 3439, + "src": "6951:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3716, + "id": 3870, "isConstant": false, "isLValue": false, "isPure": false, @@ -5745,21 +5745,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6951:24:25", + "src": "6951:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6936:39:25", + "src": "6936:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3718, + "id": 3872, "nodeType": "ExpressionStatement", - "src": "6936:39:25" + "src": "6936:39:26" }, { "eventCall": { @@ -5767,12 +5767,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3720, + "id": 3874, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6999:4:25", + "referencedDeclaration": 3825, + "src": "6999:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5780,12 +5780,12 @@ }, { "argumentTypes": null, - "id": 3721, + "id": 3875, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "7005:2:25", + "referencedDeclaration": 3827, + "src": "7005:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5793,12 +5793,12 @@ }, { "argumentTypes": null, - "id": 3722, + "id": 3876, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "7009:6:25", + "referencedDeclaration": 3829, + "src": "7009:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5820,18 +5820,18 @@ "typeString": "uint256" } ], - "id": 3719, + "id": 3873, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "6990:8:25", + "referencedDeclaration": 3570, + "src": "6990:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3723, + "id": 3877, "isConstant": false, "isLValue": false, "isPure": false, @@ -5839,28 +5839,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6990:26:25", + "src": "6990:26:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3724, + "id": 3878, "nodeType": "EmitStatement", - "src": "6985:31:25" + "src": "6985:31:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3725, + "id": 3879, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7033:4:25", + "src": "7033:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5868,15 +5868,15 @@ }, "value": "true" }, - "functionReturnParameters": 3679, - "id": 3726, + "functionReturnParameters": 3833, + "id": 3880, "nodeType": "Return", - "src": "7026:11:25" + "src": "7026:11:26" } ] }, "documentation": null, - "id": 3728, + "id": 3882, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5884,16 +5884,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3676, + "id": 3830, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3671, + "id": 3825, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6729:12:25", + "scope": 3882, + "src": "6729:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5901,10 +5901,10 @@ "typeString": "address" }, "typeName": { - "id": 3670, + "id": 3824, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6729:7:25", + "src": "6729:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5915,11 +5915,11 @@ }, { "constant": false, - "id": 3673, + "id": 3827, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6743:10:25", + "scope": 3882, + "src": "6743:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5927,10 +5927,10 @@ "typeString": "address" }, "typeName": { - "id": 3672, + "id": 3826, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6743:7:25", + "src": "6743:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5941,11 +5941,11 @@ }, { "constant": false, - "id": 3675, + "id": 3829, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6755:11:25", + "scope": 3882, + "src": "6755:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5953,10 +5953,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3674, + "id": 3828, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6755:4:25", + "src": "6755:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5966,20 +5966,20 @@ "visibility": "internal" } ], - "src": "6728:39:25" + "src": "6728:39:26" }, "payable": false, "returnParameters": { - "id": 3679, + "id": 3833, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3678, + "id": 3832, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6784:12:25", + "scope": 3882, + "src": "6784:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5987,10 +5987,10 @@ "typeString": "bool" }, "typeName": { - "id": 3677, + "id": 3831, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6784:4:25", + "src": "6784:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6000,19 +6000,19 @@ "visibility": "internal" } ], - "src": "6783:14:25" + "src": "6783:14:26" }, - "scope": 3813, - "src": "6707:337:25", + "scope": 3967, + "src": "6707:337:26", "stateMutability": "nonpayable", - "superFunction": 3408, + "superFunction": 3562, "visibility": "public" }, { "body": { - "id": 3743, + "id": 3897, "nodeType": "Block", - "src": "7418:52:25", + "src": "7418:52:26", "statements": [ { "expression": { @@ -6021,26 +6021,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3737, + "id": 3891, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7435:7:25", + "referencedDeclaration": 3685, + "src": "7435:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3739, + "id": 3893, "indexExpression": { "argumentTypes": null, - "id": 3738, + "id": 3892, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3730, - "src": "7443:10:25", + "referencedDeclaration": 3884, + "src": "7443:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6051,21 +6051,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:19:25", + "src": "7435:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3741, + "id": 3895, "indexExpression": { "argumentTypes": null, - "id": 3740, + "id": 3894, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "7455:7:25", + "referencedDeclaration": 3886, + "src": "7455:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6076,21 +6076,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:28:25", + "src": "7435:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3736, - "id": 3742, + "functionReturnParameters": 3890, + "id": 3896, "nodeType": "Return", - "src": "7428:35:25" + "src": "7428:35:26" } ] }, "documentation": null, - "id": 3744, + "id": 3898, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6098,16 +6098,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3733, + "id": 3887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3730, + "id": 3884, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7344:18:25", + "scope": 3898, + "src": "7344:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6115,10 +6115,10 @@ "typeString": "address" }, "typeName": { - "id": 3729, + "id": 3883, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7344:7:25", + "src": "7344:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6129,11 +6129,11 @@ }, { "constant": false, - "id": 3732, + "id": 3886, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7364:15:25", + "scope": 3898, + "src": "7364:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6141,10 +6141,10 @@ "typeString": "address" }, "typeName": { - "id": 3731, + "id": 3885, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7364:7:25", + "src": "7364:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6154,20 +6154,20 @@ "visibility": "internal" } ], - "src": "7343:37:25" + "src": "7343:37:26" }, "payable": false, "returnParameters": { - "id": 3736, + "id": 3890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3735, + "id": 3889, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7402:14:25", + "scope": 3898, + "src": "7402:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6175,10 +6175,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3734, + "id": 3888, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7402:4:25", + "src": "7402:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6188,24 +6188,24 @@ "visibility": "internal" } ], - "src": "7401:16:25" + "src": "7401:16:26" }, - "scope": 3813, - "src": "7325:145:25", + "scope": 3967, + "src": "7325:145:26", "stateMutability": "view", - "superFunction": 3379, + "superFunction": 3533, "visibility": "public" }, { "body": { - "id": 3784, + "id": 3938, "nodeType": "Block", - "src": "7926:216:25", + "src": "7926:216:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3762, + "id": 3916, "isConstant": false, "isLValue": false, "isPure": false, @@ -6216,34 +6216,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3755, + "id": 3909, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7936:7:25", + "referencedDeclaration": 3685, + "src": "7936:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3759, + "id": 3913, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3756, + "id": 3910, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7944:3:25", + "referencedDeclaration": 4491, + "src": "7944:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3757, + "id": 3911, "isConstant": false, "isLValue": false, "isPure": false, @@ -6251,7 +6251,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7944:10:25", + "src": "7944:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6262,21 +6262,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7936:19:25", + "src": "7936:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3760, + "id": 3914, "indexExpression": { "argumentTypes": null, - "id": 3758, + "id": 3912, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "7956:7:25", + "referencedDeclaration": 3900, + "src": "7956:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6287,7 +6287,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7936:28:25", + "src": "7936:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6297,26 +6297,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3761, + "id": 3915, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "7967:6:25", + "referencedDeclaration": 3902, + "src": "7967:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7936:37:25", + "src": "7936:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3763, + "id": 3917, "nodeType": "ExpressionStatement", - "src": "7936:37:25" + "src": "7936:37:26" }, { "eventCall": { @@ -6326,18 +6326,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3765, + "id": 3919, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7997:3:25", + "referencedDeclaration": 4491, + "src": "7997:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3766, + "id": 3920, "isConstant": false, "isLValue": false, "isPure": false, @@ -6345,7 +6345,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7997:10:25", + "src": "7997:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6353,12 +6353,12 @@ }, { "argumentTypes": null, - "id": 3767, + "id": 3921, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8009:7:25", + "referencedDeclaration": 3900, + "src": "8009:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6366,12 +6366,12 @@ }, { "argumentTypes": null, - "id": 3768, + "id": 3922, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8018:6:25", + "referencedDeclaration": 3902, + "src": "8018:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6393,18 +6393,18 @@ "typeString": "uint256" } ], - "id": 3764, + "id": 3918, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "7988:8:25", + "referencedDeclaration": 3578, + "src": "7988:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3769, + "id": 3923, "isConstant": false, "isLValue": false, "isPure": false, @@ -6412,15 +6412,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7988:37:25", + "src": "7988:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3770, + "id": 3924, "nodeType": "EmitStatement", - "src": "7983:42:25" + "src": "7983:42:26" }, { "expression": { @@ -6430,18 +6430,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3775, + "id": 3929, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "8083:3:25", + "referencedDeclaration": 4491, + "src": "8083:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3776, + "id": 3930, "isConstant": false, "isLValue": false, "isPure": false, @@ -6449,7 +6449,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8083:10:25", + "src": "8083:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6457,12 +6457,12 @@ }, { "argumentTypes": null, - "id": 3777, + "id": 3931, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8095:6:25", + "referencedDeclaration": 3902, + "src": "8095:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6470,25 +6470,25 @@ }, { "argumentTypes": null, - "id": 3778, + "id": 3932, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3907, - "src": "8103:4:25", + "referencedDeclaration": 4574, + "src": "8103:4:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" } }, { "argumentTypes": null, - "id": 3779, + "id": 3933, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3750, - "src": "8109:4:25", + "referencedDeclaration": 3904, + "src": "8109:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6506,7 +6506,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" }, { @@ -6519,12 +6519,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3772, + "id": 3926, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8058:7:25", + "referencedDeclaration": 3900, + "src": "8058:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6538,18 +6538,18 @@ "typeString": "address" } ], - "id": 3771, + "id": 3925, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3437, - "src": "8035:22:25", + "referencedDeclaration": 3591, + "src": "8035:22:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, - "id": 3773, + "id": 3927, "isConstant": false, "isLValue": false, "isPure": false, @@ -6557,27 +6557,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:31:25", + "src": "8035:31:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", "typeString": "contract ApproveAndCallFallBack" } }, - "id": 3774, + "id": 3928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", - "referencedDeclaration": 3436, - "src": "8035:47:25", + "referencedDeclaration": 3590, + "src": "8035:47:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,address,bytes memory) external" } }, - "id": 3780, + "id": 3934, "isConstant": false, "isLValue": false, "isPure": false, @@ -6585,28 +6585,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:79:25", + "src": "8035:79:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3781, + "id": 3935, "nodeType": "ExpressionStatement", - "src": "8035:79:25" + "src": "8035:79:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3782, + "id": 3936, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8131:4:25", + "src": "8131:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6614,15 +6614,15 @@ }, "value": "true" }, - "functionReturnParameters": 3754, - "id": 3783, + "functionReturnParameters": 3908, + "id": 3937, "nodeType": "Return", - "src": "8124:11:25" + "src": "8124:11:26" } ] }, "documentation": null, - "id": 3785, + "id": 3939, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6630,16 +6630,16 @@ "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 3751, + "id": 3905, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3746, + "id": 3900, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7854:15:25", + "scope": 3939, + "src": "7854:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6647,10 +6647,10 @@ "typeString": "address" }, "typeName": { - "id": 3745, + "id": 3899, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7854:7:25", + "src": "7854:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6661,11 +6661,11 @@ }, { "constant": false, - "id": 3748, + "id": 3902, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7871:11:25", + "scope": 3939, + "src": "7871:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6673,10 +6673,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3747, + "id": 3901, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7871:4:25", + "src": "7871:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6687,11 +6687,11 @@ }, { "constant": false, - "id": 3750, + "id": 3904, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7884:10:25", + "scope": 3939, + "src": "7884:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6699,10 +6699,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3749, + "id": 3903, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7884:5:25", + "src": "7884:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6712,20 +6712,20 @@ "visibility": "internal" } ], - "src": "7853:42:25" + "src": "7853:42:26" }, "payable": false, "returnParameters": { - "id": 3754, + "id": 3908, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3753, + "id": 3907, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7912:12:25", + "scope": 3939, + "src": "7912:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6733,10 +6733,10 @@ "typeString": "bool" }, "typeName": { - "id": 3752, + "id": 3906, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7912:4:25", + "src": "7912:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6746,19 +6746,19 @@ "visibility": "internal" } ], - "src": "7911:14:25" + "src": "7911:14:26" }, - "scope": 3813, - "src": "7830:312:25", + "scope": 3967, + "src": "7830:312:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3791, + "id": 3945, "nodeType": "Block", - "src": "8360:25:25", + "src": "8360:25:26", "statements": [ { "expression": { @@ -6766,21 +6766,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3788, + "id": 3942, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 3833, - 3834 + 4496, + 4497 ], - "referencedDeclaration": 3833, - "src": "8370:6:25", + "referencedDeclaration": 4496, + "src": "8370:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 3789, + "id": 3943, "isConstant": false, "isLValue": false, "isPure": false, @@ -6788,20 +6788,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8370:8:25", + "src": "8370:8:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3790, + "id": 3944, "nodeType": "ExpressionStatement", - "src": "8370:8:25" + "src": "8370:8:26" } ] }, "documentation": null, - "id": 3792, + "id": 3946, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6809,29 +6809,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3786, + "id": 3940, "nodeType": "ParameterList", "parameters": [], - "src": "8342:2:25" + "src": "8342:2:26" }, "payable": true, "returnParameters": { - "id": 3787, + "id": 3941, "nodeType": "ParameterList", "parameters": [], - "src": "8360:0:25" + "src": "8360:0:26" }, - "scope": 3813, - "src": "8333:52:25", + "scope": 3967, + "src": "8333:52:26", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3811, + "id": 3965, "nodeType": "Block", - "src": "8723:76:25", + "src": "8723:76:26", "statements": [ { "expression": { @@ -6839,12 +6839,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3807, + "id": 3961, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "8778:5:25", + "referencedDeclaration": 3593, + "src": "8778:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6852,12 +6852,12 @@ }, { "argumentTypes": null, - "id": 3808, + "id": 3962, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3796, - "src": "8785:6:25", + "referencedDeclaration": 3950, + "src": "8785:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6880,12 +6880,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3804, + "id": 3958, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3794, - "src": "8755:12:25", + "referencedDeclaration": 3948, + "src": "8755:12:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6899,18 +6899,18 @@ "typeString": "address" } ], - "id": 3803, + "id": 3957, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3425, - "src": "8740:14:25", + "referencedDeclaration": 3579, + "src": "8740:14:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", "typeString": "type(contract ERC20Interface)" } }, - "id": 3805, + "id": 3959, "isConstant": false, "isLValue": false, "isPure": false, @@ -6918,27 +6918,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:28:25", + "src": "8740:28:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3806, + "id": 3960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 3388, - "src": "8740:37:25", + "referencedDeclaration": 3542, + "src": "8740:37:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 3809, + "id": 3963, "isConstant": false, "isLValue": false, "isPure": false, @@ -6946,58 +6946,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:52:25", + "src": "8740:52:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3802, - "id": 3810, + "functionReturnParameters": 3956, + "id": 3964, "nodeType": "Return", - "src": "8733:59:25" + "src": "8733:59:26" } ] }, "documentation": null, - "id": 3812, + "id": 3966, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3799, + "id": 3953, "modifierName": { "argumentTypes": null, - "id": 3798, + "id": 3952, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "8690:9:25", + "referencedDeclaration": 3621, + "src": "8690:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8690:9:25" + "src": "8690:9:26" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 3797, + "id": 3951, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3794, + "id": 3948, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8648:20:25", + "scope": 3966, + "src": "8648:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7005,10 +7005,10 @@ "typeString": "address" }, "typeName": { - "id": 3793, + "id": 3947, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8648:7:25", + "src": "8648:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7019,11 +7019,11 @@ }, { "constant": false, - "id": 3796, + "id": 3950, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8670:11:25", + "scope": 3966, + "src": "8670:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7031,10 +7031,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3795, + "id": 3949, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8670:4:25", + "src": "8670:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7044,20 +7044,20 @@ "visibility": "internal" } ], - "src": "8647:35:25" + "src": "8647:35:26" }, "payable": false, "returnParameters": { - "id": 3802, + "id": 3956, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3801, + "id": 3955, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8709:12:25", + "scope": 3966, + "src": "8709:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7065,10 +7065,10 @@ "typeString": "bool" }, "typeName": { - "id": 3800, + "id": 3954, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8709:4:25", + "src": "8709:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7078,45 +7078,45 @@ "visibility": "internal" } ], - "src": "8708:14:25" + "src": "8708:14:26" }, - "scope": 3813, - "src": "8617:182:25", + "scope": 3967, + "src": "8617:182:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "3506:5295:25" + "scope": 3968, + "src": "3506:5295:26" } ], - "src": "0:8801:25" + "src": "0:8801:26" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ - 3437 + 3591 ], "ERC20Interface": [ - 3425 + 3579 ], "Owned": [ - 3506 + 3660 ], "SafeMath": [ - 3358 + 3512 ], "TestToken": [ - 3813 + 3967 ] }, - "id": 3814, + "id": 3968, "nodeType": "SourceUnit", "nodes": [ { - "id": 3263, + "id": 3417, "literals": [ "solidity", "^", @@ -7124,7 +7124,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:24:26" }, { "baseContracts": [], @@ -7132,35 +7132,35 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 3358, + "id": 3512, "linearizedBaseContracts": [ - 3358 + 3512 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3284, + "id": 3438, "nodeType": "Block", - "src": "719:51:25", + "src": "719:51:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3276, + "id": 3430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3272, + "id": 3426, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "729:1:25", + "referencedDeclaration": 3424, + "src": "729:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7174,19 +7174,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3275, + "id": 3429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3273, + "id": 3427, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "733:1:25", + "referencedDeclaration": 3419, + "src": "733:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7196,32 +7196,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 3274, + "id": 3428, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3267, - "src": "737:1:25", + "referencedDeclaration": 3421, + "src": "737:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:5:25", + "src": "733:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "729:9:25", + "src": "729:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3277, + "id": 3431, "nodeType": "ExpressionStatement", - "src": "729:9:25" + "src": "729:9:26" }, { "expression": { @@ -7233,19 +7233,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3281, + "id": 3435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3279, + "id": 3433, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "756:1:25", + "referencedDeclaration": 3424, + "src": "756:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7255,18 +7255,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 3280, + "id": 3434, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "761:1:25", + "referencedDeclaration": 3419, + "src": "761:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "756:6:25", + "src": "756:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7280,21 +7280,21 @@ "typeString": "bool" } ], - "id": 3278, + "id": 3432, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "748:7:25", + "referencedDeclaration": 4494, + "src": "748:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3282, + "id": 3436, "isConstant": false, "isLValue": false, "isPure": false, @@ -7302,20 +7302,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:15:25", + "src": "748:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3283, + "id": 3437, "nodeType": "ExpressionStatement", - "src": "748:15:25" + "src": "748:15:26" } ] }, "documentation": null, - "id": 3285, + "id": 3439, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7323,16 +7323,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 3268, + "id": 3422, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3265, + "id": 3419, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "672:6:25", + "scope": 3439, + "src": "672:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7340,10 +7340,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3264, + "id": 3418, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "672:4:25", + "src": "672:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7354,11 +7354,11 @@ }, { "constant": false, - "id": 3267, + "id": 3421, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "680:6:25", + "scope": 3439, + "src": "680:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7366,10 +7366,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3266, + "id": 3420, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "680:4:25", + "src": "680:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7379,20 +7379,20 @@ "visibility": "internal" } ], - "src": "671:16:25" + "src": "671:16:26" }, "payable": false, "returnParameters": { - "id": 3271, + "id": 3425, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3270, + "id": 3424, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "711:6:25", + "scope": 3439, + "src": "711:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7400,10 +7400,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3269, + "id": 3423, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "711:4:25", + "src": "711:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7413,19 +7413,19 @@ "visibility": "internal" } ], - "src": "710:8:25" + "src": "710:8:26" }, - "scope": 3358, - "src": "659:111:25", + "scope": 3512, + "src": "659:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3306, + "id": 3460, "nodeType": "Block", - "src": "835:51:25", + "src": "835:51:26", "statements": [ { "expression": { @@ -7437,19 +7437,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3297, + "id": 3451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3295, + "id": 3449, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "853:1:25", + "referencedDeclaration": 3443, + "src": "853:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7459,18 +7459,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 3296, + "id": 3450, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "858:1:25", + "referencedDeclaration": 3441, + "src": "858:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "853:6:25", + "src": "853:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7484,21 +7484,21 @@ "typeString": "bool" } ], - "id": 3294, + "id": 3448, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "845:7:25", + "referencedDeclaration": 4494, + "src": "845:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3298, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, @@ -7506,32 +7506,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:15:25", + "src": "845:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3299, + "id": 3453, "nodeType": "ExpressionStatement", - "src": "845:15:25" + "src": "845:15:26" }, { "expression": { "argumentTypes": null, - "id": 3304, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3300, + "id": 3454, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3292, - "src": "870:1:25", + "referencedDeclaration": 3446, + "src": "870:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7545,19 +7545,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3303, + "id": 3457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3301, + "id": 3455, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "874:1:25", + "referencedDeclaration": 3441, + "src": "874:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7567,37 +7567,37 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 3302, + "id": 3456, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "878:1:25", + "referencedDeclaration": 3443, + "src": "878:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "874:5:25", + "src": "874:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "870:9:25", + "src": "870:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3305, + "id": 3459, "nodeType": "ExpressionStatement", - "src": "870:9:25" + "src": "870:9:26" } ] }, "documentation": null, - "id": 3307, + "id": 3461, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7605,16 +7605,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 3290, + "id": 3444, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3287, + "id": 3441, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "788:6:25", + "scope": 3461, + "src": "788:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7622,10 +7622,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3286, + "id": 3440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "788:4:25", + "src": "788:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7636,11 +7636,11 @@ }, { "constant": false, - "id": 3289, + "id": 3443, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "796:6:25", + "scope": 3461, + "src": "796:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7648,10 +7648,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3288, + "id": 3442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "796:4:25", + "src": "796:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7661,20 +7661,20 @@ "visibility": "internal" } ], - "src": "787:16:25" + "src": "787:16:26" }, "payable": false, "returnParameters": { - "id": 3293, + "id": 3447, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3292, + "id": 3446, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "827:6:25", + "scope": 3461, + "src": "827:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7682,10 +7682,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3291, + "id": 3445, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:25", + "src": "827:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7695,36 +7695,36 @@ "visibility": "internal" } ], - "src": "826:8:25" + "src": "826:8:26" }, - "scope": 3358, - "src": "775:111:25", + "scope": 3512, + "src": "775:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3334, + "id": 3488, "nodeType": "Block", - "src": "951:65:25", + "src": "951:65:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3320, + "id": 3474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3316, + "id": 3470, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "961:1:25", + "referencedDeclaration": 3468, + "src": "961:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7738,19 +7738,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3319, + "id": 3473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3317, + "id": 3471, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "965:1:25", + "referencedDeclaration": 3463, + "src": "965:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7760,32 +7760,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 3318, + "id": 3472, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "969:1:25", + "referencedDeclaration": 3465, + "src": "969:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "965:5:25", + "src": "965:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "961:9:25", + "src": "961:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3321, + "id": 3475, "nodeType": "ExpressionStatement", - "src": "961:9:25" + "src": "961:9:26" }, { "expression": { @@ -7797,7 +7797,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3331, + "id": 3485, "isConstant": false, "isLValue": false, "isPure": false, @@ -7808,19 +7808,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3325, + "id": 3479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3323, + "id": 3477, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "988:1:25", + "referencedDeclaration": 3463, + "src": "988:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7831,14 +7831,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3324, + "id": 3478, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "993:1:25", + "src": "993:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7846,7 +7846,7 @@ }, "value": "0" }, - "src": "988:6:25", + "src": "988:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7860,7 +7860,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3330, + "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, @@ -7871,19 +7871,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3328, + "id": 3482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3326, + "id": 3480, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "998:1:25", + "referencedDeclaration": 3468, + "src": "998:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7893,18 +7893,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3327, + "id": 3481, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "1002:1:25", + "referencedDeclaration": 3463, + "src": "1002:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:5:25", + "src": "998:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7914,24 +7914,24 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3329, + "id": 3483, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "1007:1:25", + "referencedDeclaration": 3465, + "src": "1007:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:25", + "src": "998:10:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "988:20:25", + "src": "988:20:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7945,21 +7945,21 @@ "typeString": "bool" } ], - "id": 3322, + "id": 3476, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "980:7:25", + "referencedDeclaration": 4494, + "src": "980:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3332, + "id": 3486, "isConstant": false, "isLValue": false, "isPure": false, @@ -7967,20 +7967,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "980:29:25", + "src": "980:29:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3333, + "id": 3487, "nodeType": "ExpressionStatement", - "src": "980:29:25" + "src": "980:29:26" } ] }, "documentation": null, - "id": 3335, + "id": 3489, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7988,16 +7988,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 3312, + "id": 3466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3309, + "id": 3463, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "904:6:25", + "scope": 3489, + "src": "904:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8005,10 +8005,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3308, + "id": 3462, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "904:4:25", + "src": "904:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8019,11 +8019,11 @@ }, { "constant": false, - "id": 3311, + "id": 3465, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "912:6:25", + "scope": 3489, + "src": "912:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8031,10 +8031,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3310, + "id": 3464, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "912:4:25", + "src": "912:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8044,20 +8044,20 @@ "visibility": "internal" } ], - "src": "903:16:25" + "src": "903:16:26" }, "payable": false, "returnParameters": { - "id": 3315, + "id": 3469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3314, + "id": 3468, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "943:6:25", + "scope": 3489, + "src": "943:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8065,10 +8065,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3313, + "id": 3467, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "943:4:25", + "src": "943:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8078,19 +8078,19 @@ "visibility": "internal" } ], - "src": "942:8:25" + "src": "942:8:26" }, - "scope": 3358, - "src": "891:125:25", + "scope": 3512, + "src": "891:125:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3356, + "id": 3510, "nodeType": "Block", - "src": "1081:50:25", + "src": "1081:50:26", "statements": [ { "expression": { @@ -8102,19 +8102,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3347, + "id": 3501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3345, + "id": 3499, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1099:1:25", + "referencedDeclaration": 3493, + "src": "1099:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8125,14 +8125,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3346, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:1:25", + "src": "1103:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8140,7 +8140,7 @@ }, "value": "0" }, - "src": "1099:5:25", + "src": "1099:5:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8154,21 +8154,21 @@ "typeString": "bool" } ], - "id": 3344, + "id": 3498, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "1091:7:25", + "referencedDeclaration": 4494, + "src": "1091:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3348, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, @@ -8176,32 +8176,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:14:25", + "src": "1091:14:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3349, + "id": 3503, "nodeType": "ExpressionStatement", - "src": "1091:14:25" + "src": "1091:14:26" }, { "expression": { "argumentTypes": null, - "id": 3354, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3350, + "id": 3504, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3342, - "src": "1115:1:25", + "referencedDeclaration": 3496, + "src": "1115:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8215,19 +8215,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3353, + "id": 3507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3351, + "id": 3505, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "1119:1:25", + "referencedDeclaration": 3491, + "src": "1119:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8237,37 +8237,37 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3352, + "id": 3506, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1123:1:25", + "referencedDeclaration": 3493, + "src": "1123:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:5:25", + "src": "1119:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1115:9:25", + "src": "1115:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3355, + "id": 3509, "nodeType": "ExpressionStatement", - "src": "1115:9:25" + "src": "1115:9:26" } ] }, "documentation": null, - "id": 3357, + "id": 3511, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8275,16 +8275,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 3340, + "id": 3494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3337, + "id": 3491, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1034:6:25", + "scope": 3511, + "src": "1034:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8292,10 +8292,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3336, + "id": 3490, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1034:4:25", + "src": "1034:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8306,11 +8306,11 @@ }, { "constant": false, - "id": 3339, + "id": 3493, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1042:6:25", + "scope": 3511, + "src": "1042:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8318,10 +8318,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3338, + "id": 3492, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1042:4:25", + "src": "1042:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8331,20 +8331,20 @@ "visibility": "internal" } ], - "src": "1033:16:25" + "src": "1033:16:26" }, "payable": false, "returnParameters": { - "id": 3343, + "id": 3497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3342, + "id": 3496, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1073:6:25", + "scope": 3511, + "src": "1073:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8352,10 +8352,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3341, + "id": 3495, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1073:4:25", + "src": "1073:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8365,17 +8365,17 @@ "visibility": "internal" } ], - "src": "1072:8:25" + "src": "1072:8:26" }, - "scope": 3358, - "src": "1021:110:25", + "scope": 3512, + "src": "1021:110:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 3814, - "src": "636:497:25" + "scope": 3968, + "src": "636:497:26" }, { "baseContracts": [], @@ -8383,9 +8383,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3425, + "id": 3579, "linearizedBaseContracts": [ - 3425 + 3579 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", @@ -8393,7 +8393,7 @@ { "body": null, "documentation": null, - "id": 3363, + "id": 3517, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8401,23 +8401,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3359, + "id": 3513, "nodeType": "ParameterList", "parameters": [], - "src": "1445:2:25" + "src": "1445:2:26" }, "payable": false, "returnParameters": { - "id": 3362, + "id": 3516, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3361, + "id": 3515, "name": "", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "1473:4:25", + "scope": 3517, + "src": "1473:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8425,10 +8425,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3360, + "id": 3514, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1473:4:25", + "src": "1473:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8438,10 +8438,10 @@ "visibility": "internal" } ], - "src": "1472:6:25" + "src": "1472:6:26" }, - "scope": 3425, - "src": "1425:54:25", + "scope": 3579, + "src": "1425:54:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8449,7 +8449,7 @@ { "body": null, "documentation": null, - "id": 3370, + "id": 3524, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8457,16 +8457,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3366, + "id": 3520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3365, + "id": 3519, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1503:18:25", + "scope": 3524, + "src": "1503:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8474,10 +8474,10 @@ "typeString": "address" }, "typeName": { - "id": 3364, + "id": 3518, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1503:7:25", + "src": "1503:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8487,20 +8487,20 @@ "visibility": "internal" } ], - "src": "1502:20:25" + "src": "1502:20:26" }, "payable": false, "returnParameters": { - "id": 3369, + "id": 3523, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3368, + "id": 3522, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1548:12:25", + "scope": 3524, + "src": "1548:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8508,10 +8508,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3367, + "id": 3521, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:25", + "src": "1548:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8521,10 +8521,10 @@ "visibility": "internal" } ], - "src": "1547:14:25" + "src": "1547:14:26" }, - "scope": 3425, - "src": "1484:78:25", + "scope": 3579, + "src": "1484:78:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8532,7 +8532,7 @@ { "body": null, "documentation": null, - "id": 3379, + "id": 3533, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8540,16 +8540,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3375, + "id": 3529, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3372, + "id": 3526, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1586:18:25", + "scope": 3533, + "src": "1586:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8557,10 +8557,10 @@ "typeString": "address" }, "typeName": { - "id": 3371, + "id": 3525, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:25", + "src": "1586:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8571,11 +8571,11 @@ }, { "constant": false, - "id": 3374, + "id": 3528, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1606:15:25", + "scope": 3533, + "src": "1606:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8583,10 +8583,10 @@ "typeString": "address" }, "typeName": { - "id": 3373, + "id": 3527, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1606:7:25", + "src": "1606:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8596,20 +8596,20 @@ "visibility": "internal" } ], - "src": "1585:37:25" + "src": "1585:37:26" }, "payable": false, "returnParameters": { - "id": 3378, + "id": 3532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3377, + "id": 3531, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1648:14:25", + "scope": 3533, + "src": "1648:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8617,10 +8617,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3376, + "id": 3530, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1648:4:25", + "src": "1648:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8630,10 +8630,10 @@ "visibility": "internal" } ], - "src": "1647:16:25" + "src": "1647:16:26" }, - "scope": 3425, - "src": "1567:97:25", + "scope": 3579, + "src": "1567:97:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8641,7 +8641,7 @@ { "body": null, "documentation": null, - "id": 3388, + "id": 3542, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -8649,16 +8649,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3384, + "id": 3538, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3381, + "id": 3535, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1687:10:25", + "scope": 3542, + "src": "1687:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8666,10 +8666,10 @@ "typeString": "address" }, "typeName": { - "id": 3380, + "id": 3534, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:25", + "src": "1687:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8680,11 +8680,11 @@ }, { "constant": false, - "id": 3383, + "id": 3537, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1699:11:25", + "scope": 3542, + "src": "1699:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8692,10 +8692,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3382, + "id": 3536, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:25", + "src": "1699:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8705,20 +8705,20 @@ "visibility": "internal" } ], - "src": "1686:25:25" + "src": "1686:25:26" }, "payable": false, "returnParameters": { - "id": 3387, + "id": 3541, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3386, + "id": 3540, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1728:12:25", + "scope": 3542, + "src": "1728:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8726,10 +8726,10 @@ "typeString": "bool" }, "typeName": { - "id": 3385, + "id": 3539, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1728:4:25", + "src": "1728:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8739,10 +8739,10 @@ "visibility": "internal" } ], - "src": "1727:14:25" + "src": "1727:14:26" }, - "scope": 3425, - "src": "1669:73:25", + "scope": 3579, + "src": "1669:73:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -8750,7 +8750,7 @@ { "body": null, "documentation": null, - "id": 3397, + "id": 3551, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -8758,16 +8758,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3393, + "id": 3547, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3390, + "id": 3544, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1764:15:25", + "scope": 3551, + "src": "1764:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8775,10 +8775,10 @@ "typeString": "address" }, "typeName": { - "id": 3389, + "id": 3543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:25", + "src": "1764:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8789,11 +8789,11 @@ }, { "constant": false, - "id": 3392, + "id": 3546, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1781:11:25", + "scope": 3551, + "src": "1781:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8801,10 +8801,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3391, + "id": 3545, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:25", + "src": "1781:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8814,20 +8814,20 @@ "visibility": "internal" } ], - "src": "1763:30:25" + "src": "1763:30:26" }, "payable": false, "returnParameters": { - "id": 3396, + "id": 3550, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3395, + "id": 3549, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1810:12:25", + "scope": 3551, + "src": "1810:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8835,10 +8835,10 @@ "typeString": "bool" }, "typeName": { - "id": 3394, + "id": 3548, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1810:4:25", + "src": "1810:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8848,10 +8848,10 @@ "visibility": "internal" } ], - "src": "1809:14:25" + "src": "1809:14:26" }, - "scope": 3425, - "src": "1747:77:25", + "scope": 3579, + "src": "1747:77:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -8859,7 +8859,7 @@ { "body": null, "documentation": null, - "id": 3408, + "id": 3562, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -8867,16 +8867,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3404, + "id": 3558, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3399, + "id": 3553, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1851:12:25", + "scope": 3562, + "src": "1851:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8884,10 +8884,10 @@ "typeString": "address" }, "typeName": { - "id": 3398, + "id": 3552, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1851:7:25", + "src": "1851:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8898,11 +8898,11 @@ }, { "constant": false, - "id": 3401, + "id": 3555, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1865:10:25", + "scope": 3562, + "src": "1865:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8910,10 +8910,10 @@ "typeString": "address" }, "typeName": { - "id": 3400, + "id": 3554, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:25", + "src": "1865:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8924,11 +8924,11 @@ }, { "constant": false, - "id": 3403, + "id": 3557, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1877:11:25", + "scope": 3562, + "src": "1877:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8936,10 +8936,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3402, + "id": 3556, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1877:4:25", + "src": "1877:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8949,20 +8949,20 @@ "visibility": "internal" } ], - "src": "1850:39:25" + "src": "1850:39:26" }, "payable": false, "returnParameters": { - "id": 3407, + "id": 3561, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3406, + "id": 3560, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1906:12:25", + "scope": 3562, + "src": "1906:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8970,10 +8970,10 @@ "typeString": "bool" }, "typeName": { - "id": 3405, + "id": 3559, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1906:4:25", + "src": "1906:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8983,10 +8983,10 @@ "visibility": "internal" } ], - "src": "1905:14:25" + "src": "1905:14:26" }, - "scope": 3425, - "src": "1829:91:25", + "scope": 3579, + "src": "1829:91:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -8994,21 +8994,21 @@ { "anonymous": false, "documentation": null, - "id": 3416, + "id": 3570, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 3415, + "id": 3569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3410, + "id": 3564, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1941:20:25", + "scope": 3570, + "src": "1941:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9016,10 +9016,10 @@ "typeString": "address" }, "typeName": { - "id": 3409, + "id": 3563, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1941:7:25", + "src": "1941:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9030,12 +9030,12 @@ }, { "constant": false, - "id": 3412, + "id": 3566, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1963:18:25", + "scope": 3570, + "src": "1963:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9043,10 +9043,10 @@ "typeString": "address" }, "typeName": { - "id": 3411, + "id": 3565, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1963:7:25", + "src": "1963:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9057,12 +9057,12 @@ }, { "constant": false, - "id": 3414, + "id": 3568, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1983:11:25", + "scope": 3570, + "src": "1983:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9070,10 +9070,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3413, + "id": 3567, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:25", + "src": "1983:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9083,28 +9083,28 @@ "visibility": "internal" } ], - "src": "1940:55:25" + "src": "1940:55:26" }, - "src": "1926:70:25" + "src": "1926:70:26" }, { "anonymous": false, "documentation": null, - "id": 3424, + "id": 3578, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 3423, + "id": 3577, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3418, + "id": 3572, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2016:26:25", + "scope": 3578, + "src": "2016:26:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9112,10 +9112,10 @@ "typeString": "address" }, "typeName": { - "id": 3417, + "id": 3571, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2016:7:25", + "src": "2016:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9126,12 +9126,12 @@ }, { "constant": false, - "id": 3420, + "id": 3574, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2044:23:25", + "scope": 3578, + "src": "2044:23:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9139,10 +9139,10 @@ "typeString": "address" }, "typeName": { - "id": 3419, + "id": 3573, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2044:7:25", + "src": "2044:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9153,12 +9153,12 @@ }, { "constant": false, - "id": 3422, + "id": 3576, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2069:11:25", + "scope": 3578, + "src": "2069:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9166,10 +9166,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3421, + "id": 3575, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2069:4:25", + "src": "2069:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9179,13 +9179,13 @@ "visibility": "internal" } ], - "src": "2015:66:25" + "src": "2015:66:26" }, - "src": "2001:81:25" + "src": "2001:81:26" } ], - "scope": 3814, - "src": "1395:689:25" + "scope": 3968, + "src": "1395:689:26" }, { "baseContracts": [], @@ -9193,9 +9193,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3437, + "id": 3591, "linearizedBaseContracts": [ - 3437 + 3591 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", @@ -9203,7 +9203,7 @@ { "body": null, "documentation": null, - "id": 3436, + "id": 3590, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -9211,16 +9211,16 @@ "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 3434, + "id": 3588, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3427, + "id": 3581, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2416:12:25", + "scope": 3590, + "src": "2416:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9228,10 +9228,10 @@ "typeString": "address" }, "typeName": { - "id": 3426, + "id": 3580, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2416:7:25", + "src": "2416:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9242,11 +9242,11 @@ }, { "constant": false, - "id": 3429, + "id": 3583, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2430:14:25", + "scope": 3590, + "src": "2430:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9254,10 +9254,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3428, + "id": 3582, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2430:7:25", + "src": "2430:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9268,11 +9268,11 @@ }, { "constant": false, - "id": 3431, + "id": 3585, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2446:13:25", + "scope": 3590, + "src": "2446:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9280,10 +9280,10 @@ "typeString": "address" }, "typeName": { - "id": 3430, + "id": 3584, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2446:7:25", + "src": "2446:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9294,11 +9294,11 @@ }, { "constant": false, - "id": 3433, + "id": 3587, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2461:10:25", + "scope": 3590, + "src": "2461:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9306,10 +9306,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3432, + "id": 3586, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2461:5:25", + "src": "2461:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9319,24 +9319,24 @@ "visibility": "internal" } ], - "src": "2415:57:25" + "src": "2415:57:26" }, "payable": false, "returnParameters": { - "id": 3435, + "id": 3589, "nodeType": "ParameterList", "parameters": [], - "src": "2479:0:25" + "src": "2479:0:26" }, - "scope": 3437, - "src": "2391:89:25", + "scope": 3591, + "src": "2391:89:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2353:129:25" + "scope": 3968, + "src": "2353:129:26" }, { "baseContracts": [], @@ -9344,20 +9344,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3506, + "id": 3660, "linearizedBaseContracts": [ - 3506 + 3660 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 3439, + "id": 3593, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2684:20:25", + "scope": 3660, + "src": "2684:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -9365,10 +9365,10 @@ "typeString": "address" }, "typeName": { - "id": 3438, + "id": 3592, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2684:7:25", + "src": "2684:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9379,11 +9379,11 @@ }, { "constant": false, - "id": 3441, + "id": 3595, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2710:23:25", + "scope": 3660, + "src": "2710:23:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -9391,10 +9391,10 @@ "typeString": "address" }, "typeName": { - "id": 3440, + "id": 3594, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2710:7:25", + "src": "2710:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9406,21 +9406,21 @@ { "anonymous": false, "documentation": null, - "id": 3447, + "id": 3601, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 3446, + "id": 3600, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3443, + "id": 3597, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2767:21:25", + "scope": 3601, + "src": "2767:21:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9428,10 +9428,10 @@ "typeString": "address" }, "typeName": { - "id": 3442, + "id": 3596, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2767:7:25", + "src": "2767:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9442,12 +9442,12 @@ }, { "constant": false, - "id": 3445, + "id": 3599, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2790:19:25", + "scope": 3601, + "src": "2790:19:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9455,10 +9455,10 @@ "typeString": "address" }, "typeName": { - "id": 3444, + "id": 3598, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2790:7:25", + "src": "2790:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9468,32 +9468,32 @@ "visibility": "internal" } ], - "src": "2766:44:25" + "src": "2766:44:26" }, - "src": "2740:71:25" + "src": "2740:71:26" }, { "body": { - "id": 3455, + "id": 3609, "nodeType": "Block", - "src": "2838:35:25", + "src": "2838:35:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3453, + "id": 3607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3450, + "id": 3604, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2848:5:25", + "referencedDeclaration": 3593, + "src": "2848:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9505,18 +9505,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3451, + "id": 3605, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2856:3:25", + "referencedDeclaration": 4491, + "src": "2856:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3452, + "id": 3606, "isConstant": false, "isLValue": false, "isPure": false, @@ -9524,26 +9524,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2856:10:25", + "src": "2856:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2848:18:25", + "src": "2848:18:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3454, + "id": 3608, "nodeType": "ExpressionStatement", - "src": "2848:18:25" + "src": "2848:18:26" } ] }, "documentation": null, - "id": 3456, + "id": 3610, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -9551,29 +9551,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3448, + "id": 3602, "nodeType": "ParameterList", "parameters": [], - "src": "2828:2:25" + "src": "2828:2:26" }, "payable": false, "returnParameters": { - "id": 3449, + "id": 3603, "nodeType": "ParameterList", "parameters": [], - "src": "2838:0:25" + "src": "2838:0:26" }, - "scope": 3506, - "src": "2817:56:25", + "scope": 3660, + "src": "2817:56:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3466, + "id": 3620, "nodeType": "Block", - "src": "2898:56:25", + "src": "2898:56:26", "statements": [ { "expression": { @@ -9585,7 +9585,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3462, + "id": 3616, "isConstant": false, "isLValue": false, "isPure": false, @@ -9594,18 +9594,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3459, + "id": 3613, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2916:3:25", + "referencedDeclaration": 4491, + "src": "2916:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3460, + "id": 3614, "isConstant": false, "isLValue": false, "isPure": false, @@ -9613,7 +9613,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2916:10:25", + "src": "2916:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9623,18 +9623,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3461, + "id": 3615, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2930:5:25", + "referencedDeclaration": 3593, + "src": "2930:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2916:19:25", + "src": "2916:19:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9648,21 +9648,21 @@ "typeString": "bool" } ], - "id": 3458, + "id": 3612, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "2908:7:25", + "referencedDeclaration": 4494, + "src": "2908:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3463, + "id": 3617, "isConstant": false, "isLValue": false, "isPure": false, @@ -9670,58 +9670,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:28:25", + "src": "2908:28:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3464, + "id": 3618, "nodeType": "ExpressionStatement", - "src": "2908:28:25" + "src": "2908:28:26" }, { - "id": 3465, + "id": 3619, "nodeType": "PlaceholderStatement", - "src": "2946:1:25" + "src": "2946:1:26" } ] }, "documentation": null, - "id": 3467, + "id": 3621, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 3457, + "id": 3611, "nodeType": "ParameterList", "parameters": [], - "src": "2898:0:25" + "src": "2898:0:26" }, - "src": "2879:75:25", + "src": "2879:75:26", "visibility": "internal" }, { "body": { - "id": 3478, + "id": 3632, "nodeType": "Block", - "src": "3023:37:25", + "src": "3023:37:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3476, + "id": 3630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3474, + "id": 3628, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3033:8:25", + "referencedDeclaration": 3595, + "src": "3033:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9731,68 +9731,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3475, + "id": 3629, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3469, - "src": "3044:9:25", + "referencedDeclaration": 3623, + "src": "3044:9:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3033:20:25", + "src": "3033:20:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3477, + "id": 3631, "nodeType": "ExpressionStatement", - "src": "3033:20:25" + "src": "3033:20:26" } ] }, "documentation": null, - "id": 3479, + "id": 3633, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3472, + "id": 3626, "modifierName": { "argumentTypes": null, - "id": 3471, + "id": 3625, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3013:9:25", + "referencedDeclaration": 3621, + "src": "3013:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3013:9:25" + "src": "3013:9:26" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3470, + "id": 3624, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3469, + "id": 3623, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 3479, - "src": "2987:17:25", + "scope": 3633, + "src": "2987:17:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9800,10 +9800,10 @@ "typeString": "address" }, "typeName": { - "id": 3468, + "id": 3622, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2987:7:25", + "src": "2987:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9813,26 +9813,26 @@ "visibility": "internal" } ], - "src": "2986:19:25" + "src": "2986:19:26" }, "payable": false, "returnParameters": { - "id": 3473, + "id": 3627, "nodeType": "ParameterList", "parameters": [], - "src": "3023:0:25" + "src": "3023:0:26" }, - "scope": 3506, - "src": "2960:100:25", + "scope": 3660, + "src": "2960:100:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3504, + "id": 3658, "nodeType": "Block", - "src": "3099:157:25", + "src": "3099:157:26", "statements": [ { "expression": { @@ -9844,7 +9844,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3486, + "id": 3640, "isConstant": false, "isLValue": false, "isPure": false, @@ -9853,18 +9853,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3483, + "id": 3637, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "3117:3:25", + "referencedDeclaration": 4491, + "src": "3117:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3484, + "id": 3638, "isConstant": false, "isLValue": false, "isPure": false, @@ -9872,7 +9872,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3117:10:25", + "src": "3117:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9882,18 +9882,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3485, + "id": 3639, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3131:8:25", + "referencedDeclaration": 3595, + "src": "3131:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3117:22:25", + "src": "3117:22:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9907,21 +9907,21 @@ "typeString": "bool" } ], - "id": 3482, + "id": 3636, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "3109:7:25", + "referencedDeclaration": 4494, + "src": "3109:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3487, + "id": 3641, "isConstant": false, "isLValue": false, "isPure": false, @@ -9929,15 +9929,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3109:31:25", + "src": "3109:31:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3488, + "id": 3642, "nodeType": "ExpressionStatement", - "src": "3109:31:25" + "src": "3109:31:26" }, { "eventCall": { @@ -9945,12 +9945,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3490, + "id": 3644, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3176:5:25", + "referencedDeclaration": 3593, + "src": "3176:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9958,12 +9958,12 @@ }, { "argumentTypes": null, - "id": 3491, + "id": 3645, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3183:8:25", + "referencedDeclaration": 3595, + "src": "3183:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9981,18 +9981,18 @@ "typeString": "address" } ], - "id": 3489, + "id": 3643, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3447, - "src": "3155:20:25", + "referencedDeclaration": 3601, + "src": "3155:20:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 3492, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, @@ -10000,32 +10000,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3155:37:25", + "src": "3155:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3493, + "id": 3647, "nodeType": "EmitStatement", - "src": "3150:42:25" + "src": "3150:42:26" }, { "expression": { "argumentTypes": null, - "id": 3496, + "id": 3650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3494, + "id": 3648, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3202:5:25", + "referencedDeclaration": 3593, + "src": "3202:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10035,43 +10035,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3495, + "id": 3649, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3210:8:25", + "referencedDeclaration": 3595, + "src": "3210:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3202:16:25", + "src": "3202:16:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3497, + "id": 3651, "nodeType": "ExpressionStatement", - "src": "3202:16:25" + "src": "3202:16:26" }, { "expression": { "argumentTypes": null, - "id": 3502, + "id": 3656, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3498, + "id": 3652, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3228:8:25", + "referencedDeclaration": 3595, + "src": "3228:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10085,14 +10085,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3500, + "id": 3654, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3247:1:25", + "src": "3247:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10108,20 +10108,20 @@ "typeString": "int_const 0" } ], - "id": 3499, + "id": 3653, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:25", + "src": "3239:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3501, + "id": 3655, "isConstant": false, "isLValue": false, "isPure": true, @@ -10129,26 +10129,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3239:10:25", + "src": "3239:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3228:21:25", + "src": "3228:21:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3503, + "id": 3657, "nodeType": "ExpressionStatement", - "src": "3228:21:25" + "src": "3228:21:26" } ] }, "documentation": null, - "id": 3505, + "id": 3659, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -10156,27 +10156,27 @@ "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3480, + "id": 3634, "nodeType": "ParameterList", "parameters": [], - "src": "3089:2:25" + "src": "3089:2:26" }, "payable": false, "returnParameters": { - "id": 3481, + "id": 3635, "nodeType": "ParameterList", "parameters": [], - "src": "3099:0:25" + "src": "3099:0:26" }, - "scope": 3506, - "src": "3065:191:25", + "scope": 3660, + "src": "3065:191:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2663:595:25" + "scope": 3968, + "src": "2663:595:26" }, { "baseContracts": [ @@ -10184,76 +10184,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3507, + "id": 3661, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3425, - "src": "3528:14:25", + "referencedDeclaration": 3579, + "src": "3528:14:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3508, + "id": 3662, "nodeType": "InheritanceSpecifier", - "src": "3528:14:25" + "src": "3528:14:26" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3509, + "id": 3663, "name": "Owned", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3506, - "src": "3544:5:25", + "referencedDeclaration": 3660, + "src": "3544:5:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3506", + "typeIdentifier": "t_contract$_Owned_$3660", "typeString": "contract Owned" } }, - "id": 3510, + "id": 3664, "nodeType": "InheritanceSpecifier", - "src": "3544:5:25" + "src": "3544:5:26" } ], "contractDependencies": [ - 3425, - 3506 + 3579, + 3660 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3813, + "id": 3967, "linearizedBaseContracts": [ - 3813, - 3506, - 3425 + 3967, + 3660, + 3579 ], "name": "TestToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3513, + "id": 3667, "libraryName": { "contractScope": null, - "id": 3511, + "id": 3665, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3358, - "src": "3562:8:25", + "referencedDeclaration": 3512, + "src": "3562:8:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeIdentifier": "t_contract$_SafeMath_$3512", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3556:24:25", + "src": "3556:24:26", "typeName": { - "id": 3512, + "id": 3666, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3575:4:25", + "src": "3575:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10262,11 +10262,11 @@ }, { "constant": false, - "id": 3515, + "id": 3669, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3586:20:25", + "scope": 3967, + "src": "3586:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10274,10 +10274,10 @@ "typeString": "string" }, "typeName": { - "id": 3514, + "id": 3668, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3586:6:25", + "src": "3586:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -10288,11 +10288,11 @@ }, { "constant": false, - "id": 3517, + "id": 3671, "name": "name", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3612:19:25", + "scope": 3967, + "src": "3612:19:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10300,10 +10300,10 @@ "typeString": "string" }, "typeName": { - "id": 3516, + "id": 3670, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3612:6:25", + "src": "3612:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -10314,11 +10314,11 @@ }, { "constant": false, - "id": 3519, + "id": 3673, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3637:21:25", + "scope": 3967, + "src": "3637:21:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10326,10 +10326,10 @@ "typeString": "uint8" }, "typeName": { - "id": 3518, + "id": 3672, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3637:5:25", + "src": "3637:5:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10340,11 +10340,11 @@ }, { "constant": false, - "id": 3521, + "id": 3675, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3664:17:25", + "scope": 3967, + "src": "3664:17:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10352,10 +10352,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3520, + "id": 3674, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3664:4:25", + "src": "3664:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10366,11 +10366,11 @@ }, { "constant": false, - "id": 3525, + "id": 3679, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3688:33:25", + "scope": 3967, + "src": "3688:33:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10378,28 +10378,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 3524, + "id": 3678, "keyType": { - "id": 3522, + "id": 3676, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3696:7:25", + "src": "3696:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3688:24:25", + "src": "3688:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3523, + "id": 3677, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3707:4:25", + "src": "3707:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10411,11 +10411,11 @@ }, { "constant": false, - "id": 3531, + "id": 3685, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3727:52:25", + "scope": 3967, + "src": "3727:52:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10423,46 +10423,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 3530, + "id": 3684, "keyType": { - "id": 3526, + "id": 3680, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3735:7:25", + "src": "3735:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3727:44:25", + "src": "3727:44:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 3529, + "id": 3683, "keyType": { - "id": 3527, + "id": 3681, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3754:7:25", + "src": "3754:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3746:24:25", + "src": "3746:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3528, + "id": 3682, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3765:4:25", + "src": "3765:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10475,26 +10475,26 @@ }, { "body": { - "id": 3570, + "id": 3724, "nodeType": "Block", - "src": "3987:235:25", + "src": "3987:235:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3536, + "id": 3690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3534, + "id": 3688, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3997:6:25", + "referencedDeclaration": 3669, + "src": "3997:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -10505,14 +10505,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "544b4e", - "id": 3535, + "id": 3689, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4006:5:25", + "src": "4006:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", @@ -10520,32 +10520,32 @@ }, "value": "TKN" }, - "src": "3997:14:25", + "src": "3997:14:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3537, + "id": 3691, "nodeType": "ExpressionStatement", - "src": "3997:14:25" + "src": "3997:14:26" }, { "expression": { "argumentTypes": null, - "id": 3540, + "id": 3694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3538, + "id": 3692, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3517, - "src": "4021:4:25", + "referencedDeclaration": 3671, + "src": "4021:4:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -10556,14 +10556,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "546f6b656e204578616d706c65", - "id": 3539, + "id": 3693, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4028:15:25", + "src": "4028:15:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", @@ -10571,32 +10571,32 @@ }, "value": "Token Example" }, - "src": "4021:22:25", + "src": "4021:22:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3541, + "id": 3695, "nodeType": "ExpressionStatement", - "src": "4021:22:25" + "src": "4021:22:26" }, { "expression": { "argumentTypes": null, - "id": 3544, + "id": 3698, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3542, + "id": 3696, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4053:8:25", + "referencedDeclaration": 3673, + "src": "4053:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10607,14 +10607,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3138", - "id": 3543, + "id": 3697, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4064:2:25", + "src": "4064:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -10622,32 +10622,32 @@ }, "value": "18" }, - "src": "4053:13:25", + "src": "4053:13:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 3545, + "id": 3699, "nodeType": "ExpressionStatement", - "src": "4053:13:25" + "src": "4053:13:26" }, { "expression": { "argumentTypes": null, - "id": 3554, + "id": 3708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3546, + "id": 3700, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4076:12:25", + "referencedDeclaration": 3675, + "src": "4076:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10661,7 +10661,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3553, + "id": 3707, "isConstant": false, "isLValue": false, "isPure": false, @@ -10669,14 +10669,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 3547, + "id": 3701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4091:7:25", + "src": "4091:7:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -10692,7 +10692,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3552, + "id": 3706, "isConstant": false, "isLValue": false, "isPure": false, @@ -10700,14 +10700,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 3548, + "id": 3702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4101:2:25", + "src": "4101:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -10722,12 +10722,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3550, + "id": 3704, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4110:8:25", + "referencedDeclaration": 3673, + "src": "4110:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10741,20 +10741,20 @@ "typeString": "uint8" } ], - "id": 3549, + "id": 3703, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:25", + "src": "4105:4:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 3551, + "id": 3705, "isConstant": false, "isLValue": false, "isPure": false, @@ -10762,38 +10762,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4105:14:25", + "src": "4105:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4101:18:25", + "src": "4101:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4091:28:25", + "src": "4091:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4076:43:25", + "src": "4076:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3555, + "id": 3709, "nodeType": "ExpressionStatement", - "src": "4076:43:25" + "src": "4076:43:26" }, { "expression": { "argumentTypes": null, - "id": 3560, + "id": 3714, "isConstant": false, "isLValue": false, "isPure": false, @@ -10802,26 +10802,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3556, + "id": 3710, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4129:8:25", + "referencedDeclaration": 3679, + "src": "4129:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3558, + "id": 3712, "indexExpression": { "argumentTypes": null, - "id": 3557, + "id": 3711, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4138:5:25", + "referencedDeclaration": 3593, + "src": "4138:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10832,7 +10832,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4129:15:25", + "src": "4129:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10842,26 +10842,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3559, + "id": 3713, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4147:12:25", + "referencedDeclaration": 3675, + "src": "4147:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4129:30:25", + "src": "4129:30:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3561, + "id": 3715, "nodeType": "ExpressionStatement", - "src": "4129:30:25" + "src": "4129:30:26" }, { "eventCall": { @@ -10873,14 +10873,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3564, + "id": 3718, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4191:1:25", + "src": "4191:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10896,20 +10896,20 @@ "typeString": "int_const 0" } ], - "id": 3563, + "id": 3717, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:25", + "src": "4183:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3565, + "id": 3719, "isConstant": false, "isLValue": false, "isPure": true, @@ -10917,7 +10917,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4183:10:25", + "src": "4183:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10925,12 +10925,12 @@ }, { "argumentTypes": null, - "id": 3566, + "id": 3720, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4195:5:25", + "referencedDeclaration": 3593, + "src": "4195:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10938,12 +10938,12 @@ }, { "argumentTypes": null, - "id": 3567, + "id": 3721, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4202:12:25", + "referencedDeclaration": 3675, + "src": "4202:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10965,18 +10965,18 @@ "typeString": "uint256" } ], - "id": 3562, + "id": 3716, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "4174:8:25", + "referencedDeclaration": 3570, + "src": "4174:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3568, + "id": 3722, "isConstant": false, "isLValue": false, "isPure": false, @@ -10984,20 +10984,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4174:41:25", + "src": "4174:41:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3569, + "id": 3723, "nodeType": "EmitStatement", - "src": "4169:46:25" + "src": "4169:46:26" } ] }, "documentation": null, - "id": 3571, + "id": 3725, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -11005,29 +11005,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3532, + "id": 3686, "nodeType": "ParameterList", "parameters": [], - "src": "3977:2:25" + "src": "3977:2:26" }, "payable": false, "returnParameters": { - "id": 3533, + "id": 3687, "nodeType": "ParameterList", "parameters": [], - "src": "3987:0:25" + "src": "3987:0:26" }, - "scope": 3813, - "src": "3966:256:25", + "scope": 3967, + "src": "3966:256:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3585, + "id": 3739, "nodeType": "Block", - "src": "4459:62:25", + "src": "4459:62:26", "statements": [ { "expression": { @@ -11037,32 +11037,32 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3578, + "id": 3732, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4493:8:25", + "referencedDeclaration": 3679, + "src": "4493:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3582, + "id": 3736, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 3580, + "id": 3734, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4510:1:25", + "src": "4510:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11078,20 +11078,20 @@ "typeString": "int_const 0" } ], - "id": 3579, + "id": 3733, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:25", + "src": "4502:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3581, + "id": 3735, "isConstant": false, "isLValue": false, "isPure": true, @@ -11099,7 +11099,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4502:10:25", + "src": "4502:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11110,7 +11110,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4493:20:25", + "src": "4493:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11126,32 +11126,32 @@ ], "expression": { "argumentTypes": null, - "id": 3576, + "id": 3730, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4476:12:25", + "referencedDeclaration": 3675, + "src": "4476:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3577, + "id": 3731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "4476:16:25", + "referencedDeclaration": 3461, + "src": "4476:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3583, + "id": 3737, "isConstant": false, "isLValue": false, "isPure": false, @@ -11159,21 +11159,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4476:38:25", + "src": "4476:38:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3575, - "id": 3584, + "functionReturnParameters": 3729, + "id": 3738, "nodeType": "Return", - "src": "4469:45:25" + "src": "4469:45:26" } ] }, "documentation": null, - "id": 3586, + "id": 3740, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11181,23 +11181,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3572, + "id": 3726, "nodeType": "ParameterList", "parameters": [], - "src": "4429:2:25" + "src": "4429:2:26" }, "payable": false, "returnParameters": { - "id": 3575, + "id": 3729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3574, + "id": 3728, "name": "", "nodeType": "VariableDeclaration", - "scope": 3586, - "src": "4453:4:25", + "scope": 3740, + "src": "4453:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11205,10 +11205,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3573, + "id": 3727, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4453:4:25", + "src": "4453:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11218,45 +11218,45 @@ "visibility": "internal" } ], - "src": "4452:6:25" + "src": "4452:6:26" }, - "scope": 3813, - "src": "4409:112:25", + "scope": 3967, + "src": "4409:112:26", "stateMutability": "view", - "superFunction": 3363, + "superFunction": 3517, "visibility": "public" }, { "body": { - "id": 3597, + "id": 3751, "nodeType": "Block", - "src": "4816:44:25", + "src": "4816:44:26", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3593, + "id": 3747, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4833:8:25", + "referencedDeclaration": 3679, + "src": "4833:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3595, + "id": 3749, "indexExpression": { "argumentTypes": null, - "id": 3594, + "id": 3748, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3588, - "src": "4842:10:25", + "referencedDeclaration": 3742, + "src": "4842:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11267,21 +11267,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4833:20:25", + "src": "4833:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3592, - "id": 3596, + "functionReturnParameters": 3746, + "id": 3750, "nodeType": "Return", - "src": "4826:27:25" + "src": "4826:27:26" } ] }, "documentation": null, - "id": 3598, + "id": 3752, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11289,16 +11289,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3589, + "id": 3743, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3588, + "id": 3742, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4761:18:25", + "scope": 3752, + "src": "4761:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11306,10 +11306,10 @@ "typeString": "address" }, "typeName": { - "id": 3587, + "id": 3741, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4761:7:25", + "src": "4761:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11319,20 +11319,20 @@ "visibility": "internal" } ], - "src": "4760:20:25" + "src": "4760:20:26" }, "payable": false, "returnParameters": { - "id": 3592, + "id": 3746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3591, + "id": 3745, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4802:12:25", + "scope": 3752, + "src": "4802:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11340,10 +11340,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3590, + "id": 3744, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4802:4:25", + "src": "4802:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11353,24 +11353,24 @@ "visibility": "internal" } ], - "src": "4801:14:25" + "src": "4801:14:26" }, - "scope": 3813, - "src": "4742:118:25", + "scope": 3967, + "src": "4742:118:26", "stateMutability": "view", - "superFunction": 3370, + "superFunction": 3524, "visibility": "public" }, { "body": { - "id": 3640, + "id": 3794, "nodeType": "Block", - "src": "5276:189:25", + "src": "5276:189:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3618, + "id": 3772, "isConstant": false, "isLValue": false, "isPure": false, @@ -11379,34 +11379,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3607, + "id": 3761, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5286:8:25", + "referencedDeclaration": 3679, + "src": "5286:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3610, + "id": 3764, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3608, + "id": 3762, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5295:3:25", + "referencedDeclaration": 4491, + "src": "5295:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3609, + "id": 3763, "isConstant": false, "isLValue": false, "isPure": false, @@ -11414,7 +11414,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5295:10:25", + "src": "5295:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11425,7 +11425,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5286:20:25", + "src": "5286:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11438,12 +11438,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3616, + "id": 3770, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5334:6:25", + "referencedDeclaration": 3756, + "src": "5334:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11461,34 +11461,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3611, + "id": 3765, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5309:8:25", + "referencedDeclaration": 3679, + "src": "5309:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3614, + "id": 3768, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3612, + "id": 3766, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5318:3:25", + "referencedDeclaration": 4491, + "src": "5318:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3613, + "id": 3767, "isConstant": false, "isLValue": false, "isPure": false, @@ -11496,7 +11496,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5318:10:25", + "src": "5318:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11507,27 +11507,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5309:20:25", + "src": "5309:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3615, + "id": 3769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "5309:24:25", + "referencedDeclaration": 3461, + "src": "5309:24:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3617, + "id": 3771, "isConstant": false, "isLValue": false, "isPure": false, @@ -11535,26 +11535,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5309:32:25", + "src": "5309:32:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5286:55:25", + "src": "5286:55:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3619, + "id": 3773, "nodeType": "ExpressionStatement", - "src": "5286:55:25" + "src": "5286:55:26" }, { "expression": { "argumentTypes": null, - "id": 3629, + "id": 3783, "isConstant": false, "isLValue": false, "isPure": false, @@ -11563,26 +11563,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3620, + "id": 3774, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5351:8:25", + "referencedDeclaration": 3679, + "src": "5351:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3622, + "id": 3776, "indexExpression": { "argumentTypes": null, - "id": 3621, + "id": 3775, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5360:2:25", + "referencedDeclaration": 3754, + "src": "5360:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11593,7 +11593,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5351:12:25", + "src": "5351:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11606,12 +11606,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3627, + "id": 3781, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5383:6:25", + "referencedDeclaration": 3756, + "src": "5383:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11629,26 +11629,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3623, + "id": 3777, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5366:8:25", + "referencedDeclaration": 3679, + "src": "5366:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3625, + "id": 3779, "indexExpression": { "argumentTypes": null, - "id": 3624, + "id": 3778, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5375:2:25", + "referencedDeclaration": 3754, + "src": "5375:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11659,27 +11659,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5366:12:25", + "src": "5366:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3626, + "id": 3780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "5366:16:25", + "referencedDeclaration": 3439, + "src": "5366:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3628, + "id": 3782, "isConstant": false, "isLValue": false, "isPure": false, @@ -11687,21 +11687,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5366:24:25", + "src": "5366:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5351:39:25", + "src": "5351:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3630, + "id": 3784, "nodeType": "ExpressionStatement", - "src": "5351:39:25" + "src": "5351:39:26" }, { "eventCall": { @@ -11711,18 +11711,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3632, + "id": 3786, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5414:3:25", + "referencedDeclaration": 4491, + "src": "5414:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3633, + "id": 3787, "isConstant": false, "isLValue": false, "isPure": false, @@ -11730,7 +11730,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:25", + "src": "5414:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11738,12 +11738,12 @@ }, { "argumentTypes": null, - "id": 3634, + "id": 3788, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5426:2:25", + "referencedDeclaration": 3754, + "src": "5426:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11751,12 +11751,12 @@ }, { "argumentTypes": null, - "id": 3635, + "id": 3789, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5430:6:25", + "referencedDeclaration": 3756, + "src": "5430:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11778,18 +11778,18 @@ "typeString": "uint256" } ], - "id": 3631, + "id": 3785, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5405:8:25", + "referencedDeclaration": 3570, + "src": "5405:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3636, + "id": 3790, "isConstant": false, "isLValue": false, "isPure": false, @@ -11797,28 +11797,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5405:32:25", + "src": "5405:32:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3637, + "id": 3791, "nodeType": "EmitStatement", - "src": "5400:37:25" + "src": "5400:37:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3638, + "id": 3792, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5454:4:25", + "src": "5454:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11826,15 +11826,15 @@ }, "value": "true" }, - "functionReturnParameters": 3606, - "id": 3639, + "functionReturnParameters": 3760, + "id": 3793, "nodeType": "Return", - "src": "5447:11:25" + "src": "5447:11:26" } ] }, "documentation": null, - "id": 3641, + "id": 3795, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -11842,16 +11842,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3603, + "id": 3757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3600, + "id": 3754, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5221:10:25", + "scope": 3795, + "src": "5221:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11859,10 +11859,10 @@ "typeString": "address" }, "typeName": { - "id": 3599, + "id": 3753, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5221:7:25", + "src": "5221:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11873,11 +11873,11 @@ }, { "constant": false, - "id": 3602, + "id": 3756, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5233:11:25", + "scope": 3795, + "src": "5233:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11885,10 +11885,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3601, + "id": 3755, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5233:4:25", + "src": "5233:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11898,20 +11898,20 @@ "visibility": "internal" } ], - "src": "5220:25:25" + "src": "5220:25:26" }, "payable": false, "returnParameters": { - "id": 3606, + "id": 3760, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3605, + "id": 3759, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5262:12:25", + "scope": 3795, + "src": "5262:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11919,10 +11919,10 @@ "typeString": "bool" }, "typeName": { - "id": 3604, + "id": 3758, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5262:4:25", + "src": "5262:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11932,24 +11932,24 @@ "visibility": "internal" } ], - "src": "5261:14:25" + "src": "5261:14:26" }, - "scope": 3813, - "src": "5203:262:25", + "scope": 3967, + "src": "5203:262:26", "stateMutability": "nonpayable", - "superFunction": 3388, + "superFunction": 3542, "visibility": "public" }, { "body": { - "id": 3668, + "id": 3822, "nodeType": "Block", - "src": "6048:127:25", + "src": "6048:127:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3657, + "id": 3811, "isConstant": false, "isLValue": false, "isPure": false, @@ -11960,34 +11960,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3650, + "id": 3804, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6058:7:25", + "referencedDeclaration": 3685, + "src": "6058:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3654, + "id": 3808, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3651, + "id": 3805, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6066:3:25", + "referencedDeclaration": 4491, + "src": "6066:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3652, + "id": 3806, "isConstant": false, "isLValue": false, "isPure": false, @@ -11995,7 +11995,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6066:10:25", + "src": "6066:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12006,21 +12006,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6058:19:25", + "src": "6058:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3655, + "id": 3809, "indexExpression": { "argumentTypes": null, - "id": 3653, + "id": 3807, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6078:7:25", + "referencedDeclaration": 3797, + "src": "6078:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12031,7 +12031,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6058:28:25", + "src": "6058:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12041,26 +12041,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3656, + "id": 3810, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6089:6:25", + "referencedDeclaration": 3799, + "src": "6089:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6058:37:25", + "src": "6058:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3658, + "id": 3812, "nodeType": "ExpressionStatement", - "src": "6058:37:25" + "src": "6058:37:26" }, { "eventCall": { @@ -12070,18 +12070,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3660, + "id": 3814, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6119:3:25", + "referencedDeclaration": 4491, + "src": "6119:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3661, + "id": 3815, "isConstant": false, "isLValue": false, "isPure": false, @@ -12089,7 +12089,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6119:10:25", + "src": "6119:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12097,12 +12097,12 @@ }, { "argumentTypes": null, - "id": 3662, + "id": 3816, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6131:7:25", + "referencedDeclaration": 3797, + "src": "6131:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12110,12 +12110,12 @@ }, { "argumentTypes": null, - "id": 3663, + "id": 3817, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6140:6:25", + "referencedDeclaration": 3799, + "src": "6140:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12137,18 +12137,18 @@ "typeString": "uint256" } ], - "id": 3659, + "id": 3813, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "6110:8:25", + "referencedDeclaration": 3578, + "src": "6110:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3664, + "id": 3818, "isConstant": false, "isLValue": false, "isPure": false, @@ -12156,28 +12156,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6110:37:25", + "src": "6110:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3665, + "id": 3819, "nodeType": "EmitStatement", - "src": "6105:42:25" + "src": "6105:42:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3666, + "id": 3820, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6164:4:25", + "src": "6164:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12185,15 +12185,15 @@ }, "value": "true" }, - "functionReturnParameters": 3649, - "id": 3667, + "functionReturnParameters": 3803, + "id": 3821, "nodeType": "Return", - "src": "6157:11:25" + "src": "6157:11:26" } ] }, "documentation": null, - "id": 3669, + "id": 3823, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12201,16 +12201,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3646, + "id": 3800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3643, + "id": 3797, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "5988:15:25", + "scope": 3823, + "src": "5988:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12218,10 +12218,10 @@ "typeString": "address" }, "typeName": { - "id": 3642, + "id": 3796, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5988:7:25", + "src": "5988:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12232,11 +12232,11 @@ }, { "constant": false, - "id": 3645, + "id": 3799, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6005:11:25", + "scope": 3823, + "src": "6005:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12244,10 +12244,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3644, + "id": 3798, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6005:4:25", + "src": "6005:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12257,20 +12257,20 @@ "visibility": "internal" } ], - "src": "5987:30:25" + "src": "5987:30:26" }, "payable": false, "returnParameters": { - "id": 3649, + "id": 3803, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3648, + "id": 3802, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6034:12:25", + "scope": 3823, + "src": "6034:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12278,10 +12278,10 @@ "typeString": "bool" }, "typeName": { - "id": 3647, + "id": 3801, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6034:4:25", + "src": "6034:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12291,24 +12291,24 @@ "visibility": "internal" } ], - "src": "6033:14:25" + "src": "6033:14:26" }, - "scope": 3813, - "src": "5971:204:25", + "scope": 3967, + "src": "5971:204:26", "stateMutability": "nonpayable", - "superFunction": 3397, + "superFunction": 3551, "visibility": "public" }, { "body": { - "id": 3727, + "id": 3881, "nodeType": "Block", - "src": "6798:246:25", + "src": "6798:246:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3689, + "id": 3843, "isConstant": false, "isLValue": false, "isPure": false, @@ -12317,26 +12317,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3680, + "id": 3834, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6808:8:25", + "referencedDeclaration": 3679, + "src": "6808:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3682, + "id": 3836, "indexExpression": { "argumentTypes": null, - "id": 3681, + "id": 3835, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6817:4:25", + "referencedDeclaration": 3825, + "src": "6817:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12347,7 +12347,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6808:14:25", + "src": "6808:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12360,12 +12360,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3687, + "id": 3841, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6844:6:25", + "referencedDeclaration": 3829, + "src": "6844:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12383,26 +12383,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3683, + "id": 3837, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6825:8:25", + "referencedDeclaration": 3679, + "src": "6825:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3685, + "id": 3839, "indexExpression": { "argumentTypes": null, - "id": 3684, + "id": 3838, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6834:4:25", + "referencedDeclaration": 3825, + "src": "6834:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12413,27 +12413,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6825:14:25", + "src": "6825:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3686, + "id": 3840, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6825:18:25", + "referencedDeclaration": 3461, + "src": "6825:18:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3688, + "id": 3842, "isConstant": false, "isLValue": false, "isPure": false, @@ -12441,26 +12441,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6825:26:25", + "src": "6825:26:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6808:43:25", + "src": "6808:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3690, + "id": 3844, "nodeType": "ExpressionStatement", - "src": "6808:43:25" + "src": "6808:43:26" }, { "expression": { "argumentTypes": null, - "id": 3706, + "id": 3860, "isConstant": false, "isLValue": false, "isPure": false, @@ -12471,26 +12471,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3691, + "id": 3845, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6861:7:25", + "referencedDeclaration": 3685, + "src": "6861:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3695, + "id": 3849, "indexExpression": { "argumentTypes": null, - "id": 3692, + "id": 3846, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6869:4:25", + "referencedDeclaration": 3825, + "src": "6869:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12501,29 +12501,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6861:13:25", + "src": "6861:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3696, + "id": 3850, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3693, + "id": 3847, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6875:3:25", + "referencedDeclaration": 4491, + "src": "6875:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3694, + "id": 3848, "isConstant": false, "isLValue": false, "isPure": false, @@ -12531,7 +12531,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6875:10:25", + "src": "6875:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12542,7 +12542,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6861:25:25", + "src": "6861:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12555,12 +12555,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3704, + "id": 3858, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6919:6:25", + "referencedDeclaration": 3829, + "src": "6919:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12580,26 +12580,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3697, + "id": 3851, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6889:7:25", + "referencedDeclaration": 3685, + "src": "6889:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3699, + "id": 3853, "indexExpression": { "argumentTypes": null, - "id": 3698, + "id": 3852, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6897:4:25", + "referencedDeclaration": 3825, + "src": "6897:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12610,29 +12610,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:13:25", + "src": "6889:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3702, + "id": 3856, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3700, + "id": 3854, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6903:3:25", + "referencedDeclaration": 4491, + "src": "6903:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3701, + "id": 3855, "isConstant": false, "isLValue": false, "isPure": false, @@ -12640,7 +12640,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6903:10:25", + "src": "6903:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12651,27 +12651,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:25:25", + "src": "6889:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3703, + "id": 3857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6889:29:25", + "referencedDeclaration": 3461, + "src": "6889:29:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3705, + "id": 3859, "isConstant": false, "isLValue": false, "isPure": false, @@ -12679,26 +12679,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6889:37:25", + "src": "6889:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6861:65:25", + "src": "6861:65:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3707, + "id": 3861, "nodeType": "ExpressionStatement", - "src": "6861:65:25" + "src": "6861:65:26" }, { "expression": { "argumentTypes": null, - "id": 3717, + "id": 3871, "isConstant": false, "isLValue": false, "isPure": false, @@ -12707,26 +12707,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3708, + "id": 3862, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6936:8:25", + "referencedDeclaration": 3679, + "src": "6936:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3710, + "id": 3864, "indexExpression": { "argumentTypes": null, - "id": 3709, + "id": 3863, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6945:2:25", + "referencedDeclaration": 3827, + "src": "6945:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12737,7 +12737,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6936:12:25", + "src": "6936:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12750,12 +12750,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3715, + "id": 3869, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6968:6:25", + "referencedDeclaration": 3829, + "src": "6968:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12773,26 +12773,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3711, + "id": 3865, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6951:8:25", + "referencedDeclaration": 3679, + "src": "6951:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3713, + "id": 3867, "indexExpression": { "argumentTypes": null, - "id": 3712, + "id": 3866, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6960:2:25", + "referencedDeclaration": 3827, + "src": "6960:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12803,27 +12803,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6951:12:25", + "src": "6951:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3714, + "id": 3868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "6951:16:25", + "referencedDeclaration": 3439, + "src": "6951:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3716, + "id": 3870, "isConstant": false, "isLValue": false, "isPure": false, @@ -12831,21 +12831,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6951:24:25", + "src": "6951:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6936:39:25", + "src": "6936:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3718, + "id": 3872, "nodeType": "ExpressionStatement", - "src": "6936:39:25" + "src": "6936:39:26" }, { "eventCall": { @@ -12853,12 +12853,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3720, + "id": 3874, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6999:4:25", + "referencedDeclaration": 3825, + "src": "6999:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12866,12 +12866,12 @@ }, { "argumentTypes": null, - "id": 3721, + "id": 3875, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "7005:2:25", + "referencedDeclaration": 3827, + "src": "7005:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12879,12 +12879,12 @@ }, { "argumentTypes": null, - "id": 3722, + "id": 3876, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "7009:6:25", + "referencedDeclaration": 3829, + "src": "7009:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12906,18 +12906,18 @@ "typeString": "uint256" } ], - "id": 3719, + "id": 3873, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "6990:8:25", + "referencedDeclaration": 3570, + "src": "6990:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3723, + "id": 3877, "isConstant": false, "isLValue": false, "isPure": false, @@ -12925,28 +12925,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6990:26:25", + "src": "6990:26:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3724, + "id": 3878, "nodeType": "EmitStatement", - "src": "6985:31:25" + "src": "6985:31:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3725, + "id": 3879, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7033:4:25", + "src": "7033:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12954,15 +12954,15 @@ }, "value": "true" }, - "functionReturnParameters": 3679, - "id": 3726, + "functionReturnParameters": 3833, + "id": 3880, "nodeType": "Return", - "src": "7026:11:25" + "src": "7026:11:26" } ] }, "documentation": null, - "id": 3728, + "id": 3882, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12970,16 +12970,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3676, + "id": 3830, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3671, + "id": 3825, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6729:12:25", + "scope": 3882, + "src": "6729:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12987,10 +12987,10 @@ "typeString": "address" }, "typeName": { - "id": 3670, + "id": 3824, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6729:7:25", + "src": "6729:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13001,11 +13001,11 @@ }, { "constant": false, - "id": 3673, + "id": 3827, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6743:10:25", + "scope": 3882, + "src": "6743:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13013,10 +13013,10 @@ "typeString": "address" }, "typeName": { - "id": 3672, + "id": 3826, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6743:7:25", + "src": "6743:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13027,11 +13027,11 @@ }, { "constant": false, - "id": 3675, + "id": 3829, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6755:11:25", + "scope": 3882, + "src": "6755:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13039,10 +13039,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3674, + "id": 3828, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6755:4:25", + "src": "6755:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13052,20 +13052,20 @@ "visibility": "internal" } ], - "src": "6728:39:25" + "src": "6728:39:26" }, "payable": false, "returnParameters": { - "id": 3679, + "id": 3833, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3678, + "id": 3832, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6784:12:25", + "scope": 3882, + "src": "6784:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13073,10 +13073,10 @@ "typeString": "bool" }, "typeName": { - "id": 3677, + "id": 3831, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6784:4:25", + "src": "6784:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13086,19 +13086,19 @@ "visibility": "internal" } ], - "src": "6783:14:25" + "src": "6783:14:26" }, - "scope": 3813, - "src": "6707:337:25", + "scope": 3967, + "src": "6707:337:26", "stateMutability": "nonpayable", - "superFunction": 3408, + "superFunction": 3562, "visibility": "public" }, { "body": { - "id": 3743, + "id": 3897, "nodeType": "Block", - "src": "7418:52:25", + "src": "7418:52:26", "statements": [ { "expression": { @@ -13107,26 +13107,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3737, + "id": 3891, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7435:7:25", + "referencedDeclaration": 3685, + "src": "7435:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3739, + "id": 3893, "indexExpression": { "argumentTypes": null, - "id": 3738, + "id": 3892, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3730, - "src": "7443:10:25", + "referencedDeclaration": 3884, + "src": "7443:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13137,21 +13137,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:19:25", + "src": "7435:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3741, + "id": 3895, "indexExpression": { "argumentTypes": null, - "id": 3740, + "id": 3894, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "7455:7:25", + "referencedDeclaration": 3886, + "src": "7455:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13162,21 +13162,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:28:25", + "src": "7435:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3736, - "id": 3742, + "functionReturnParameters": 3890, + "id": 3896, "nodeType": "Return", - "src": "7428:35:25" + "src": "7428:35:26" } ] }, "documentation": null, - "id": 3744, + "id": 3898, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13184,16 +13184,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3733, + "id": 3887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3730, + "id": 3884, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7344:18:25", + "scope": 3898, + "src": "7344:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13201,10 +13201,10 @@ "typeString": "address" }, "typeName": { - "id": 3729, + "id": 3883, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7344:7:25", + "src": "7344:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13215,11 +13215,11 @@ }, { "constant": false, - "id": 3732, + "id": 3886, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7364:15:25", + "scope": 3898, + "src": "7364:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13227,10 +13227,10 @@ "typeString": "address" }, "typeName": { - "id": 3731, + "id": 3885, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7364:7:25", + "src": "7364:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13240,20 +13240,20 @@ "visibility": "internal" } ], - "src": "7343:37:25" + "src": "7343:37:26" }, "payable": false, "returnParameters": { - "id": 3736, + "id": 3890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3735, + "id": 3889, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7402:14:25", + "scope": 3898, + "src": "7402:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13261,10 +13261,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3734, + "id": 3888, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7402:4:25", + "src": "7402:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13274,24 +13274,24 @@ "visibility": "internal" } ], - "src": "7401:16:25" + "src": "7401:16:26" }, - "scope": 3813, - "src": "7325:145:25", + "scope": 3967, + "src": "7325:145:26", "stateMutability": "view", - "superFunction": 3379, + "superFunction": 3533, "visibility": "public" }, { "body": { - "id": 3784, + "id": 3938, "nodeType": "Block", - "src": "7926:216:25", + "src": "7926:216:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3762, + "id": 3916, "isConstant": false, "isLValue": false, "isPure": false, @@ -13302,34 +13302,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3755, + "id": 3909, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7936:7:25", + "referencedDeclaration": 3685, + "src": "7936:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3759, + "id": 3913, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3756, + "id": 3910, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7944:3:25", + "referencedDeclaration": 4491, + "src": "7944:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3757, + "id": 3911, "isConstant": false, "isLValue": false, "isPure": false, @@ -13337,7 +13337,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7944:10:25", + "src": "7944:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13348,21 +13348,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7936:19:25", + "src": "7936:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3760, + "id": 3914, "indexExpression": { "argumentTypes": null, - "id": 3758, + "id": 3912, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "7956:7:25", + "referencedDeclaration": 3900, + "src": "7956:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13373,7 +13373,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7936:28:25", + "src": "7936:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13383,26 +13383,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3761, + "id": 3915, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "7967:6:25", + "referencedDeclaration": 3902, + "src": "7967:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7936:37:25", + "src": "7936:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3763, + "id": 3917, "nodeType": "ExpressionStatement", - "src": "7936:37:25" + "src": "7936:37:26" }, { "eventCall": { @@ -13412,18 +13412,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3765, + "id": 3919, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7997:3:25", + "referencedDeclaration": 4491, + "src": "7997:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3766, + "id": 3920, "isConstant": false, "isLValue": false, "isPure": false, @@ -13431,7 +13431,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7997:10:25", + "src": "7997:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13439,12 +13439,12 @@ }, { "argumentTypes": null, - "id": 3767, + "id": 3921, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8009:7:25", + "referencedDeclaration": 3900, + "src": "8009:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13452,12 +13452,12 @@ }, { "argumentTypes": null, - "id": 3768, + "id": 3922, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8018:6:25", + "referencedDeclaration": 3902, + "src": "8018:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13479,18 +13479,18 @@ "typeString": "uint256" } ], - "id": 3764, + "id": 3918, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "7988:8:25", + "referencedDeclaration": 3578, + "src": "7988:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3769, + "id": 3923, "isConstant": false, "isLValue": false, "isPure": false, @@ -13498,15 +13498,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7988:37:25", + "src": "7988:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3770, + "id": 3924, "nodeType": "EmitStatement", - "src": "7983:42:25" + "src": "7983:42:26" }, { "expression": { @@ -13516,18 +13516,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3775, + "id": 3929, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "8083:3:25", + "referencedDeclaration": 4491, + "src": "8083:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3776, + "id": 3930, "isConstant": false, "isLValue": false, "isPure": false, @@ -13535,7 +13535,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8083:10:25", + "src": "8083:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13543,12 +13543,12 @@ }, { "argumentTypes": null, - "id": 3777, + "id": 3931, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8095:6:25", + "referencedDeclaration": 3902, + "src": "8095:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13556,25 +13556,25 @@ }, { "argumentTypes": null, - "id": 3778, + "id": 3932, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3907, - "src": "8103:4:25", + "referencedDeclaration": 4574, + "src": "8103:4:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" } }, { "argumentTypes": null, - "id": 3779, + "id": 3933, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3750, - "src": "8109:4:25", + "referencedDeclaration": 3904, + "src": "8109:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -13592,7 +13592,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" }, { @@ -13605,12 +13605,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3772, + "id": 3926, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8058:7:25", + "referencedDeclaration": 3900, + "src": "8058:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13624,18 +13624,18 @@ "typeString": "address" } ], - "id": 3771, + "id": 3925, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3437, - "src": "8035:22:25", + "referencedDeclaration": 3591, + "src": "8035:22:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, - "id": 3773, + "id": 3927, "isConstant": false, "isLValue": false, "isPure": false, @@ -13643,27 +13643,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:31:25", + "src": "8035:31:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", "typeString": "contract ApproveAndCallFallBack" } }, - "id": 3774, + "id": 3928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", - "referencedDeclaration": 3436, - "src": "8035:47:25", + "referencedDeclaration": 3590, + "src": "8035:47:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,address,bytes memory) external" } }, - "id": 3780, + "id": 3934, "isConstant": false, "isLValue": false, "isPure": false, @@ -13671,28 +13671,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:79:25", + "src": "8035:79:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3781, + "id": 3935, "nodeType": "ExpressionStatement", - "src": "8035:79:25" + "src": "8035:79:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3782, + "id": 3936, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8131:4:25", + "src": "8131:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13700,15 +13700,15 @@ }, "value": "true" }, - "functionReturnParameters": 3754, - "id": 3783, + "functionReturnParameters": 3908, + "id": 3937, "nodeType": "Return", - "src": "8124:11:25" + "src": "8124:11:26" } ] }, "documentation": null, - "id": 3785, + "id": 3939, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -13716,16 +13716,16 @@ "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 3751, + "id": 3905, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3746, + "id": 3900, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7854:15:25", + "scope": 3939, + "src": "7854:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13733,10 +13733,10 @@ "typeString": "address" }, "typeName": { - "id": 3745, + "id": 3899, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7854:7:25", + "src": "7854:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13747,11 +13747,11 @@ }, { "constant": false, - "id": 3748, + "id": 3902, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7871:11:25", + "scope": 3939, + "src": "7871:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13759,10 +13759,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3747, + "id": 3901, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7871:4:25", + "src": "7871:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13773,11 +13773,11 @@ }, { "constant": false, - "id": 3750, + "id": 3904, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7884:10:25", + "scope": 3939, + "src": "7884:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13785,10 +13785,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3749, + "id": 3903, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7884:5:25", + "src": "7884:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -13798,20 +13798,20 @@ "visibility": "internal" } ], - "src": "7853:42:25" + "src": "7853:42:26" }, "payable": false, "returnParameters": { - "id": 3754, + "id": 3908, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3753, + "id": 3907, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7912:12:25", + "scope": 3939, + "src": "7912:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13819,10 +13819,10 @@ "typeString": "bool" }, "typeName": { - "id": 3752, + "id": 3906, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7912:4:25", + "src": "7912:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13832,19 +13832,19 @@ "visibility": "internal" } ], - "src": "7911:14:25" + "src": "7911:14:26" }, - "scope": 3813, - "src": "7830:312:25", + "scope": 3967, + "src": "7830:312:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3791, + "id": 3945, "nodeType": "Block", - "src": "8360:25:25", + "src": "8360:25:26", "statements": [ { "expression": { @@ -13852,21 +13852,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3788, + "id": 3942, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 3833, - 3834 + 4496, + 4497 ], - "referencedDeclaration": 3833, - "src": "8370:6:25", + "referencedDeclaration": 4496, + "src": "8370:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 3789, + "id": 3943, "isConstant": false, "isLValue": false, "isPure": false, @@ -13874,20 +13874,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8370:8:25", + "src": "8370:8:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3790, + "id": 3944, "nodeType": "ExpressionStatement", - "src": "8370:8:25" + "src": "8370:8:26" } ] }, "documentation": null, - "id": 3792, + "id": 3946, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -13895,29 +13895,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3786, + "id": 3940, "nodeType": "ParameterList", "parameters": [], - "src": "8342:2:25" + "src": "8342:2:26" }, "payable": true, "returnParameters": { - "id": 3787, + "id": 3941, "nodeType": "ParameterList", "parameters": [], - "src": "8360:0:25" + "src": "8360:0:26" }, - "scope": 3813, - "src": "8333:52:25", + "scope": 3967, + "src": "8333:52:26", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3811, + "id": 3965, "nodeType": "Block", - "src": "8723:76:25", + "src": "8723:76:26", "statements": [ { "expression": { @@ -13925,12 +13925,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3807, + "id": 3961, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "8778:5:25", + "referencedDeclaration": 3593, + "src": "8778:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13938,12 +13938,12 @@ }, { "argumentTypes": null, - "id": 3808, + "id": 3962, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3796, - "src": "8785:6:25", + "referencedDeclaration": 3950, + "src": "8785:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13966,12 +13966,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3804, + "id": 3958, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3794, - "src": "8755:12:25", + "referencedDeclaration": 3948, + "src": "8755:12:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13985,18 +13985,18 @@ "typeString": "address" } ], - "id": 3803, + "id": 3957, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3425, - "src": "8740:14:25", + "referencedDeclaration": 3579, + "src": "8740:14:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", "typeString": "type(contract ERC20Interface)" } }, - "id": 3805, + "id": 3959, "isConstant": false, "isLValue": false, "isPure": false, @@ -14004,27 +14004,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:28:25", + "src": "8740:28:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3806, + "id": 3960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 3388, - "src": "8740:37:25", + "referencedDeclaration": 3542, + "src": "8740:37:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 3809, + "id": 3963, "isConstant": false, "isLValue": false, "isPure": false, @@ -14032,58 +14032,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:52:25", + "src": "8740:52:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3802, - "id": 3810, + "functionReturnParameters": 3956, + "id": 3964, "nodeType": "Return", - "src": "8733:59:25" + "src": "8733:59:26" } ] }, "documentation": null, - "id": 3812, + "id": 3966, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3799, + "id": 3953, "modifierName": { "argumentTypes": null, - "id": 3798, + "id": 3952, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "8690:9:25", + "referencedDeclaration": 3621, + "src": "8690:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8690:9:25" + "src": "8690:9:26" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 3797, + "id": 3951, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3794, + "id": 3948, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8648:20:25", + "scope": 3966, + "src": "8648:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14091,10 +14091,10 @@ "typeString": "address" }, "typeName": { - "id": 3793, + "id": 3947, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8648:7:25", + "src": "8648:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14105,11 +14105,11 @@ }, { "constant": false, - "id": 3796, + "id": 3950, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8670:11:25", + "scope": 3966, + "src": "8670:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14117,10 +14117,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3795, + "id": 3949, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8670:4:25", + "src": "8670:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14130,20 +14130,20 @@ "visibility": "internal" } ], - "src": "8647:35:25" + "src": "8647:35:26" }, "payable": false, "returnParameters": { - "id": 3802, + "id": 3956, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3801, + "id": 3955, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8709:12:25", + "scope": 3966, + "src": "8709:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14151,10 +14151,10 @@ "typeString": "bool" }, "typeName": { - "id": 3800, + "id": 3954, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8709:4:25", + "src": "8709:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14164,20 +14164,20 @@ "visibility": "internal" } ], - "src": "8708:14:25" + "src": "8708:14:26" }, - "scope": 3813, - "src": "8617:182:25", + "scope": 3967, + "src": "8617:182:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "3506:5295:25" + "scope": 3968, + "src": "3506:5295:26" } ], - "src": "0:8801:25" + "src": "0:8801:26" }, "compiler": { "name": "solc", @@ -14185,5 +14185,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:44:41.107Z" + "updatedAt": "2018-09-26T08:32:07.665Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/TestToken.json b/safe-contracts/build/contracts/test/TestToken.json index 11d47144..dd5c9dbf 100644 --- a/safe-contracts/build/contracts/test/TestToken.json +++ b/safe-contracts/build/contracts/test/TestToken.json @@ -348,34 +348,34 @@ ], "bytecode": "0x60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280600381526020017f544b4e0000000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000221565b506040805190810160405280600d81526020017f546f6b656e204578616d706c650000000000000000000000000000000000000081525060039080519060200190620000ed92919062000221565b506012600460006101000a81548160ff021916908360ff160217905550600460009054906101000a900460ff1660ff16600a0a620f424002600581905550600554600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040518082815260200191505060405180910390a3620002d0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026457805160ff191683800117855562000295565b8280016001018555821562000295579182015b828111156200029457825182559160200191906001019062000277565b5b509050620002a49190620002a8565b5090565b620002cd91905b80821115620002c9576000816000905550600101620002af565b5090565b90565b6114e380620002e06000396000f3006080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100e0578063095ea7b31461017057806318160ddd146101d557806323b872dd14610200578063313ce5671461028557806370a08231146102b657806379ba50971461030d5780638da5cb5b1461032457806395d89b411461037b578063a9059cbb1461040b578063cae9ca5114610470578063d4ee1d901461051b578063dc39d06d14610572578063dd62ed3e146105d7578063f2fde38b1461064e575b600080fd5b3480156100ec57600080fd5b506100f5610691565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013557808201518184015260208101905061011a565b50505050905090810190601f1680156101625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017c57600080fd5b506101bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072f565b604051808215151515815260200191505060405180910390f35b3480156101e157600080fd5b506101ea610821565b6040518082815260200191505060405180910390f35b34801561020c57600080fd5b5061026b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087c565b604051808215151515815260200191505060405180910390f35b34801561029157600080fd5b5061029a610b27565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102c257600080fd5b506102f7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b3a565b6040518082815260200191505060405180910390f35b34801561031957600080fd5b50610322610b83565b005b34801561033057600080fd5b50610339610d22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038757600080fd5b50610390610d47565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103d05780820151818401526020810190506103b5565b50505050905090810190601f1680156103fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041757600080fd5b50610456600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610de5565b604051808215151515815260200191505060405180910390f35b34801561047c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610f80565b604051808215151515815260200191505060405180910390f35b34801561052757600080fd5b506105306111cf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057e57600080fd5b506105bd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111f5565b604051808215151515815260200191505060405180910390f35b3480156105e357600080fd5b50610638600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611359565b6040518082815260200191505060405180910390f35b34801561065a57600080fd5b5061068f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113e0565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107275780601f106106fc57610100808354040283529160200191610727565b820191906000526020600020905b81548152906001019060200180831161070a57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610877600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055461147f90919063ffffffff16565b905090565b60006108d082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109a282600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a7482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bdf57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ddd5780601f10610db257610100808354040283529160200191610ddd565b820191906000526020600020905b815481529060010190602001808311610dc057829003601f168201915b505050505081565b6000610e3982600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ece82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561115d578082015181840152602081019050611142565b50505050905090810190601f16801561118a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156111ac57600080fd5b505af11580156111c0573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561125257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561131657600080fd5b505af115801561132a573d6000803e3d6000fd5b505050506040513d602081101561134057600080fd5b8101908080519060200190929190505050905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143b57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561149057600080fd5b818303905092915050565b600081830190508281101515156114b157600080fd5b929150505600a165627a7a72305820e93a82d67ce3df799c1bfea59d7f6b269216cff0ed6e6c3d0c4b551065d3f5aa0029", "deployedBytecode": "0x6080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100e0578063095ea7b31461017057806318160ddd146101d557806323b872dd14610200578063313ce5671461028557806370a08231146102b657806379ba50971461030d5780638da5cb5b1461032457806395d89b411461037b578063a9059cbb1461040b578063cae9ca5114610470578063d4ee1d901461051b578063dc39d06d14610572578063dd62ed3e146105d7578063f2fde38b1461064e575b600080fd5b3480156100ec57600080fd5b506100f5610691565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013557808201518184015260208101905061011a565b50505050905090810190601f1680156101625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017c57600080fd5b506101bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072f565b604051808215151515815260200191505060405180910390f35b3480156101e157600080fd5b506101ea610821565b6040518082815260200191505060405180910390f35b34801561020c57600080fd5b5061026b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087c565b604051808215151515815260200191505060405180910390f35b34801561029157600080fd5b5061029a610b27565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102c257600080fd5b506102f7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b3a565b6040518082815260200191505060405180910390f35b34801561031957600080fd5b50610322610b83565b005b34801561033057600080fd5b50610339610d22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038757600080fd5b50610390610d47565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103d05780820151818401526020810190506103b5565b50505050905090810190601f1680156103fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041757600080fd5b50610456600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610de5565b604051808215151515815260200191505060405180910390f35b34801561047c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610f80565b604051808215151515815260200191505060405180910390f35b34801561052757600080fd5b506105306111cf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057e57600080fd5b506105bd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111f5565b604051808215151515815260200191505060405180910390f35b3480156105e357600080fd5b50610638600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611359565b6040518082815260200191505060405180910390f35b34801561065a57600080fd5b5061068f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113e0565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107275780601f106106fc57610100808354040283529160200191610727565b820191906000526020600020905b81548152906001019060200180831161070a57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610877600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055461147f90919063ffffffff16565b905090565b60006108d082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109a282600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a7482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bdf57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ddd5780601f10610db257610100808354040283529160200191610ddd565b820191906000526020600020905b815481529060010190602001808311610dc057829003601f168201915b505050505081565b6000610e3982600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ece82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561115d578082015181840152602081019050611142565b50505050905090810190601f16801561118a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156111ac57600080fd5b505af11580156111c0573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561125257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561131657600080fd5b505af115801561132a573d6000803e3d6000fd5b505050506040513d602081101561134057600080fd5b8101908080519060200190929190505050905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143b57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561149057600080fd5b818303905092915050565b600081830190508281101515156114b157600080fd5b929150505600a165627a7a72305820e93a82d67ce3df799c1bfea59d7f6b269216cff0ed6e6c3d0c4b551065d3f5aa0029", - "sourceMap": "3506:5295:25:-;;;3966:256;8:9:-1;5:2;;;30:1;27;20:12;5:2;3966:256:25;2856:10;2848:5;;:18;;;;;;;;;;;;;;;;;;3997:14;;;;;;;;;;;;;;;;;;:6;:14;;;;;;;;;;;;:::i;:::-;;4021:22;;;;;;;;;;;;;;;;;;:4;:22;;;;;;;;;;;;:::i;:::-;;4064:2;4053:8;;:13;;;;;;;;;;;;;;;;;;4110:8;;;;;;;;;;;4105:14;;4101:2;:18;4091:7;:28;4076:12;:43;;;;4147:12;;4129:8;:15;4138:5;;;;;;;;;;;4129:15;;;;;;;;;;;;;;;:30;;;;4195:5;;;;;;;;;;;4174:41;;4191:1;4174:41;;;4202:12;;4174:41;;;;;;;;;;;;;;;;;;3506:5295;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "3506:5295:25:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8370:8;;;3612:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3612:19:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3612:19:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5971:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5971:204:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4409:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4409:112:25;;;;;;;;;;;;;;;;;;;;;;;6707:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6707:337:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3637:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3637:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;4742:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4742:118:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3065:191:25;;;;;;2684:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2684:20:25;;;;;;;;;;;;;;;;;;;;;;;;;;;3586;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3586:20:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3586:20:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5203:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5203:262:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7830:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7830:312:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:25;;;;;;;;;;;;;;;;;;;;;;;;;;;8617:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8617:182:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7325:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7325:145:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5971:204::-;6034:12;6089:6;6058:7;:19;6066:10;6058:19;;;;;;;;;;;;;;;:28;6078:7;6058:28;;;;;;;;;;;;;;;:37;;;;6131:7;6110:37;;6119:10;6110:37;;;6140:6;6110:37;;;;;;;;;;;;;;;;;;6164:4;6157:11;;5971:204;;;;:::o;4409:112::-;4453:4;4476:38;4493:8;:20;4510:1;4493:20;;;;;;;;;;;;;;;;4476:12;;:16;;:38;;;;:::i;:::-;4469:45;;4409:112;:::o;6707:337::-;6784:12;6825:26;6844:6;6825:8;:14;6834:4;6825:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;6808:8;:14;6817:4;6808:14;;;;;;;;;;;;;;;:43;;;;6889:37;6919:6;6889:7;:13;6897:4;6889:13;;;;;;;;;;;;;;;:25;6903:10;6889:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;6861:7;:13;6869:4;6861:13;;;;;;;;;;;;;;;:25;6875:10;6861:25;;;;;;;;;;;;;;;:65;;;;6951:24;6968:6;6951:8;:12;6960:2;6951:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;6936:8;:12;6945:2;6936:12;;;;;;;;;;;;;;;:39;;;;7005:2;6990:26;;6999:4;6990:26;;;7009:6;6990:26;;;;;;;;;;;;;;;;;;7033:4;7026:11;;6707:337;;;;;:::o;3637:21::-;;;;;;;;;;;;;:::o;4742:118::-;4802:12;4833:8;:20;4842:10;4833:20;;;;;;;;;;;;;;;;4826:27;;4742:118;;;:::o;3065:191::-;3131:8;;;;;;;;;;;3117:22;;:10;:22;;;3109:31;;;;;;;;3183:8;;;;;;;;;;;3155:37;;3176:5;;;;;;;;;;;3155:37;;;;;;;;;;;;3210:8;;;;;;;;;;;3202:5;;:16;;;;;;;;;;;;;;;;;;3247:1;3228:8;;:21;;;;;;;;;;;;;;;;;;3065:191::o;2684:20::-;;;;;;;;;;;;;:::o;3586:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5203:262::-;5262:12;5309:32;5334:6;5309:8;:20;5318:10;5309:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5286:8;:20;5295:10;5286:20;;;;;;;;;;;;;;;:55;;;;5366:24;5383:6;5366:8;:12;5375:2;5366:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;5351:8;:12;5360:2;5351:12;;;;;;;;;;;;;;;:39;;;;5426:2;5405:32;;5414:10;5405:32;;;5430:6;5405:32;;;;;;;;;;;;;;;;;;5454:4;5447:11;;5203:262;;;;:::o;7830:312::-;7912:12;7967:6;7936:7;:19;7944:10;7936:19;;;;;;;;;;;;;;;:28;7956:7;7936:28;;;;;;;;;;;;;;;:37;;;;8009:7;7988:37;;7997:10;7988:37;;;8018:6;7988:37;;;;;;;;;;;;;;;;;;8058:7;8035:47;;;8083:10;8095:6;8103:4;8109;8035:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8035:79:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8035:79:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8035:79:25;;;;8131:4;8124:11;;7830:312;;;;;:::o;2710:23::-;;;;;;;;;;;;;:::o;8617:182::-;8709:12;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;8755:12;8740:37;;;8778:5;;;;;;;;;;;8785:6;8740:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8740:52:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8740:52:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8740:52:25;;;;;;;;;;;;;;;;8733:59;;8617:182;;;;:::o;7325:145::-;7402:14;7435:7;:19;7443:10;7435:19;;;;;;;;;;;;;;;:28;7455:7;7435:28;;;;;;;;;;;;;;;;7428:35;;7325:145;;;;:::o;2960:100::-;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;3044:9;3033:8;;:20;;;;;;;;;;;;;;;;;;2960:100;:::o;775:111::-;827:6;858:1;853;:6;;845:15;;;;;;;;878:1;874;:5;870:9;;775:111;;;;:::o;659:::-;711:6;737:1;733;:5;729:9;;761:1;756;:6;;748:15;;;;;;;;659:111;;;;:::o", + "sourceMap": "3506:5295:26:-;;;3966:256;8:9:-1;5:2;;;30:1;27;20:12;5:2;3966:256:26;2856:10;2848:5;;:18;;;;;;;;;;;;;;;;;;3997:14;;;;;;;;;;;;;;;;;;:6;:14;;;;;;;;;;;;:::i;:::-;;4021:22;;;;;;;;;;;;;;;;;;:4;:22;;;;;;;;;;;;:::i;:::-;;4064:2;4053:8;;:13;;;;;;;;;;;;;;;;;;4110:8;;;;;;;;;;;4105:14;;4101:2;:18;4091:7;:28;4076:12;:43;;;;4147:12;;4129:8;:15;4138:5;;;;;;;;;;;4129:15;;;;;;;;;;;;;;;:30;;;;4195:5;;;;;;;;;;;4174:41;;4191:1;4174:41;;;4202:12;;4174:41;;;;;;;;;;;;;;;;;;3506:5295;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "3506:5295:26:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8370:8;;;3612:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3612:19:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3612:19:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5971:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5971:204:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4409:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4409:112:26;;;;;;;;;;;;;;;;;;;;;;;6707:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6707:337:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3637:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3637:21:26;;;;;;;;;;;;;;;;;;;;;;;;;;;4742:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4742:118:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3065:191:26;;;;;;2684:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2684:20:26;;;;;;;;;;;;;;;;;;;;;;;;;;;3586;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3586:20:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3586:20:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5203:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5203:262:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7830:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7830:312:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:26;;;;;;;;;;;;;;;;;;;;;;;;;;;8617:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8617:182:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7325:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7325:145:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5971:204::-;6034:12;6089:6;6058:7;:19;6066:10;6058:19;;;;;;;;;;;;;;;:28;6078:7;6058:28;;;;;;;;;;;;;;;:37;;;;6131:7;6110:37;;6119:10;6110:37;;;6140:6;6110:37;;;;;;;;;;;;;;;;;;6164:4;6157:11;;5971:204;;;;:::o;4409:112::-;4453:4;4476:38;4493:8;:20;4510:1;4493:20;;;;;;;;;;;;;;;;4476:12;;:16;;:38;;;;:::i;:::-;4469:45;;4409:112;:::o;6707:337::-;6784:12;6825:26;6844:6;6825:8;:14;6834:4;6825:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;6808:8;:14;6817:4;6808:14;;;;;;;;;;;;;;;:43;;;;6889:37;6919:6;6889:7;:13;6897:4;6889:13;;;;;;;;;;;;;;;:25;6903:10;6889:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;6861:7;:13;6869:4;6861:13;;;;;;;;;;;;;;;:25;6875:10;6861:25;;;;;;;;;;;;;;;:65;;;;6951:24;6968:6;6951:8;:12;6960:2;6951:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;6936:8;:12;6945:2;6936:12;;;;;;;;;;;;;;;:39;;;;7005:2;6990:26;;6999:4;6990:26;;;7009:6;6990:26;;;;;;;;;;;;;;;;;;7033:4;7026:11;;6707:337;;;;;:::o;3637:21::-;;;;;;;;;;;;;:::o;4742:118::-;4802:12;4833:8;:20;4842:10;4833:20;;;;;;;;;;;;;;;;4826:27;;4742:118;;;:::o;3065:191::-;3131:8;;;;;;;;;;;3117:22;;:10;:22;;;3109:31;;;;;;;;3183:8;;;;;;;;;;;3155:37;;3176:5;;;;;;;;;;;3155:37;;;;;;;;;;;;3210:8;;;;;;;;;;;3202:5;;:16;;;;;;;;;;;;;;;;;;3247:1;3228:8;;:21;;;;;;;;;;;;;;;;;;3065:191::o;2684:20::-;;;;;;;;;;;;;:::o;3586:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5203:262::-;5262:12;5309:32;5334:6;5309:8;:20;5318:10;5309:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5286:8;:20;5295:10;5286:20;;;;;;;;;;;;;;;:55;;;;5366:24;5383:6;5366:8;:12;5375:2;5366:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;5351:8;:12;5360:2;5351:12;;;;;;;;;;;;;;;:39;;;;5426:2;5405:32;;5414:10;5405:32;;;5430:6;5405:32;;;;;;;;;;;;;;;;;;5454:4;5447:11;;5203:262;;;;:::o;7830:312::-;7912:12;7967:6;7936:7;:19;7944:10;7936:19;;;;;;;;;;;;;;;:28;7956:7;7936:28;;;;;;;;;;;;;;;:37;;;;8009:7;7988:37;;7997:10;7988:37;;;8018:6;7988:37;;;;;;;;;;;;;;;;;;8058:7;8035:47;;;8083:10;8095:6;8103:4;8109;8035:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8035:79:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8035:79:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8035:79:26;;;;8131:4;8124:11;;7830:312;;;;;:::o;2710:23::-;;;;;;;;;;;;;:::o;8617:182::-;8709:12;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;8755:12;8740:37;;;8778:5;;;;;;;;;;;8785:6;8740:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8740:52:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8740:52:26;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8740:52:26;;;;;;;;;;;;;;;;8733:59;;8617:182;;;;:::o;7325:145::-;7402:14;7435:7;:19;7443:10;7435:19;;;;;;;;;;;;;;;:28;7455:7;7435:28;;;;;;;;;;;;;;;;7428:35;;7325:145;;;;:::o;2960:100::-;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;3044:9;3033:8;;:20;;;;;;;;;;;;;;;;;;2960:100;:::o;775:111::-;827:6;858:1;853;:6;;845:15;;;;;;;;878:1;874;:5;870:9;;775:111;;;;:::o;659:::-;711:6;737:1;733;:5;729:9;;761:1;756;:6;;748:15;;;;;;;;659:111;;;;:::o", "source": "pragma solidity ^0.4.24;\n\n// ----------------------------------------------------------------------------\n// 'FIXED' 'Example Fixed Supply Token' token contract\n//\n// Symbol : FIXED\n// Name : Example Fixed Supply Token\n// Total supply: 1,000,000.000000000000000000\n// Decimals : 18\n//\n// Enjoy.\n//\n// (c) BokkyPooBah / Bok Consulting Pty Ltd 2018. The MIT Licence.\n// ----------------------------------------------------------------------------\n\n\n// ----------------------------------------------------------------------------\n// Safe maths\n// ----------------------------------------------------------------------------\nlibrary SafeMath {\n function add(uint a, uint b) internal pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n function sub(uint a, uint b) internal pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n function mul(uint a, uint b) internal pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n function div(uint a, uint b) internal pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC Token Standard #20 Interface\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n// ----------------------------------------------------------------------------\ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n\n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n\n// ----------------------------------------------------------------------------\n// Contract function to receive approval and execute function in one call\n//\n// Borrowed from MiniMeToken\n// ----------------------------------------------------------------------------\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n\n// ----------------------------------------------------------------------------\n// Owned contract\n// ----------------------------------------------------------------------------\ncontract Owned {\n address public owner;\n address public newOwner;\n\n event OwnershipTransferred(address indexed _from, address indexed _to);\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner {\n require(msg.sender == owner);\n _;\n }\n\n function transferOwnership(address _newOwner) public onlyOwner {\n newOwner = _newOwner;\n }\n function acceptOwnership() public {\n require(msg.sender == newOwner);\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n newOwner = address(0);\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and a\n// fixed supply\n// ----------------------------------------------------------------------------\ncontract TestToken is ERC20Interface, Owned {\n using SafeMath for uint;\n\n string public symbol;\n string public name;\n uint8 public decimals;\n uint _totalSupply;\n\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n\n\n // ------------------------------------------------------------------------\n // Constructor\n // ------------------------------------------------------------------------\n constructor() public {\n symbol = \"TKN\";\n name = \"Token Example\";\n decimals = 18;\n _totalSupply = 1000000 * 10**uint(decimals);\n balances[owner] = _totalSupply;\n emit Transfer(address(0), owner, _totalSupply);\n }\n\n\n // ------------------------------------------------------------------------\n // Total supply\n // ------------------------------------------------------------------------\n function totalSupply() public view returns (uint) {\n return _totalSupply.sub(balances[address(0)]);\n }\n\n\n // ------------------------------------------------------------------------\n // Get the token balance for account `tokenOwner`\n // ------------------------------------------------------------------------\n function balanceOf(address tokenOwner) public view returns (uint balance) {\n return balances[tokenOwner];\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer the balance from token owner's account to `to` account\n // - Owner's account must have sufficient balance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = balances[msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account\n //\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n // recommends that there are no checks for the approval double-spend attack\n // as this should be implemented in user interfaces \n // ------------------------------------------------------------------------\n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer `tokens` from the `from` account to the `to` account\n // \n // The calling account must already have sufficient tokens approve(...)-d\n // for spending from the `from` account and\n // - From account must have sufficient balance to transfer\n // - Spender must have sufficient allowance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = balances[from].sub(tokens);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Returns the amount of tokens approved by the owner that can be\n // transferred to the spender's account\n // ------------------------------------------------------------------------\n function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account. The `spender` contract function\n // `receiveApproval(...)` is then executed\n // ------------------------------------------------------------------------\n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Don't accept ETH\n // ------------------------------------------------------------------------\n function () public payable {\n revert();\n }\n\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return ERC20Interface(tokenAddress).transfer(owner, tokens);\n }\n}", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ - 3437 + 3591 ], "ERC20Interface": [ - 3425 + 3579 ], "Owned": [ - 3506 + 3660 ], "SafeMath": [ - 3358 + 3512 ], "TestToken": [ - 3813 + 3967 ] }, - "id": 3814, + "id": 3968, "nodeType": "SourceUnit", "nodes": [ { - "id": 3263, + "id": 3417, "literals": [ "solidity", "^", @@ -383,7 +383,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:24:26" }, { "baseContracts": [], @@ -391,35 +391,35 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 3358, + "id": 3512, "linearizedBaseContracts": [ - 3358 + 3512 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3284, + "id": 3438, "nodeType": "Block", - "src": "719:51:25", + "src": "719:51:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3276, + "id": 3430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3272, + "id": 3426, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "729:1:25", + "referencedDeclaration": 3424, + "src": "729:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -433,19 +433,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3275, + "id": 3429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3273, + "id": 3427, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "733:1:25", + "referencedDeclaration": 3419, + "src": "733:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -455,32 +455,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 3274, + "id": 3428, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3267, - "src": "737:1:25", + "referencedDeclaration": 3421, + "src": "737:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:5:25", + "src": "733:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "729:9:25", + "src": "729:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3277, + "id": 3431, "nodeType": "ExpressionStatement", - "src": "729:9:25" + "src": "729:9:26" }, { "expression": { @@ -492,19 +492,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3281, + "id": 3435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3279, + "id": 3433, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "756:1:25", + "referencedDeclaration": 3424, + "src": "756:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -514,18 +514,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 3280, + "id": 3434, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "761:1:25", + "referencedDeclaration": 3419, + "src": "761:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "756:6:25", + "src": "756:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -539,21 +539,21 @@ "typeString": "bool" } ], - "id": 3278, + "id": 3432, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "748:7:25", + "referencedDeclaration": 4494, + "src": "748:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3282, + "id": 3436, "isConstant": false, "isLValue": false, "isPure": false, @@ -561,20 +561,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:15:25", + "src": "748:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3283, + "id": 3437, "nodeType": "ExpressionStatement", - "src": "748:15:25" + "src": "748:15:26" } ] }, "documentation": null, - "id": 3285, + "id": 3439, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -582,16 +582,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 3268, + "id": 3422, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3265, + "id": 3419, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "672:6:25", + "scope": 3439, + "src": "672:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -599,10 +599,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3264, + "id": 3418, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "672:4:25", + "src": "672:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -613,11 +613,11 @@ }, { "constant": false, - "id": 3267, + "id": 3421, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "680:6:25", + "scope": 3439, + "src": "680:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -625,10 +625,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3266, + "id": 3420, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "680:4:25", + "src": "680:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -638,20 +638,20 @@ "visibility": "internal" } ], - "src": "671:16:25" + "src": "671:16:26" }, "payable": false, "returnParameters": { - "id": 3271, + "id": 3425, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3270, + "id": 3424, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "711:6:25", + "scope": 3439, + "src": "711:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -659,10 +659,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3269, + "id": 3423, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "711:4:25", + "src": "711:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -672,19 +672,19 @@ "visibility": "internal" } ], - "src": "710:8:25" + "src": "710:8:26" }, - "scope": 3358, - "src": "659:111:25", + "scope": 3512, + "src": "659:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3306, + "id": 3460, "nodeType": "Block", - "src": "835:51:25", + "src": "835:51:26", "statements": [ { "expression": { @@ -696,19 +696,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3297, + "id": 3451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3295, + "id": 3449, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "853:1:25", + "referencedDeclaration": 3443, + "src": "853:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -718,18 +718,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 3296, + "id": 3450, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "858:1:25", + "referencedDeclaration": 3441, + "src": "858:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "853:6:25", + "src": "853:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -743,21 +743,21 @@ "typeString": "bool" } ], - "id": 3294, + "id": 3448, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "845:7:25", + "referencedDeclaration": 4494, + "src": "845:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3298, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, @@ -765,32 +765,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:15:25", + "src": "845:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3299, + "id": 3453, "nodeType": "ExpressionStatement", - "src": "845:15:25" + "src": "845:15:26" }, { "expression": { "argumentTypes": null, - "id": 3304, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3300, + "id": 3454, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3292, - "src": "870:1:25", + "referencedDeclaration": 3446, + "src": "870:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -804,19 +804,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3303, + "id": 3457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3301, + "id": 3455, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "874:1:25", + "referencedDeclaration": 3441, + "src": "874:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -826,37 +826,37 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 3302, + "id": 3456, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "878:1:25", + "referencedDeclaration": 3443, + "src": "878:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "874:5:25", + "src": "874:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "870:9:25", + "src": "870:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3305, + "id": 3459, "nodeType": "ExpressionStatement", - "src": "870:9:25" + "src": "870:9:26" } ] }, "documentation": null, - "id": 3307, + "id": 3461, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -864,16 +864,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 3290, + "id": 3444, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3287, + "id": 3441, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "788:6:25", + "scope": 3461, + "src": "788:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -881,10 +881,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3286, + "id": 3440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "788:4:25", + "src": "788:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -895,11 +895,11 @@ }, { "constant": false, - "id": 3289, + "id": 3443, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "796:6:25", + "scope": 3461, + "src": "796:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -907,10 +907,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3288, + "id": 3442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "796:4:25", + "src": "796:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -920,20 +920,20 @@ "visibility": "internal" } ], - "src": "787:16:25" + "src": "787:16:26" }, "payable": false, "returnParameters": { - "id": 3293, + "id": 3447, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3292, + "id": 3446, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "827:6:25", + "scope": 3461, + "src": "827:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -941,10 +941,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3291, + "id": 3445, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:25", + "src": "827:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -954,36 +954,36 @@ "visibility": "internal" } ], - "src": "826:8:25" + "src": "826:8:26" }, - "scope": 3358, - "src": "775:111:25", + "scope": 3512, + "src": "775:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3334, + "id": 3488, "nodeType": "Block", - "src": "951:65:25", + "src": "951:65:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3320, + "id": 3474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3316, + "id": 3470, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "961:1:25", + "referencedDeclaration": 3468, + "src": "961:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -997,19 +997,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3319, + "id": 3473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3317, + "id": 3471, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "965:1:25", + "referencedDeclaration": 3463, + "src": "965:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1019,32 +1019,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 3318, + "id": 3472, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "969:1:25", + "referencedDeclaration": 3465, + "src": "969:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "965:5:25", + "src": "965:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "961:9:25", + "src": "961:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3321, + "id": 3475, "nodeType": "ExpressionStatement", - "src": "961:9:25" + "src": "961:9:26" }, { "expression": { @@ -1056,7 +1056,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3331, + "id": 3485, "isConstant": false, "isLValue": false, "isPure": false, @@ -1067,19 +1067,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3325, + "id": 3479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3323, + "id": 3477, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "988:1:25", + "referencedDeclaration": 3463, + "src": "988:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1090,14 +1090,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3324, + "id": 3478, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "993:1:25", + "src": "993:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1105,7 +1105,7 @@ }, "value": "0" }, - "src": "988:6:25", + "src": "988:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1119,7 +1119,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3330, + "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, @@ -1130,19 +1130,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3328, + "id": 3482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3326, + "id": 3480, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "998:1:25", + "referencedDeclaration": 3468, + "src": "998:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1152,18 +1152,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3327, + "id": 3481, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "1002:1:25", + "referencedDeclaration": 3463, + "src": "1002:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:5:25", + "src": "998:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1173,24 +1173,24 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3329, + "id": 3483, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "1007:1:25", + "referencedDeclaration": 3465, + "src": "1007:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:25", + "src": "998:10:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "988:20:25", + "src": "988:20:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1204,21 +1204,21 @@ "typeString": "bool" } ], - "id": 3322, + "id": 3476, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "980:7:25", + "referencedDeclaration": 4494, + "src": "980:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3332, + "id": 3486, "isConstant": false, "isLValue": false, "isPure": false, @@ -1226,20 +1226,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "980:29:25", + "src": "980:29:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3333, + "id": 3487, "nodeType": "ExpressionStatement", - "src": "980:29:25" + "src": "980:29:26" } ] }, "documentation": null, - "id": 3335, + "id": 3489, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1247,16 +1247,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 3312, + "id": 3466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3309, + "id": 3463, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "904:6:25", + "scope": 3489, + "src": "904:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1264,10 +1264,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3308, + "id": 3462, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "904:4:25", + "src": "904:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1278,11 +1278,11 @@ }, { "constant": false, - "id": 3311, + "id": 3465, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "912:6:25", + "scope": 3489, + "src": "912:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1290,10 +1290,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3310, + "id": 3464, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "912:4:25", + "src": "912:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1303,20 +1303,20 @@ "visibility": "internal" } ], - "src": "903:16:25" + "src": "903:16:26" }, "payable": false, "returnParameters": { - "id": 3315, + "id": 3469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3314, + "id": 3468, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "943:6:25", + "scope": 3489, + "src": "943:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1324,10 +1324,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3313, + "id": 3467, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "943:4:25", + "src": "943:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1337,19 +1337,19 @@ "visibility": "internal" } ], - "src": "942:8:25" + "src": "942:8:26" }, - "scope": 3358, - "src": "891:125:25", + "scope": 3512, + "src": "891:125:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3356, + "id": 3510, "nodeType": "Block", - "src": "1081:50:25", + "src": "1081:50:26", "statements": [ { "expression": { @@ -1361,19 +1361,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3347, + "id": 3501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3345, + "id": 3499, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1099:1:25", + "referencedDeclaration": 3493, + "src": "1099:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1384,14 +1384,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3346, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:1:25", + "src": "1103:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1399,7 +1399,7 @@ }, "value": "0" }, - "src": "1099:5:25", + "src": "1099:5:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1413,21 +1413,21 @@ "typeString": "bool" } ], - "id": 3344, + "id": 3498, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "1091:7:25", + "referencedDeclaration": 4494, + "src": "1091:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3348, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, @@ -1435,32 +1435,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:14:25", + "src": "1091:14:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3349, + "id": 3503, "nodeType": "ExpressionStatement", - "src": "1091:14:25" + "src": "1091:14:26" }, { "expression": { "argumentTypes": null, - "id": 3354, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3350, + "id": 3504, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3342, - "src": "1115:1:25", + "referencedDeclaration": 3496, + "src": "1115:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1474,19 +1474,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3353, + "id": 3507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3351, + "id": 3505, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "1119:1:25", + "referencedDeclaration": 3491, + "src": "1119:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1496,37 +1496,37 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3352, + "id": 3506, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1123:1:25", + "referencedDeclaration": 3493, + "src": "1123:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:5:25", + "src": "1119:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1115:9:25", + "src": "1115:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3355, + "id": 3509, "nodeType": "ExpressionStatement", - "src": "1115:9:25" + "src": "1115:9:26" } ] }, "documentation": null, - "id": 3357, + "id": 3511, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1534,16 +1534,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 3340, + "id": 3494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3337, + "id": 3491, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1034:6:25", + "scope": 3511, + "src": "1034:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1551,10 +1551,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3336, + "id": 3490, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1034:4:25", + "src": "1034:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1565,11 +1565,11 @@ }, { "constant": false, - "id": 3339, + "id": 3493, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1042:6:25", + "scope": 3511, + "src": "1042:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1577,10 +1577,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3338, + "id": 3492, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1042:4:25", + "src": "1042:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1590,20 +1590,20 @@ "visibility": "internal" } ], - "src": "1033:16:25" + "src": "1033:16:26" }, "payable": false, "returnParameters": { - "id": 3343, + "id": 3497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3342, + "id": 3496, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1073:6:25", + "scope": 3511, + "src": "1073:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1611,10 +1611,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3341, + "id": 3495, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1073:4:25", + "src": "1073:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1624,17 +1624,17 @@ "visibility": "internal" } ], - "src": "1072:8:25" + "src": "1072:8:26" }, - "scope": 3358, - "src": "1021:110:25", + "scope": 3512, + "src": "1021:110:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 3814, - "src": "636:497:25" + "scope": 3968, + "src": "636:497:26" }, { "baseContracts": [], @@ -1642,9 +1642,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3425, + "id": 3579, "linearizedBaseContracts": [ - 3425 + 3579 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", @@ -1652,7 +1652,7 @@ { "body": null, "documentation": null, - "id": 3363, + "id": 3517, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1660,23 +1660,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3359, + "id": 3513, "nodeType": "ParameterList", "parameters": [], - "src": "1445:2:25" + "src": "1445:2:26" }, "payable": false, "returnParameters": { - "id": 3362, + "id": 3516, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3361, + "id": 3515, "name": "", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "1473:4:25", + "scope": 3517, + "src": "1473:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1684,10 +1684,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3360, + "id": 3514, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1473:4:25", + "src": "1473:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1697,10 +1697,10 @@ "visibility": "internal" } ], - "src": "1472:6:25" + "src": "1472:6:26" }, - "scope": 3425, - "src": "1425:54:25", + "scope": 3579, + "src": "1425:54:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1708,7 +1708,7 @@ { "body": null, "documentation": null, - "id": 3370, + "id": 3524, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1716,16 +1716,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3366, + "id": 3520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3365, + "id": 3519, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1503:18:25", + "scope": 3524, + "src": "1503:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1733,10 +1733,10 @@ "typeString": "address" }, "typeName": { - "id": 3364, + "id": 3518, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1503:7:25", + "src": "1503:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1746,20 +1746,20 @@ "visibility": "internal" } ], - "src": "1502:20:25" + "src": "1502:20:26" }, "payable": false, "returnParameters": { - "id": 3369, + "id": 3523, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3368, + "id": 3522, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1548:12:25", + "scope": 3524, + "src": "1548:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1767,10 +1767,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3367, + "id": 3521, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:25", + "src": "1548:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1780,10 +1780,10 @@ "visibility": "internal" } ], - "src": "1547:14:25" + "src": "1547:14:26" }, - "scope": 3425, - "src": "1484:78:25", + "scope": 3579, + "src": "1484:78:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1791,7 +1791,7 @@ { "body": null, "documentation": null, - "id": 3379, + "id": 3533, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1799,16 +1799,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3375, + "id": 3529, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3372, + "id": 3526, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1586:18:25", + "scope": 3533, + "src": "1586:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1816,10 +1816,10 @@ "typeString": "address" }, "typeName": { - "id": 3371, + "id": 3525, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:25", + "src": "1586:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1830,11 +1830,11 @@ }, { "constant": false, - "id": 3374, + "id": 3528, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1606:15:25", + "scope": 3533, + "src": "1606:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1842,10 +1842,10 @@ "typeString": "address" }, "typeName": { - "id": 3373, + "id": 3527, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1606:7:25", + "src": "1606:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1855,20 +1855,20 @@ "visibility": "internal" } ], - "src": "1585:37:25" + "src": "1585:37:26" }, "payable": false, "returnParameters": { - "id": 3378, + "id": 3532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3377, + "id": 3531, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1648:14:25", + "scope": 3533, + "src": "1648:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1876,10 +1876,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3376, + "id": 3530, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1648:4:25", + "src": "1648:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1889,10 +1889,10 @@ "visibility": "internal" } ], - "src": "1647:16:25" + "src": "1647:16:26" }, - "scope": 3425, - "src": "1567:97:25", + "scope": 3579, + "src": "1567:97:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1900,7 +1900,7 @@ { "body": null, "documentation": null, - "id": 3388, + "id": 3542, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1908,16 +1908,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3384, + "id": 3538, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3381, + "id": 3535, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1687:10:25", + "scope": 3542, + "src": "1687:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1925,10 +1925,10 @@ "typeString": "address" }, "typeName": { - "id": 3380, + "id": 3534, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:25", + "src": "1687:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1939,11 +1939,11 @@ }, { "constant": false, - "id": 3383, + "id": 3537, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1699:11:25", + "scope": 3542, + "src": "1699:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1951,10 +1951,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3382, + "id": 3536, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:25", + "src": "1699:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1964,20 +1964,20 @@ "visibility": "internal" } ], - "src": "1686:25:25" + "src": "1686:25:26" }, "payable": false, "returnParameters": { - "id": 3387, + "id": 3541, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3386, + "id": 3540, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1728:12:25", + "scope": 3542, + "src": "1728:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1985,10 +1985,10 @@ "typeString": "bool" }, "typeName": { - "id": 3385, + "id": 3539, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1728:4:25", + "src": "1728:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1998,10 +1998,10 @@ "visibility": "internal" } ], - "src": "1727:14:25" + "src": "1727:14:26" }, - "scope": 3425, - "src": "1669:73:25", + "scope": 3579, + "src": "1669:73:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2009,7 +2009,7 @@ { "body": null, "documentation": null, - "id": 3397, + "id": 3551, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -2017,16 +2017,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3393, + "id": 3547, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3390, + "id": 3544, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1764:15:25", + "scope": 3551, + "src": "1764:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2034,10 +2034,10 @@ "typeString": "address" }, "typeName": { - "id": 3389, + "id": 3543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:25", + "src": "1764:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2048,11 +2048,11 @@ }, { "constant": false, - "id": 3392, + "id": 3546, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1781:11:25", + "scope": 3551, + "src": "1781:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2060,10 +2060,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3391, + "id": 3545, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:25", + "src": "1781:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2073,20 +2073,20 @@ "visibility": "internal" } ], - "src": "1763:30:25" + "src": "1763:30:26" }, "payable": false, "returnParameters": { - "id": 3396, + "id": 3550, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3395, + "id": 3549, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1810:12:25", + "scope": 3551, + "src": "1810:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2094,10 +2094,10 @@ "typeString": "bool" }, "typeName": { - "id": 3394, + "id": 3548, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1810:4:25", + "src": "1810:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2107,10 +2107,10 @@ "visibility": "internal" } ], - "src": "1809:14:25" + "src": "1809:14:26" }, - "scope": 3425, - "src": "1747:77:25", + "scope": 3579, + "src": "1747:77:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2118,7 +2118,7 @@ { "body": null, "documentation": null, - "id": 3408, + "id": 3562, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -2126,16 +2126,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3404, + "id": 3558, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3399, + "id": 3553, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1851:12:25", + "scope": 3562, + "src": "1851:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2143,10 +2143,10 @@ "typeString": "address" }, "typeName": { - "id": 3398, + "id": 3552, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1851:7:25", + "src": "1851:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2157,11 +2157,11 @@ }, { "constant": false, - "id": 3401, + "id": 3555, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1865:10:25", + "scope": 3562, + "src": "1865:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2169,10 +2169,10 @@ "typeString": "address" }, "typeName": { - "id": 3400, + "id": 3554, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:25", + "src": "1865:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2183,11 +2183,11 @@ }, { "constant": false, - "id": 3403, + "id": 3557, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1877:11:25", + "scope": 3562, + "src": "1877:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2195,10 +2195,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3402, + "id": 3556, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1877:4:25", + "src": "1877:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2208,20 +2208,20 @@ "visibility": "internal" } ], - "src": "1850:39:25" + "src": "1850:39:26" }, "payable": false, "returnParameters": { - "id": 3407, + "id": 3561, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3406, + "id": 3560, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1906:12:25", + "scope": 3562, + "src": "1906:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2229,10 +2229,10 @@ "typeString": "bool" }, "typeName": { - "id": 3405, + "id": 3559, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1906:4:25", + "src": "1906:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2242,10 +2242,10 @@ "visibility": "internal" } ], - "src": "1905:14:25" + "src": "1905:14:26" }, - "scope": 3425, - "src": "1829:91:25", + "scope": 3579, + "src": "1829:91:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2253,21 +2253,21 @@ { "anonymous": false, "documentation": null, - "id": 3416, + "id": 3570, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 3415, + "id": 3569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3410, + "id": 3564, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1941:20:25", + "scope": 3570, + "src": "1941:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2275,10 +2275,10 @@ "typeString": "address" }, "typeName": { - "id": 3409, + "id": 3563, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1941:7:25", + "src": "1941:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2289,12 +2289,12 @@ }, { "constant": false, - "id": 3412, + "id": 3566, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1963:18:25", + "scope": 3570, + "src": "1963:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2302,10 +2302,10 @@ "typeString": "address" }, "typeName": { - "id": 3411, + "id": 3565, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1963:7:25", + "src": "1963:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2316,12 +2316,12 @@ }, { "constant": false, - "id": 3414, + "id": 3568, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1983:11:25", + "scope": 3570, + "src": "1983:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2329,10 +2329,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3413, + "id": 3567, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:25", + "src": "1983:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2342,28 +2342,28 @@ "visibility": "internal" } ], - "src": "1940:55:25" + "src": "1940:55:26" }, - "src": "1926:70:25" + "src": "1926:70:26" }, { "anonymous": false, "documentation": null, - "id": 3424, + "id": 3578, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 3423, + "id": 3577, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3418, + "id": 3572, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2016:26:25", + "scope": 3578, + "src": "2016:26:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2371,10 +2371,10 @@ "typeString": "address" }, "typeName": { - "id": 3417, + "id": 3571, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2016:7:25", + "src": "2016:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2385,12 +2385,12 @@ }, { "constant": false, - "id": 3420, + "id": 3574, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2044:23:25", + "scope": 3578, + "src": "2044:23:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2398,10 +2398,10 @@ "typeString": "address" }, "typeName": { - "id": 3419, + "id": 3573, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2044:7:25", + "src": "2044:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2412,12 +2412,12 @@ }, { "constant": false, - "id": 3422, + "id": 3576, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2069:11:25", + "scope": 3578, + "src": "2069:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2425,10 +2425,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3421, + "id": 3575, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2069:4:25", + "src": "2069:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2438,13 +2438,13 @@ "visibility": "internal" } ], - "src": "2015:66:25" + "src": "2015:66:26" }, - "src": "2001:81:25" + "src": "2001:81:26" } ], - "scope": 3814, - "src": "1395:689:25" + "scope": 3968, + "src": "1395:689:26" }, { "baseContracts": [], @@ -2452,9 +2452,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3437, + "id": 3591, "linearizedBaseContracts": [ - 3437 + 3591 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", @@ -2462,7 +2462,7 @@ { "body": null, "documentation": null, - "id": 3436, + "id": 3590, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -2470,16 +2470,16 @@ "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 3434, + "id": 3588, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3427, + "id": 3581, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2416:12:25", + "scope": 3590, + "src": "2416:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2487,10 +2487,10 @@ "typeString": "address" }, "typeName": { - "id": 3426, + "id": 3580, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2416:7:25", + "src": "2416:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2501,11 +2501,11 @@ }, { "constant": false, - "id": 3429, + "id": 3583, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2430:14:25", + "scope": 3590, + "src": "2430:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2513,10 +2513,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3428, + "id": 3582, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2430:7:25", + "src": "2430:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2527,11 +2527,11 @@ }, { "constant": false, - "id": 3431, + "id": 3585, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2446:13:25", + "scope": 3590, + "src": "2446:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2539,10 +2539,10 @@ "typeString": "address" }, "typeName": { - "id": 3430, + "id": 3584, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2446:7:25", + "src": "2446:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2553,11 +2553,11 @@ }, { "constant": false, - "id": 3433, + "id": 3587, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2461:10:25", + "scope": 3590, + "src": "2461:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2565,10 +2565,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3432, + "id": 3586, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2461:5:25", + "src": "2461:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2578,24 +2578,24 @@ "visibility": "internal" } ], - "src": "2415:57:25" + "src": "2415:57:26" }, "payable": false, "returnParameters": { - "id": 3435, + "id": 3589, "nodeType": "ParameterList", "parameters": [], - "src": "2479:0:25" + "src": "2479:0:26" }, - "scope": 3437, - "src": "2391:89:25", + "scope": 3591, + "src": "2391:89:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2353:129:25" + "scope": 3968, + "src": "2353:129:26" }, { "baseContracts": [], @@ -2603,20 +2603,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3506, + "id": 3660, "linearizedBaseContracts": [ - 3506 + 3660 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 3439, + "id": 3593, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2684:20:25", + "scope": 3660, + "src": "2684:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2624,10 +2624,10 @@ "typeString": "address" }, "typeName": { - "id": 3438, + "id": 3592, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2684:7:25", + "src": "2684:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2638,11 +2638,11 @@ }, { "constant": false, - "id": 3441, + "id": 3595, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2710:23:25", + "scope": 3660, + "src": "2710:23:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2650,10 +2650,10 @@ "typeString": "address" }, "typeName": { - "id": 3440, + "id": 3594, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2710:7:25", + "src": "2710:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2665,21 +2665,21 @@ { "anonymous": false, "documentation": null, - "id": 3447, + "id": 3601, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 3446, + "id": 3600, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3443, + "id": 3597, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2767:21:25", + "scope": 3601, + "src": "2767:21:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2687,10 +2687,10 @@ "typeString": "address" }, "typeName": { - "id": 3442, + "id": 3596, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2767:7:25", + "src": "2767:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2701,12 +2701,12 @@ }, { "constant": false, - "id": 3445, + "id": 3599, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2790:19:25", + "scope": 3601, + "src": "2790:19:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2714,10 +2714,10 @@ "typeString": "address" }, "typeName": { - "id": 3444, + "id": 3598, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2790:7:25", + "src": "2790:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2727,32 +2727,32 @@ "visibility": "internal" } ], - "src": "2766:44:25" + "src": "2766:44:26" }, - "src": "2740:71:25" + "src": "2740:71:26" }, { "body": { - "id": 3455, + "id": 3609, "nodeType": "Block", - "src": "2838:35:25", + "src": "2838:35:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3453, + "id": 3607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3450, + "id": 3604, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2848:5:25", + "referencedDeclaration": 3593, + "src": "2848:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2764,18 +2764,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3451, + "id": 3605, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2856:3:25", + "referencedDeclaration": 4491, + "src": "2856:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3452, + "id": 3606, "isConstant": false, "isLValue": false, "isPure": false, @@ -2783,26 +2783,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2856:10:25", + "src": "2856:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2848:18:25", + "src": "2848:18:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3454, + "id": 3608, "nodeType": "ExpressionStatement", - "src": "2848:18:25" + "src": "2848:18:26" } ] }, "documentation": null, - "id": 3456, + "id": 3610, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -2810,29 +2810,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3448, + "id": 3602, "nodeType": "ParameterList", "parameters": [], - "src": "2828:2:25" + "src": "2828:2:26" }, "payable": false, "returnParameters": { - "id": 3449, + "id": 3603, "nodeType": "ParameterList", "parameters": [], - "src": "2838:0:25" + "src": "2838:0:26" }, - "scope": 3506, - "src": "2817:56:25", + "scope": 3660, + "src": "2817:56:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3466, + "id": 3620, "nodeType": "Block", - "src": "2898:56:25", + "src": "2898:56:26", "statements": [ { "expression": { @@ -2844,7 +2844,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3462, + "id": 3616, "isConstant": false, "isLValue": false, "isPure": false, @@ -2853,18 +2853,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3459, + "id": 3613, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2916:3:25", + "referencedDeclaration": 4491, + "src": "2916:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3460, + "id": 3614, "isConstant": false, "isLValue": false, "isPure": false, @@ -2872,7 +2872,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2916:10:25", + "src": "2916:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2882,18 +2882,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3461, + "id": 3615, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2930:5:25", + "referencedDeclaration": 3593, + "src": "2930:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2916:19:25", + "src": "2916:19:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2907,21 +2907,21 @@ "typeString": "bool" } ], - "id": 3458, + "id": 3612, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "2908:7:25", + "referencedDeclaration": 4494, + "src": "2908:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3463, + "id": 3617, "isConstant": false, "isLValue": false, "isPure": false, @@ -2929,58 +2929,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:28:25", + "src": "2908:28:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3464, + "id": 3618, "nodeType": "ExpressionStatement", - "src": "2908:28:25" + "src": "2908:28:26" }, { - "id": 3465, + "id": 3619, "nodeType": "PlaceholderStatement", - "src": "2946:1:25" + "src": "2946:1:26" } ] }, "documentation": null, - "id": 3467, + "id": 3621, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 3457, + "id": 3611, "nodeType": "ParameterList", "parameters": [], - "src": "2898:0:25" + "src": "2898:0:26" }, - "src": "2879:75:25", + "src": "2879:75:26", "visibility": "internal" }, { "body": { - "id": 3478, + "id": 3632, "nodeType": "Block", - "src": "3023:37:25", + "src": "3023:37:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3476, + "id": 3630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3474, + "id": 3628, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3033:8:25", + "referencedDeclaration": 3595, + "src": "3033:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2990,68 +2990,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3475, + "id": 3629, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3469, - "src": "3044:9:25", + "referencedDeclaration": 3623, + "src": "3044:9:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3033:20:25", + "src": "3033:20:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3477, + "id": 3631, "nodeType": "ExpressionStatement", - "src": "3033:20:25" + "src": "3033:20:26" } ] }, "documentation": null, - "id": 3479, + "id": 3633, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3472, + "id": 3626, "modifierName": { "argumentTypes": null, - "id": 3471, + "id": 3625, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3013:9:25", + "referencedDeclaration": 3621, + "src": "3013:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3013:9:25" + "src": "3013:9:26" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3470, + "id": 3624, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3469, + "id": 3623, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 3479, - "src": "2987:17:25", + "scope": 3633, + "src": "2987:17:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3059,10 +3059,10 @@ "typeString": "address" }, "typeName": { - "id": 3468, + "id": 3622, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2987:7:25", + "src": "2987:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3072,26 +3072,26 @@ "visibility": "internal" } ], - "src": "2986:19:25" + "src": "2986:19:26" }, "payable": false, "returnParameters": { - "id": 3473, + "id": 3627, "nodeType": "ParameterList", "parameters": [], - "src": "3023:0:25" + "src": "3023:0:26" }, - "scope": 3506, - "src": "2960:100:25", + "scope": 3660, + "src": "2960:100:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3504, + "id": 3658, "nodeType": "Block", - "src": "3099:157:25", + "src": "3099:157:26", "statements": [ { "expression": { @@ -3103,7 +3103,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3486, + "id": 3640, "isConstant": false, "isLValue": false, "isPure": false, @@ -3112,18 +3112,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3483, + "id": 3637, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "3117:3:25", + "referencedDeclaration": 4491, + "src": "3117:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3484, + "id": 3638, "isConstant": false, "isLValue": false, "isPure": false, @@ -3131,7 +3131,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3117:10:25", + "src": "3117:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3141,18 +3141,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3485, + "id": 3639, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3131:8:25", + "referencedDeclaration": 3595, + "src": "3131:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3117:22:25", + "src": "3117:22:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3166,21 +3166,21 @@ "typeString": "bool" } ], - "id": 3482, + "id": 3636, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "3109:7:25", + "referencedDeclaration": 4494, + "src": "3109:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3487, + "id": 3641, "isConstant": false, "isLValue": false, "isPure": false, @@ -3188,15 +3188,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3109:31:25", + "src": "3109:31:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3488, + "id": 3642, "nodeType": "ExpressionStatement", - "src": "3109:31:25" + "src": "3109:31:26" }, { "eventCall": { @@ -3204,12 +3204,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3490, + "id": 3644, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3176:5:25", + "referencedDeclaration": 3593, + "src": "3176:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3217,12 +3217,12 @@ }, { "argumentTypes": null, - "id": 3491, + "id": 3645, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3183:8:25", + "referencedDeclaration": 3595, + "src": "3183:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3240,18 +3240,18 @@ "typeString": "address" } ], - "id": 3489, + "id": 3643, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3447, - "src": "3155:20:25", + "referencedDeclaration": 3601, + "src": "3155:20:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 3492, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, @@ -3259,32 +3259,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3155:37:25", + "src": "3155:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3493, + "id": 3647, "nodeType": "EmitStatement", - "src": "3150:42:25" + "src": "3150:42:26" }, { "expression": { "argumentTypes": null, - "id": 3496, + "id": 3650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3494, + "id": 3648, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3202:5:25", + "referencedDeclaration": 3593, + "src": "3202:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3294,43 +3294,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3495, + "id": 3649, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3210:8:25", + "referencedDeclaration": 3595, + "src": "3210:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3202:16:25", + "src": "3202:16:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3497, + "id": 3651, "nodeType": "ExpressionStatement", - "src": "3202:16:25" + "src": "3202:16:26" }, { "expression": { "argumentTypes": null, - "id": 3502, + "id": 3656, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3498, + "id": 3652, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3228:8:25", + "referencedDeclaration": 3595, + "src": "3228:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3344,14 +3344,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3500, + "id": 3654, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3247:1:25", + "src": "3247:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3367,20 +3367,20 @@ "typeString": "int_const 0" } ], - "id": 3499, + "id": 3653, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:25", + "src": "3239:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3501, + "id": 3655, "isConstant": false, "isLValue": false, "isPure": true, @@ -3388,26 +3388,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3239:10:25", + "src": "3239:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3228:21:25", + "src": "3228:21:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3503, + "id": 3657, "nodeType": "ExpressionStatement", - "src": "3228:21:25" + "src": "3228:21:26" } ] }, "documentation": null, - "id": 3505, + "id": 3659, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3415,27 +3415,27 @@ "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3480, + "id": 3634, "nodeType": "ParameterList", "parameters": [], - "src": "3089:2:25" + "src": "3089:2:26" }, "payable": false, "returnParameters": { - "id": 3481, + "id": 3635, "nodeType": "ParameterList", "parameters": [], - "src": "3099:0:25" + "src": "3099:0:26" }, - "scope": 3506, - "src": "3065:191:25", + "scope": 3660, + "src": "3065:191:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2663:595:25" + "scope": 3968, + "src": "2663:595:26" }, { "baseContracts": [ @@ -3443,76 +3443,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3507, + "id": 3661, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3425, - "src": "3528:14:25", + "referencedDeclaration": 3579, + "src": "3528:14:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3508, + "id": 3662, "nodeType": "InheritanceSpecifier", - "src": "3528:14:25" + "src": "3528:14:26" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3509, + "id": 3663, "name": "Owned", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3506, - "src": "3544:5:25", + "referencedDeclaration": 3660, + "src": "3544:5:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3506", + "typeIdentifier": "t_contract$_Owned_$3660", "typeString": "contract Owned" } }, - "id": 3510, + "id": 3664, "nodeType": "InheritanceSpecifier", - "src": "3544:5:25" + "src": "3544:5:26" } ], "contractDependencies": [ - 3425, - 3506 + 3579, + 3660 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3813, + "id": 3967, "linearizedBaseContracts": [ - 3813, - 3506, - 3425 + 3967, + 3660, + 3579 ], "name": "TestToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3513, + "id": 3667, "libraryName": { "contractScope": null, - "id": 3511, + "id": 3665, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3358, - "src": "3562:8:25", + "referencedDeclaration": 3512, + "src": "3562:8:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeIdentifier": "t_contract$_SafeMath_$3512", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3556:24:25", + "src": "3556:24:26", "typeName": { - "id": 3512, + "id": 3666, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3575:4:25", + "src": "3575:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3521,11 +3521,11 @@ }, { "constant": false, - "id": 3515, + "id": 3669, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3586:20:25", + "scope": 3967, + "src": "3586:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3533,10 +3533,10 @@ "typeString": "string" }, "typeName": { - "id": 3514, + "id": 3668, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3586:6:25", + "src": "3586:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3547,11 +3547,11 @@ }, { "constant": false, - "id": 3517, + "id": 3671, "name": "name", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3612:19:25", + "scope": 3967, + "src": "3612:19:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3559,10 +3559,10 @@ "typeString": "string" }, "typeName": { - "id": 3516, + "id": 3670, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3612:6:25", + "src": "3612:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3573,11 +3573,11 @@ }, { "constant": false, - "id": 3519, + "id": 3673, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3637:21:25", + "scope": 3967, + "src": "3637:21:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3585,10 +3585,10 @@ "typeString": "uint8" }, "typeName": { - "id": 3518, + "id": 3672, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3637:5:25", + "src": "3637:5:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3599,11 +3599,11 @@ }, { "constant": false, - "id": 3521, + "id": 3675, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3664:17:25", + "scope": 3967, + "src": "3664:17:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3611,10 +3611,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3520, + "id": 3674, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3664:4:25", + "src": "3664:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3625,11 +3625,11 @@ }, { "constant": false, - "id": 3525, + "id": 3679, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3688:33:25", + "scope": 3967, + "src": "3688:33:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3637,28 +3637,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 3524, + "id": 3678, "keyType": { - "id": 3522, + "id": 3676, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3696:7:25", + "src": "3696:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3688:24:25", + "src": "3688:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3523, + "id": 3677, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3707:4:25", + "src": "3707:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3670,11 +3670,11 @@ }, { "constant": false, - "id": 3531, + "id": 3685, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3727:52:25", + "scope": 3967, + "src": "3727:52:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3682,46 +3682,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 3530, + "id": 3684, "keyType": { - "id": 3526, + "id": 3680, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3735:7:25", + "src": "3735:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3727:44:25", + "src": "3727:44:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 3529, + "id": 3683, "keyType": { - "id": 3527, + "id": 3681, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3754:7:25", + "src": "3754:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3746:24:25", + "src": "3746:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3528, + "id": 3682, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3765:4:25", + "src": "3765:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3734,26 +3734,26 @@ }, { "body": { - "id": 3570, + "id": 3724, "nodeType": "Block", - "src": "3987:235:25", + "src": "3987:235:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3536, + "id": 3690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3534, + "id": 3688, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3997:6:25", + "referencedDeclaration": 3669, + "src": "3997:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3764,14 +3764,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "544b4e", - "id": 3535, + "id": 3689, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4006:5:25", + "src": "4006:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", @@ -3779,32 +3779,32 @@ }, "value": "TKN" }, - "src": "3997:14:25", + "src": "3997:14:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3537, + "id": 3691, "nodeType": "ExpressionStatement", - "src": "3997:14:25" + "src": "3997:14:26" }, { "expression": { "argumentTypes": null, - "id": 3540, + "id": 3694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3538, + "id": 3692, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3517, - "src": "4021:4:25", + "referencedDeclaration": 3671, + "src": "4021:4:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3815,14 +3815,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "546f6b656e204578616d706c65", - "id": 3539, + "id": 3693, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4028:15:25", + "src": "4028:15:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", @@ -3830,32 +3830,32 @@ }, "value": "Token Example" }, - "src": "4021:22:25", + "src": "4021:22:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3541, + "id": 3695, "nodeType": "ExpressionStatement", - "src": "4021:22:25" + "src": "4021:22:26" }, { "expression": { "argumentTypes": null, - "id": 3544, + "id": 3698, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3542, + "id": 3696, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4053:8:25", + "referencedDeclaration": 3673, + "src": "4053:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3866,14 +3866,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3138", - "id": 3543, + "id": 3697, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4064:2:25", + "src": "4064:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -3881,32 +3881,32 @@ }, "value": "18" }, - "src": "4053:13:25", + "src": "4053:13:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 3545, + "id": 3699, "nodeType": "ExpressionStatement", - "src": "4053:13:25" + "src": "4053:13:26" }, { "expression": { "argumentTypes": null, - "id": 3554, + "id": 3708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3546, + "id": 3700, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4076:12:25", + "referencedDeclaration": 3675, + "src": "4076:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3920,7 +3920,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3553, + "id": 3707, "isConstant": false, "isLValue": false, "isPure": false, @@ -3928,14 +3928,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 3547, + "id": 3701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4091:7:25", + "src": "4091:7:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -3951,7 +3951,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3552, + "id": 3706, "isConstant": false, "isLValue": false, "isPure": false, @@ -3959,14 +3959,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 3548, + "id": 3702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4101:2:25", + "src": "4101:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -3981,12 +3981,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3550, + "id": 3704, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4110:8:25", + "referencedDeclaration": 3673, + "src": "4110:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4000,20 +4000,20 @@ "typeString": "uint8" } ], - "id": 3549, + "id": 3703, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:25", + "src": "4105:4:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 3551, + "id": 3705, "isConstant": false, "isLValue": false, "isPure": false, @@ -4021,38 +4021,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4105:14:25", + "src": "4105:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4101:18:25", + "src": "4101:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4091:28:25", + "src": "4091:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4076:43:25", + "src": "4076:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3555, + "id": 3709, "nodeType": "ExpressionStatement", - "src": "4076:43:25" + "src": "4076:43:26" }, { "expression": { "argumentTypes": null, - "id": 3560, + "id": 3714, "isConstant": false, "isLValue": false, "isPure": false, @@ -4061,26 +4061,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3556, + "id": 3710, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4129:8:25", + "referencedDeclaration": 3679, + "src": "4129:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3558, + "id": 3712, "indexExpression": { "argumentTypes": null, - "id": 3557, + "id": 3711, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4138:5:25", + "referencedDeclaration": 3593, + "src": "4138:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4091,7 +4091,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4129:15:25", + "src": "4129:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4101,26 +4101,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3559, + "id": 3713, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4147:12:25", + "referencedDeclaration": 3675, + "src": "4147:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4129:30:25", + "src": "4129:30:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3561, + "id": 3715, "nodeType": "ExpressionStatement", - "src": "4129:30:25" + "src": "4129:30:26" }, { "eventCall": { @@ -4132,14 +4132,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3564, + "id": 3718, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4191:1:25", + "src": "4191:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4155,20 +4155,20 @@ "typeString": "int_const 0" } ], - "id": 3563, + "id": 3717, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:25", + "src": "4183:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3565, + "id": 3719, "isConstant": false, "isLValue": false, "isPure": true, @@ -4176,7 +4176,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4183:10:25", + "src": "4183:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4184,12 +4184,12 @@ }, { "argumentTypes": null, - "id": 3566, + "id": 3720, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4195:5:25", + "referencedDeclaration": 3593, + "src": "4195:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4197,12 +4197,12 @@ }, { "argumentTypes": null, - "id": 3567, + "id": 3721, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4202:12:25", + "referencedDeclaration": 3675, + "src": "4202:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4224,18 +4224,18 @@ "typeString": "uint256" } ], - "id": 3562, + "id": 3716, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "4174:8:25", + "referencedDeclaration": 3570, + "src": "4174:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3568, + "id": 3722, "isConstant": false, "isLValue": false, "isPure": false, @@ -4243,20 +4243,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4174:41:25", + "src": "4174:41:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3569, + "id": 3723, "nodeType": "EmitStatement", - "src": "4169:46:25" + "src": "4169:46:26" } ] }, "documentation": null, - "id": 3571, + "id": 3725, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -4264,29 +4264,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3532, + "id": 3686, "nodeType": "ParameterList", "parameters": [], - "src": "3977:2:25" + "src": "3977:2:26" }, "payable": false, "returnParameters": { - "id": 3533, + "id": 3687, "nodeType": "ParameterList", "parameters": [], - "src": "3987:0:25" + "src": "3987:0:26" }, - "scope": 3813, - "src": "3966:256:25", + "scope": 3967, + "src": "3966:256:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3585, + "id": 3739, "nodeType": "Block", - "src": "4459:62:25", + "src": "4459:62:26", "statements": [ { "expression": { @@ -4296,32 +4296,32 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3578, + "id": 3732, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4493:8:25", + "referencedDeclaration": 3679, + "src": "4493:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3582, + "id": 3736, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 3580, + "id": 3734, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4510:1:25", + "src": "4510:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4337,20 +4337,20 @@ "typeString": "int_const 0" } ], - "id": 3579, + "id": 3733, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:25", + "src": "4502:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3581, + "id": 3735, "isConstant": false, "isLValue": false, "isPure": true, @@ -4358,7 +4358,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4502:10:25", + "src": "4502:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4369,7 +4369,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4493:20:25", + "src": "4493:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4385,32 +4385,32 @@ ], "expression": { "argumentTypes": null, - "id": 3576, + "id": 3730, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4476:12:25", + "referencedDeclaration": 3675, + "src": "4476:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3577, + "id": 3731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "4476:16:25", + "referencedDeclaration": 3461, + "src": "4476:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3583, + "id": 3737, "isConstant": false, "isLValue": false, "isPure": false, @@ -4418,21 +4418,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4476:38:25", + "src": "4476:38:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3575, - "id": 3584, + "functionReturnParameters": 3729, + "id": 3738, "nodeType": "Return", - "src": "4469:45:25" + "src": "4469:45:26" } ] }, "documentation": null, - "id": 3586, + "id": 3740, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4440,23 +4440,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3572, + "id": 3726, "nodeType": "ParameterList", "parameters": [], - "src": "4429:2:25" + "src": "4429:2:26" }, "payable": false, "returnParameters": { - "id": 3575, + "id": 3729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3574, + "id": 3728, "name": "", "nodeType": "VariableDeclaration", - "scope": 3586, - "src": "4453:4:25", + "scope": 3740, + "src": "4453:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4464,10 +4464,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3573, + "id": 3727, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4453:4:25", + "src": "4453:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4477,45 +4477,45 @@ "visibility": "internal" } ], - "src": "4452:6:25" + "src": "4452:6:26" }, - "scope": 3813, - "src": "4409:112:25", + "scope": 3967, + "src": "4409:112:26", "stateMutability": "view", - "superFunction": 3363, + "superFunction": 3517, "visibility": "public" }, { "body": { - "id": 3597, + "id": 3751, "nodeType": "Block", - "src": "4816:44:25", + "src": "4816:44:26", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3593, + "id": 3747, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4833:8:25", + "referencedDeclaration": 3679, + "src": "4833:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3595, + "id": 3749, "indexExpression": { "argumentTypes": null, - "id": 3594, + "id": 3748, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3588, - "src": "4842:10:25", + "referencedDeclaration": 3742, + "src": "4842:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4526,21 +4526,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4833:20:25", + "src": "4833:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3592, - "id": 3596, + "functionReturnParameters": 3746, + "id": 3750, "nodeType": "Return", - "src": "4826:27:25" + "src": "4826:27:26" } ] }, "documentation": null, - "id": 3598, + "id": 3752, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4548,16 +4548,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3589, + "id": 3743, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3588, + "id": 3742, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4761:18:25", + "scope": 3752, + "src": "4761:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4565,10 +4565,10 @@ "typeString": "address" }, "typeName": { - "id": 3587, + "id": 3741, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4761:7:25", + "src": "4761:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4578,20 +4578,20 @@ "visibility": "internal" } ], - "src": "4760:20:25" + "src": "4760:20:26" }, "payable": false, "returnParameters": { - "id": 3592, + "id": 3746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3591, + "id": 3745, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4802:12:25", + "scope": 3752, + "src": "4802:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4599,10 +4599,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3590, + "id": 3744, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4802:4:25", + "src": "4802:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4612,24 +4612,24 @@ "visibility": "internal" } ], - "src": "4801:14:25" + "src": "4801:14:26" }, - "scope": 3813, - "src": "4742:118:25", + "scope": 3967, + "src": "4742:118:26", "stateMutability": "view", - "superFunction": 3370, + "superFunction": 3524, "visibility": "public" }, { "body": { - "id": 3640, + "id": 3794, "nodeType": "Block", - "src": "5276:189:25", + "src": "5276:189:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3618, + "id": 3772, "isConstant": false, "isLValue": false, "isPure": false, @@ -4638,34 +4638,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3607, + "id": 3761, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5286:8:25", + "referencedDeclaration": 3679, + "src": "5286:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3610, + "id": 3764, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3608, + "id": 3762, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5295:3:25", + "referencedDeclaration": 4491, + "src": "5295:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3609, + "id": 3763, "isConstant": false, "isLValue": false, "isPure": false, @@ -4673,7 +4673,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5295:10:25", + "src": "5295:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4684,7 +4684,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5286:20:25", + "src": "5286:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4697,12 +4697,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3616, + "id": 3770, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5334:6:25", + "referencedDeclaration": 3756, + "src": "5334:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4720,34 +4720,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3611, + "id": 3765, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5309:8:25", + "referencedDeclaration": 3679, + "src": "5309:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3614, + "id": 3768, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3612, + "id": 3766, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5318:3:25", + "referencedDeclaration": 4491, + "src": "5318:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3613, + "id": 3767, "isConstant": false, "isLValue": false, "isPure": false, @@ -4755,7 +4755,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5318:10:25", + "src": "5318:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4766,27 +4766,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5309:20:25", + "src": "5309:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3615, + "id": 3769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "5309:24:25", + "referencedDeclaration": 3461, + "src": "5309:24:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3617, + "id": 3771, "isConstant": false, "isLValue": false, "isPure": false, @@ -4794,26 +4794,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5309:32:25", + "src": "5309:32:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5286:55:25", + "src": "5286:55:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3619, + "id": 3773, "nodeType": "ExpressionStatement", - "src": "5286:55:25" + "src": "5286:55:26" }, { "expression": { "argumentTypes": null, - "id": 3629, + "id": 3783, "isConstant": false, "isLValue": false, "isPure": false, @@ -4822,26 +4822,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3620, + "id": 3774, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5351:8:25", + "referencedDeclaration": 3679, + "src": "5351:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3622, + "id": 3776, "indexExpression": { "argumentTypes": null, - "id": 3621, + "id": 3775, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5360:2:25", + "referencedDeclaration": 3754, + "src": "5360:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4852,7 +4852,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5351:12:25", + "src": "5351:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4865,12 +4865,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3627, + "id": 3781, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5383:6:25", + "referencedDeclaration": 3756, + "src": "5383:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4888,26 +4888,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3623, + "id": 3777, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5366:8:25", + "referencedDeclaration": 3679, + "src": "5366:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3625, + "id": 3779, "indexExpression": { "argumentTypes": null, - "id": 3624, + "id": 3778, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5375:2:25", + "referencedDeclaration": 3754, + "src": "5375:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4918,27 +4918,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5366:12:25", + "src": "5366:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3626, + "id": 3780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "5366:16:25", + "referencedDeclaration": 3439, + "src": "5366:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3628, + "id": 3782, "isConstant": false, "isLValue": false, "isPure": false, @@ -4946,21 +4946,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5366:24:25", + "src": "5366:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5351:39:25", + "src": "5351:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3630, + "id": 3784, "nodeType": "ExpressionStatement", - "src": "5351:39:25" + "src": "5351:39:26" }, { "eventCall": { @@ -4970,18 +4970,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3632, + "id": 3786, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5414:3:25", + "referencedDeclaration": 4491, + "src": "5414:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3633, + "id": 3787, "isConstant": false, "isLValue": false, "isPure": false, @@ -4989,7 +4989,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:25", + "src": "5414:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4997,12 +4997,12 @@ }, { "argumentTypes": null, - "id": 3634, + "id": 3788, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5426:2:25", + "referencedDeclaration": 3754, + "src": "5426:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5010,12 +5010,12 @@ }, { "argumentTypes": null, - "id": 3635, + "id": 3789, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5430:6:25", + "referencedDeclaration": 3756, + "src": "5430:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5037,18 +5037,18 @@ "typeString": "uint256" } ], - "id": 3631, + "id": 3785, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5405:8:25", + "referencedDeclaration": 3570, + "src": "5405:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3636, + "id": 3790, "isConstant": false, "isLValue": false, "isPure": false, @@ -5056,28 +5056,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5405:32:25", + "src": "5405:32:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3637, + "id": 3791, "nodeType": "EmitStatement", - "src": "5400:37:25" + "src": "5400:37:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3638, + "id": 3792, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5454:4:25", + "src": "5454:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5085,15 +5085,15 @@ }, "value": "true" }, - "functionReturnParameters": 3606, - "id": 3639, + "functionReturnParameters": 3760, + "id": 3793, "nodeType": "Return", - "src": "5447:11:25" + "src": "5447:11:26" } ] }, "documentation": null, - "id": 3641, + "id": 3795, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5101,16 +5101,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3603, + "id": 3757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3600, + "id": 3754, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5221:10:25", + "scope": 3795, + "src": "5221:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5118,10 +5118,10 @@ "typeString": "address" }, "typeName": { - "id": 3599, + "id": 3753, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5221:7:25", + "src": "5221:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5132,11 +5132,11 @@ }, { "constant": false, - "id": 3602, + "id": 3756, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5233:11:25", + "scope": 3795, + "src": "5233:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5144,10 +5144,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3601, + "id": 3755, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5233:4:25", + "src": "5233:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5157,20 +5157,20 @@ "visibility": "internal" } ], - "src": "5220:25:25" + "src": "5220:25:26" }, "payable": false, "returnParameters": { - "id": 3606, + "id": 3760, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3605, + "id": 3759, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5262:12:25", + "scope": 3795, + "src": "5262:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5178,10 +5178,10 @@ "typeString": "bool" }, "typeName": { - "id": 3604, + "id": 3758, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5262:4:25", + "src": "5262:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5191,24 +5191,24 @@ "visibility": "internal" } ], - "src": "5261:14:25" + "src": "5261:14:26" }, - "scope": 3813, - "src": "5203:262:25", + "scope": 3967, + "src": "5203:262:26", "stateMutability": "nonpayable", - "superFunction": 3388, + "superFunction": 3542, "visibility": "public" }, { "body": { - "id": 3668, + "id": 3822, "nodeType": "Block", - "src": "6048:127:25", + "src": "6048:127:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3657, + "id": 3811, "isConstant": false, "isLValue": false, "isPure": false, @@ -5219,34 +5219,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3650, + "id": 3804, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6058:7:25", + "referencedDeclaration": 3685, + "src": "6058:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3654, + "id": 3808, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3651, + "id": 3805, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6066:3:25", + "referencedDeclaration": 4491, + "src": "6066:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3652, + "id": 3806, "isConstant": false, "isLValue": false, "isPure": false, @@ -5254,7 +5254,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6066:10:25", + "src": "6066:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5265,21 +5265,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6058:19:25", + "src": "6058:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3655, + "id": 3809, "indexExpression": { "argumentTypes": null, - "id": 3653, + "id": 3807, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6078:7:25", + "referencedDeclaration": 3797, + "src": "6078:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5290,7 +5290,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6058:28:25", + "src": "6058:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5300,26 +5300,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3656, + "id": 3810, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6089:6:25", + "referencedDeclaration": 3799, + "src": "6089:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6058:37:25", + "src": "6058:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3658, + "id": 3812, "nodeType": "ExpressionStatement", - "src": "6058:37:25" + "src": "6058:37:26" }, { "eventCall": { @@ -5329,18 +5329,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3660, + "id": 3814, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6119:3:25", + "referencedDeclaration": 4491, + "src": "6119:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3661, + "id": 3815, "isConstant": false, "isLValue": false, "isPure": false, @@ -5348,7 +5348,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6119:10:25", + "src": "6119:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5356,12 +5356,12 @@ }, { "argumentTypes": null, - "id": 3662, + "id": 3816, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6131:7:25", + "referencedDeclaration": 3797, + "src": "6131:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5369,12 +5369,12 @@ }, { "argumentTypes": null, - "id": 3663, + "id": 3817, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6140:6:25", + "referencedDeclaration": 3799, + "src": "6140:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5396,18 +5396,18 @@ "typeString": "uint256" } ], - "id": 3659, + "id": 3813, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "6110:8:25", + "referencedDeclaration": 3578, + "src": "6110:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3664, + "id": 3818, "isConstant": false, "isLValue": false, "isPure": false, @@ -5415,28 +5415,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6110:37:25", + "src": "6110:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3665, + "id": 3819, "nodeType": "EmitStatement", - "src": "6105:42:25" + "src": "6105:42:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3666, + "id": 3820, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6164:4:25", + "src": "6164:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5444,15 +5444,15 @@ }, "value": "true" }, - "functionReturnParameters": 3649, - "id": 3667, + "functionReturnParameters": 3803, + "id": 3821, "nodeType": "Return", - "src": "6157:11:25" + "src": "6157:11:26" } ] }, "documentation": null, - "id": 3669, + "id": 3823, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5460,16 +5460,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3646, + "id": 3800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3643, + "id": 3797, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "5988:15:25", + "scope": 3823, + "src": "5988:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5477,10 +5477,10 @@ "typeString": "address" }, "typeName": { - "id": 3642, + "id": 3796, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5988:7:25", + "src": "5988:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5491,11 +5491,11 @@ }, { "constant": false, - "id": 3645, + "id": 3799, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6005:11:25", + "scope": 3823, + "src": "6005:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5503,10 +5503,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3644, + "id": 3798, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6005:4:25", + "src": "6005:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5516,20 +5516,20 @@ "visibility": "internal" } ], - "src": "5987:30:25" + "src": "5987:30:26" }, "payable": false, "returnParameters": { - "id": 3649, + "id": 3803, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3648, + "id": 3802, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6034:12:25", + "scope": 3823, + "src": "6034:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5537,10 +5537,10 @@ "typeString": "bool" }, "typeName": { - "id": 3647, + "id": 3801, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6034:4:25", + "src": "6034:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5550,24 +5550,24 @@ "visibility": "internal" } ], - "src": "6033:14:25" + "src": "6033:14:26" }, - "scope": 3813, - "src": "5971:204:25", + "scope": 3967, + "src": "5971:204:26", "stateMutability": "nonpayable", - "superFunction": 3397, + "superFunction": 3551, "visibility": "public" }, { "body": { - "id": 3727, + "id": 3881, "nodeType": "Block", - "src": "6798:246:25", + "src": "6798:246:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3689, + "id": 3843, "isConstant": false, "isLValue": false, "isPure": false, @@ -5576,26 +5576,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3680, + "id": 3834, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6808:8:25", + "referencedDeclaration": 3679, + "src": "6808:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3682, + "id": 3836, "indexExpression": { "argumentTypes": null, - "id": 3681, + "id": 3835, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6817:4:25", + "referencedDeclaration": 3825, + "src": "6817:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5606,7 +5606,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6808:14:25", + "src": "6808:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5619,12 +5619,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3687, + "id": 3841, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6844:6:25", + "referencedDeclaration": 3829, + "src": "6844:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5642,26 +5642,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3683, + "id": 3837, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6825:8:25", + "referencedDeclaration": 3679, + "src": "6825:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3685, + "id": 3839, "indexExpression": { "argumentTypes": null, - "id": 3684, + "id": 3838, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6834:4:25", + "referencedDeclaration": 3825, + "src": "6834:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5672,27 +5672,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6825:14:25", + "src": "6825:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3686, + "id": 3840, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6825:18:25", + "referencedDeclaration": 3461, + "src": "6825:18:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3688, + "id": 3842, "isConstant": false, "isLValue": false, "isPure": false, @@ -5700,26 +5700,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6825:26:25", + "src": "6825:26:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6808:43:25", + "src": "6808:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3690, + "id": 3844, "nodeType": "ExpressionStatement", - "src": "6808:43:25" + "src": "6808:43:26" }, { "expression": { "argumentTypes": null, - "id": 3706, + "id": 3860, "isConstant": false, "isLValue": false, "isPure": false, @@ -5730,26 +5730,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3691, + "id": 3845, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6861:7:25", + "referencedDeclaration": 3685, + "src": "6861:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3695, + "id": 3849, "indexExpression": { "argumentTypes": null, - "id": 3692, + "id": 3846, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6869:4:25", + "referencedDeclaration": 3825, + "src": "6869:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5760,29 +5760,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6861:13:25", + "src": "6861:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3696, + "id": 3850, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3693, + "id": 3847, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6875:3:25", + "referencedDeclaration": 4491, + "src": "6875:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3694, + "id": 3848, "isConstant": false, "isLValue": false, "isPure": false, @@ -5790,7 +5790,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6875:10:25", + "src": "6875:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5801,7 +5801,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6861:25:25", + "src": "6861:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5814,12 +5814,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3704, + "id": 3858, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6919:6:25", + "referencedDeclaration": 3829, + "src": "6919:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5839,26 +5839,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3697, + "id": 3851, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6889:7:25", + "referencedDeclaration": 3685, + "src": "6889:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3699, + "id": 3853, "indexExpression": { "argumentTypes": null, - "id": 3698, + "id": 3852, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6897:4:25", + "referencedDeclaration": 3825, + "src": "6897:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5869,29 +5869,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:13:25", + "src": "6889:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3702, + "id": 3856, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3700, + "id": 3854, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6903:3:25", + "referencedDeclaration": 4491, + "src": "6903:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3701, + "id": 3855, "isConstant": false, "isLValue": false, "isPure": false, @@ -5899,7 +5899,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6903:10:25", + "src": "6903:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5910,27 +5910,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:25:25", + "src": "6889:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3703, + "id": 3857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6889:29:25", + "referencedDeclaration": 3461, + "src": "6889:29:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3705, + "id": 3859, "isConstant": false, "isLValue": false, "isPure": false, @@ -5938,26 +5938,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6889:37:25", + "src": "6889:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6861:65:25", + "src": "6861:65:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3707, + "id": 3861, "nodeType": "ExpressionStatement", - "src": "6861:65:25" + "src": "6861:65:26" }, { "expression": { "argumentTypes": null, - "id": 3717, + "id": 3871, "isConstant": false, "isLValue": false, "isPure": false, @@ -5966,26 +5966,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3708, + "id": 3862, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6936:8:25", + "referencedDeclaration": 3679, + "src": "6936:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3710, + "id": 3864, "indexExpression": { "argumentTypes": null, - "id": 3709, + "id": 3863, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6945:2:25", + "referencedDeclaration": 3827, + "src": "6945:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5996,7 +5996,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6936:12:25", + "src": "6936:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6009,12 +6009,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3715, + "id": 3869, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6968:6:25", + "referencedDeclaration": 3829, + "src": "6968:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6032,26 +6032,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3711, + "id": 3865, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6951:8:25", + "referencedDeclaration": 3679, + "src": "6951:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3713, + "id": 3867, "indexExpression": { "argumentTypes": null, - "id": 3712, + "id": 3866, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6960:2:25", + "referencedDeclaration": 3827, + "src": "6960:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6062,27 +6062,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6951:12:25", + "src": "6951:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3714, + "id": 3868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "6951:16:25", + "referencedDeclaration": 3439, + "src": "6951:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3716, + "id": 3870, "isConstant": false, "isLValue": false, "isPure": false, @@ -6090,21 +6090,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6951:24:25", + "src": "6951:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6936:39:25", + "src": "6936:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3718, + "id": 3872, "nodeType": "ExpressionStatement", - "src": "6936:39:25" + "src": "6936:39:26" }, { "eventCall": { @@ -6112,12 +6112,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3720, + "id": 3874, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6999:4:25", + "referencedDeclaration": 3825, + "src": "6999:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6125,12 +6125,12 @@ }, { "argumentTypes": null, - "id": 3721, + "id": 3875, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "7005:2:25", + "referencedDeclaration": 3827, + "src": "7005:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6138,12 +6138,12 @@ }, { "argumentTypes": null, - "id": 3722, + "id": 3876, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "7009:6:25", + "referencedDeclaration": 3829, + "src": "7009:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6165,18 +6165,18 @@ "typeString": "uint256" } ], - "id": 3719, + "id": 3873, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "6990:8:25", + "referencedDeclaration": 3570, + "src": "6990:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3723, + "id": 3877, "isConstant": false, "isLValue": false, "isPure": false, @@ -6184,28 +6184,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6990:26:25", + "src": "6990:26:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3724, + "id": 3878, "nodeType": "EmitStatement", - "src": "6985:31:25" + "src": "6985:31:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3725, + "id": 3879, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7033:4:25", + "src": "7033:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6213,15 +6213,15 @@ }, "value": "true" }, - "functionReturnParameters": 3679, - "id": 3726, + "functionReturnParameters": 3833, + "id": 3880, "nodeType": "Return", - "src": "7026:11:25" + "src": "7026:11:26" } ] }, "documentation": null, - "id": 3728, + "id": 3882, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6229,16 +6229,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3676, + "id": 3830, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3671, + "id": 3825, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6729:12:25", + "scope": 3882, + "src": "6729:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6246,10 +6246,10 @@ "typeString": "address" }, "typeName": { - "id": 3670, + "id": 3824, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6729:7:25", + "src": "6729:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6260,11 +6260,11 @@ }, { "constant": false, - "id": 3673, + "id": 3827, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6743:10:25", + "scope": 3882, + "src": "6743:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6272,10 +6272,10 @@ "typeString": "address" }, "typeName": { - "id": 3672, + "id": 3826, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6743:7:25", + "src": "6743:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6286,11 +6286,11 @@ }, { "constant": false, - "id": 3675, + "id": 3829, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6755:11:25", + "scope": 3882, + "src": "6755:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6298,10 +6298,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3674, + "id": 3828, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6755:4:25", + "src": "6755:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6311,20 +6311,20 @@ "visibility": "internal" } ], - "src": "6728:39:25" + "src": "6728:39:26" }, "payable": false, "returnParameters": { - "id": 3679, + "id": 3833, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3678, + "id": 3832, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6784:12:25", + "scope": 3882, + "src": "6784:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6332,10 +6332,10 @@ "typeString": "bool" }, "typeName": { - "id": 3677, + "id": 3831, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6784:4:25", + "src": "6784:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6345,19 +6345,19 @@ "visibility": "internal" } ], - "src": "6783:14:25" + "src": "6783:14:26" }, - "scope": 3813, - "src": "6707:337:25", + "scope": 3967, + "src": "6707:337:26", "stateMutability": "nonpayable", - "superFunction": 3408, + "superFunction": 3562, "visibility": "public" }, { "body": { - "id": 3743, + "id": 3897, "nodeType": "Block", - "src": "7418:52:25", + "src": "7418:52:26", "statements": [ { "expression": { @@ -6366,26 +6366,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3737, + "id": 3891, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7435:7:25", + "referencedDeclaration": 3685, + "src": "7435:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3739, + "id": 3893, "indexExpression": { "argumentTypes": null, - "id": 3738, + "id": 3892, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3730, - "src": "7443:10:25", + "referencedDeclaration": 3884, + "src": "7443:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6396,21 +6396,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:19:25", + "src": "7435:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3741, + "id": 3895, "indexExpression": { "argumentTypes": null, - "id": 3740, + "id": 3894, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "7455:7:25", + "referencedDeclaration": 3886, + "src": "7455:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6421,21 +6421,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:28:25", + "src": "7435:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3736, - "id": 3742, + "functionReturnParameters": 3890, + "id": 3896, "nodeType": "Return", - "src": "7428:35:25" + "src": "7428:35:26" } ] }, "documentation": null, - "id": 3744, + "id": 3898, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6443,16 +6443,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3733, + "id": 3887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3730, + "id": 3884, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7344:18:25", + "scope": 3898, + "src": "7344:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6460,10 +6460,10 @@ "typeString": "address" }, "typeName": { - "id": 3729, + "id": 3883, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7344:7:25", + "src": "7344:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6474,11 +6474,11 @@ }, { "constant": false, - "id": 3732, + "id": 3886, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7364:15:25", + "scope": 3898, + "src": "7364:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6486,10 +6486,10 @@ "typeString": "address" }, "typeName": { - "id": 3731, + "id": 3885, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7364:7:25", + "src": "7364:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6499,20 +6499,20 @@ "visibility": "internal" } ], - "src": "7343:37:25" + "src": "7343:37:26" }, "payable": false, "returnParameters": { - "id": 3736, + "id": 3890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3735, + "id": 3889, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7402:14:25", + "scope": 3898, + "src": "7402:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6520,10 +6520,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3734, + "id": 3888, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7402:4:25", + "src": "7402:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6533,24 +6533,24 @@ "visibility": "internal" } ], - "src": "7401:16:25" + "src": "7401:16:26" }, - "scope": 3813, - "src": "7325:145:25", + "scope": 3967, + "src": "7325:145:26", "stateMutability": "view", - "superFunction": 3379, + "superFunction": 3533, "visibility": "public" }, { "body": { - "id": 3784, + "id": 3938, "nodeType": "Block", - "src": "7926:216:25", + "src": "7926:216:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3762, + "id": 3916, "isConstant": false, "isLValue": false, "isPure": false, @@ -6561,34 +6561,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3755, + "id": 3909, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7936:7:25", + "referencedDeclaration": 3685, + "src": "7936:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3759, + "id": 3913, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3756, + "id": 3910, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7944:3:25", + "referencedDeclaration": 4491, + "src": "7944:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3757, + "id": 3911, "isConstant": false, "isLValue": false, "isPure": false, @@ -6596,7 +6596,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7944:10:25", + "src": "7944:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6607,21 +6607,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7936:19:25", + "src": "7936:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3760, + "id": 3914, "indexExpression": { "argumentTypes": null, - "id": 3758, + "id": 3912, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "7956:7:25", + "referencedDeclaration": 3900, + "src": "7956:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6632,7 +6632,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7936:28:25", + "src": "7936:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6642,26 +6642,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3761, + "id": 3915, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "7967:6:25", + "referencedDeclaration": 3902, + "src": "7967:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7936:37:25", + "src": "7936:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3763, + "id": 3917, "nodeType": "ExpressionStatement", - "src": "7936:37:25" + "src": "7936:37:26" }, { "eventCall": { @@ -6671,18 +6671,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3765, + "id": 3919, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7997:3:25", + "referencedDeclaration": 4491, + "src": "7997:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3766, + "id": 3920, "isConstant": false, "isLValue": false, "isPure": false, @@ -6690,7 +6690,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7997:10:25", + "src": "7997:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6698,12 +6698,12 @@ }, { "argumentTypes": null, - "id": 3767, + "id": 3921, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8009:7:25", + "referencedDeclaration": 3900, + "src": "8009:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6711,12 +6711,12 @@ }, { "argumentTypes": null, - "id": 3768, + "id": 3922, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8018:6:25", + "referencedDeclaration": 3902, + "src": "8018:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6738,18 +6738,18 @@ "typeString": "uint256" } ], - "id": 3764, + "id": 3918, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "7988:8:25", + "referencedDeclaration": 3578, + "src": "7988:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3769, + "id": 3923, "isConstant": false, "isLValue": false, "isPure": false, @@ -6757,15 +6757,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7988:37:25", + "src": "7988:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3770, + "id": 3924, "nodeType": "EmitStatement", - "src": "7983:42:25" + "src": "7983:42:26" }, { "expression": { @@ -6775,18 +6775,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3775, + "id": 3929, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "8083:3:25", + "referencedDeclaration": 4491, + "src": "8083:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3776, + "id": 3930, "isConstant": false, "isLValue": false, "isPure": false, @@ -6794,7 +6794,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8083:10:25", + "src": "8083:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6802,12 +6802,12 @@ }, { "argumentTypes": null, - "id": 3777, + "id": 3931, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8095:6:25", + "referencedDeclaration": 3902, + "src": "8095:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6815,25 +6815,25 @@ }, { "argumentTypes": null, - "id": 3778, + "id": 3932, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3907, - "src": "8103:4:25", + "referencedDeclaration": 4574, + "src": "8103:4:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" } }, { "argumentTypes": null, - "id": 3779, + "id": 3933, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3750, - "src": "8109:4:25", + "referencedDeclaration": 3904, + "src": "8109:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6851,7 +6851,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" }, { @@ -6864,12 +6864,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3772, + "id": 3926, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8058:7:25", + "referencedDeclaration": 3900, + "src": "8058:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6883,18 +6883,18 @@ "typeString": "address" } ], - "id": 3771, + "id": 3925, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3437, - "src": "8035:22:25", + "referencedDeclaration": 3591, + "src": "8035:22:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, - "id": 3773, + "id": 3927, "isConstant": false, "isLValue": false, "isPure": false, @@ -6902,27 +6902,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:31:25", + "src": "8035:31:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", "typeString": "contract ApproveAndCallFallBack" } }, - "id": 3774, + "id": 3928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", - "referencedDeclaration": 3436, - "src": "8035:47:25", + "referencedDeclaration": 3590, + "src": "8035:47:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,address,bytes memory) external" } }, - "id": 3780, + "id": 3934, "isConstant": false, "isLValue": false, "isPure": false, @@ -6930,28 +6930,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:79:25", + "src": "8035:79:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3781, + "id": 3935, "nodeType": "ExpressionStatement", - "src": "8035:79:25" + "src": "8035:79:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3782, + "id": 3936, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8131:4:25", + "src": "8131:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6959,15 +6959,15 @@ }, "value": "true" }, - "functionReturnParameters": 3754, - "id": 3783, + "functionReturnParameters": 3908, + "id": 3937, "nodeType": "Return", - "src": "8124:11:25" + "src": "8124:11:26" } ] }, "documentation": null, - "id": 3785, + "id": 3939, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6975,16 +6975,16 @@ "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 3751, + "id": 3905, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3746, + "id": 3900, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7854:15:25", + "scope": 3939, + "src": "7854:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6992,10 +6992,10 @@ "typeString": "address" }, "typeName": { - "id": 3745, + "id": 3899, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7854:7:25", + "src": "7854:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7006,11 +7006,11 @@ }, { "constant": false, - "id": 3748, + "id": 3902, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7871:11:25", + "scope": 3939, + "src": "7871:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7018,10 +7018,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3747, + "id": 3901, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7871:4:25", + "src": "7871:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7032,11 +7032,11 @@ }, { "constant": false, - "id": 3750, + "id": 3904, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7884:10:25", + "scope": 3939, + "src": "7884:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7044,10 +7044,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3749, + "id": 3903, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7884:5:25", + "src": "7884:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7057,20 +7057,20 @@ "visibility": "internal" } ], - "src": "7853:42:25" + "src": "7853:42:26" }, "payable": false, "returnParameters": { - "id": 3754, + "id": 3908, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3753, + "id": 3907, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7912:12:25", + "scope": 3939, + "src": "7912:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7078,10 +7078,10 @@ "typeString": "bool" }, "typeName": { - "id": 3752, + "id": 3906, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7912:4:25", + "src": "7912:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7091,19 +7091,19 @@ "visibility": "internal" } ], - "src": "7911:14:25" + "src": "7911:14:26" }, - "scope": 3813, - "src": "7830:312:25", + "scope": 3967, + "src": "7830:312:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3791, + "id": 3945, "nodeType": "Block", - "src": "8360:25:25", + "src": "8360:25:26", "statements": [ { "expression": { @@ -7111,21 +7111,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3788, + "id": 3942, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 3833, - 3834 + 4496, + 4497 ], - "referencedDeclaration": 3833, - "src": "8370:6:25", + "referencedDeclaration": 4496, + "src": "8370:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 3789, + "id": 3943, "isConstant": false, "isLValue": false, "isPure": false, @@ -7133,20 +7133,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8370:8:25", + "src": "8370:8:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3790, + "id": 3944, "nodeType": "ExpressionStatement", - "src": "8370:8:25" + "src": "8370:8:26" } ] }, "documentation": null, - "id": 3792, + "id": 3946, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7154,29 +7154,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3786, + "id": 3940, "nodeType": "ParameterList", "parameters": [], - "src": "8342:2:25" + "src": "8342:2:26" }, "payable": true, "returnParameters": { - "id": 3787, + "id": 3941, "nodeType": "ParameterList", "parameters": [], - "src": "8360:0:25" + "src": "8360:0:26" }, - "scope": 3813, - "src": "8333:52:25", + "scope": 3967, + "src": "8333:52:26", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3811, + "id": 3965, "nodeType": "Block", - "src": "8723:76:25", + "src": "8723:76:26", "statements": [ { "expression": { @@ -7184,12 +7184,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3807, + "id": 3961, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "8778:5:25", + "referencedDeclaration": 3593, + "src": "8778:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7197,12 +7197,12 @@ }, { "argumentTypes": null, - "id": 3808, + "id": 3962, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3796, - "src": "8785:6:25", + "referencedDeclaration": 3950, + "src": "8785:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7225,12 +7225,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3804, + "id": 3958, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3794, - "src": "8755:12:25", + "referencedDeclaration": 3948, + "src": "8755:12:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7244,18 +7244,18 @@ "typeString": "address" } ], - "id": 3803, + "id": 3957, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3425, - "src": "8740:14:25", + "referencedDeclaration": 3579, + "src": "8740:14:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", "typeString": "type(contract ERC20Interface)" } }, - "id": 3805, + "id": 3959, "isConstant": false, "isLValue": false, "isPure": false, @@ -7263,27 +7263,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:28:25", + "src": "8740:28:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3806, + "id": 3960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 3388, - "src": "8740:37:25", + "referencedDeclaration": 3542, + "src": "8740:37:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 3809, + "id": 3963, "isConstant": false, "isLValue": false, "isPure": false, @@ -7291,58 +7291,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:52:25", + "src": "8740:52:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3802, - "id": 3810, + "functionReturnParameters": 3956, + "id": 3964, "nodeType": "Return", - "src": "8733:59:25" + "src": "8733:59:26" } ] }, "documentation": null, - "id": 3812, + "id": 3966, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3799, + "id": 3953, "modifierName": { "argumentTypes": null, - "id": 3798, + "id": 3952, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "8690:9:25", + "referencedDeclaration": 3621, + "src": "8690:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8690:9:25" + "src": "8690:9:26" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 3797, + "id": 3951, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3794, + "id": 3948, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8648:20:25", + "scope": 3966, + "src": "8648:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7350,10 +7350,10 @@ "typeString": "address" }, "typeName": { - "id": 3793, + "id": 3947, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8648:7:25", + "src": "8648:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7364,11 +7364,11 @@ }, { "constant": false, - "id": 3796, + "id": 3950, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8670:11:25", + "scope": 3966, + "src": "8670:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7376,10 +7376,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3795, + "id": 3949, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8670:4:25", + "src": "8670:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7389,20 +7389,20 @@ "visibility": "internal" } ], - "src": "8647:35:25" + "src": "8647:35:26" }, "payable": false, "returnParameters": { - "id": 3802, + "id": 3956, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3801, + "id": 3955, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8709:12:25", + "scope": 3966, + "src": "8709:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7410,10 +7410,10 @@ "typeString": "bool" }, "typeName": { - "id": 3800, + "id": 3954, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8709:4:25", + "src": "8709:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7423,45 +7423,45 @@ "visibility": "internal" } ], - "src": "8708:14:25" + "src": "8708:14:26" }, - "scope": 3813, - "src": "8617:182:25", + "scope": 3967, + "src": "8617:182:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "3506:5295:25" + "scope": 3968, + "src": "3506:5295:26" } ], - "src": "0:8801:25" + "src": "0:8801:26" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ - 3437 + 3591 ], "ERC20Interface": [ - 3425 + 3579 ], "Owned": [ - 3506 + 3660 ], "SafeMath": [ - 3358 + 3512 ], "TestToken": [ - 3813 + 3967 ] }, - "id": 3814, + "id": 3968, "nodeType": "SourceUnit", "nodes": [ { - "id": 3263, + "id": 3417, "literals": [ "solidity", "^", @@ -7469,7 +7469,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:24:26" }, { "baseContracts": [], @@ -7477,35 +7477,35 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 3358, + "id": 3512, "linearizedBaseContracts": [ - 3358 + 3512 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3284, + "id": 3438, "nodeType": "Block", - "src": "719:51:25", + "src": "719:51:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3276, + "id": 3430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3272, + "id": 3426, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "729:1:25", + "referencedDeclaration": 3424, + "src": "729:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7519,19 +7519,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3275, + "id": 3429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3273, + "id": 3427, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "733:1:25", + "referencedDeclaration": 3419, + "src": "733:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7541,32 +7541,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 3274, + "id": 3428, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3267, - "src": "737:1:25", + "referencedDeclaration": 3421, + "src": "737:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:5:25", + "src": "733:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "729:9:25", + "src": "729:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3277, + "id": 3431, "nodeType": "ExpressionStatement", - "src": "729:9:25" + "src": "729:9:26" }, { "expression": { @@ -7578,19 +7578,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3281, + "id": 3435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3279, + "id": 3433, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "756:1:25", + "referencedDeclaration": 3424, + "src": "756:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7600,18 +7600,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 3280, + "id": 3434, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "761:1:25", + "referencedDeclaration": 3419, + "src": "761:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "756:6:25", + "src": "756:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7625,21 +7625,21 @@ "typeString": "bool" } ], - "id": 3278, + "id": 3432, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "748:7:25", + "referencedDeclaration": 4494, + "src": "748:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3282, + "id": 3436, "isConstant": false, "isLValue": false, "isPure": false, @@ -7647,20 +7647,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:15:25", + "src": "748:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3283, + "id": 3437, "nodeType": "ExpressionStatement", - "src": "748:15:25" + "src": "748:15:26" } ] }, "documentation": null, - "id": 3285, + "id": 3439, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7668,16 +7668,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 3268, + "id": 3422, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3265, + "id": 3419, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "672:6:25", + "scope": 3439, + "src": "672:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7685,10 +7685,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3264, + "id": 3418, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "672:4:25", + "src": "672:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7699,11 +7699,11 @@ }, { "constant": false, - "id": 3267, + "id": 3421, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "680:6:25", + "scope": 3439, + "src": "680:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7711,10 +7711,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3266, + "id": 3420, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "680:4:25", + "src": "680:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7724,20 +7724,20 @@ "visibility": "internal" } ], - "src": "671:16:25" + "src": "671:16:26" }, "payable": false, "returnParameters": { - "id": 3271, + "id": 3425, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3270, + "id": 3424, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3285, - "src": "711:6:25", + "scope": 3439, + "src": "711:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7745,10 +7745,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3269, + "id": 3423, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "711:4:25", + "src": "711:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7758,19 +7758,19 @@ "visibility": "internal" } ], - "src": "710:8:25" + "src": "710:8:26" }, - "scope": 3358, - "src": "659:111:25", + "scope": 3512, + "src": "659:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3306, + "id": 3460, "nodeType": "Block", - "src": "835:51:25", + "src": "835:51:26", "statements": [ { "expression": { @@ -7782,19 +7782,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3297, + "id": 3451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3295, + "id": 3449, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "853:1:25", + "referencedDeclaration": 3443, + "src": "853:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7804,18 +7804,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 3296, + "id": 3450, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "858:1:25", + "referencedDeclaration": 3441, + "src": "858:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "853:6:25", + "src": "853:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7829,21 +7829,21 @@ "typeString": "bool" } ], - "id": 3294, + "id": 3448, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "845:7:25", + "referencedDeclaration": 4494, + "src": "845:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3298, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, @@ -7851,32 +7851,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:15:25", + "src": "845:15:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3299, + "id": 3453, "nodeType": "ExpressionStatement", - "src": "845:15:25" + "src": "845:15:26" }, { "expression": { "argumentTypes": null, - "id": 3304, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3300, + "id": 3454, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3292, - "src": "870:1:25", + "referencedDeclaration": 3446, + "src": "870:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7890,19 +7890,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3303, + "id": 3457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3301, + "id": 3455, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "874:1:25", + "referencedDeclaration": 3441, + "src": "874:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7912,37 +7912,37 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 3302, + "id": 3456, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3289, - "src": "878:1:25", + "referencedDeclaration": 3443, + "src": "878:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "874:5:25", + "src": "874:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "870:9:25", + "src": "870:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3305, + "id": 3459, "nodeType": "ExpressionStatement", - "src": "870:9:25" + "src": "870:9:26" } ] }, "documentation": null, - "id": 3307, + "id": 3461, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7950,16 +7950,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 3290, + "id": 3444, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3287, + "id": 3441, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "788:6:25", + "scope": 3461, + "src": "788:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7967,10 +7967,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3286, + "id": 3440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "788:4:25", + "src": "788:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7981,11 +7981,11 @@ }, { "constant": false, - "id": 3289, + "id": 3443, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "796:6:25", + "scope": 3461, + "src": "796:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7993,10 +7993,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3288, + "id": 3442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "796:4:25", + "src": "796:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8006,20 +8006,20 @@ "visibility": "internal" } ], - "src": "787:16:25" + "src": "787:16:26" }, "payable": false, "returnParameters": { - "id": 3293, + "id": 3447, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3292, + "id": 3446, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "827:6:25", + "scope": 3461, + "src": "827:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8027,10 +8027,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3291, + "id": 3445, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:25", + "src": "827:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8040,36 +8040,36 @@ "visibility": "internal" } ], - "src": "826:8:25" + "src": "826:8:26" }, - "scope": 3358, - "src": "775:111:25", + "scope": 3512, + "src": "775:111:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3334, + "id": 3488, "nodeType": "Block", - "src": "951:65:25", + "src": "951:65:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3320, + "id": 3474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3316, + "id": 3470, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "961:1:25", + "referencedDeclaration": 3468, + "src": "961:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8083,19 +8083,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3319, + "id": 3473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3317, + "id": 3471, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "965:1:25", + "referencedDeclaration": 3463, + "src": "965:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8105,32 +8105,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 3318, + "id": 3472, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "969:1:25", + "referencedDeclaration": 3465, + "src": "969:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "965:5:25", + "src": "965:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "961:9:25", + "src": "961:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3321, + "id": 3475, "nodeType": "ExpressionStatement", - "src": "961:9:25" + "src": "961:9:26" }, { "expression": { @@ -8142,7 +8142,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3331, + "id": 3485, "isConstant": false, "isLValue": false, "isPure": false, @@ -8153,19 +8153,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3325, + "id": 3479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3323, + "id": 3477, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "988:1:25", + "referencedDeclaration": 3463, + "src": "988:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8176,14 +8176,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3324, + "id": 3478, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "993:1:25", + "src": "993:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8191,7 +8191,7 @@ }, "value": "0" }, - "src": "988:6:25", + "src": "988:6:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8205,7 +8205,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3330, + "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, @@ -8216,19 +8216,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3328, + "id": 3482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3326, + "id": 3480, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "998:1:25", + "referencedDeclaration": 3468, + "src": "998:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8238,18 +8238,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3327, + "id": 3481, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3309, - "src": "1002:1:25", + "referencedDeclaration": 3463, + "src": "1002:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:5:25", + "src": "998:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8259,24 +8259,24 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3329, + "id": 3483, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3311, - "src": "1007:1:25", + "referencedDeclaration": 3465, + "src": "1007:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:25", + "src": "998:10:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "988:20:25", + "src": "988:20:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8290,21 +8290,21 @@ "typeString": "bool" } ], - "id": 3322, + "id": 3476, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "980:7:25", + "referencedDeclaration": 4494, + "src": "980:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3332, + "id": 3486, "isConstant": false, "isLValue": false, "isPure": false, @@ -8312,20 +8312,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "980:29:25", + "src": "980:29:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3333, + "id": 3487, "nodeType": "ExpressionStatement", - "src": "980:29:25" + "src": "980:29:26" } ] }, "documentation": null, - "id": 3335, + "id": 3489, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8333,16 +8333,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 3312, + "id": 3466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3309, + "id": 3463, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "904:6:25", + "scope": 3489, + "src": "904:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8350,10 +8350,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3308, + "id": 3462, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "904:4:25", + "src": "904:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8364,11 +8364,11 @@ }, { "constant": false, - "id": 3311, + "id": 3465, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "912:6:25", + "scope": 3489, + "src": "912:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8376,10 +8376,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3310, + "id": 3464, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "912:4:25", + "src": "912:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8389,20 +8389,20 @@ "visibility": "internal" } ], - "src": "903:16:25" + "src": "903:16:26" }, "payable": false, "returnParameters": { - "id": 3315, + "id": 3469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3314, + "id": 3468, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3335, - "src": "943:6:25", + "scope": 3489, + "src": "943:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8410,10 +8410,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3313, + "id": 3467, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "943:4:25", + "src": "943:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8423,19 +8423,19 @@ "visibility": "internal" } ], - "src": "942:8:25" + "src": "942:8:26" }, - "scope": 3358, - "src": "891:125:25", + "scope": 3512, + "src": "891:125:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 3356, + "id": 3510, "nodeType": "Block", - "src": "1081:50:25", + "src": "1081:50:26", "statements": [ { "expression": { @@ -8447,19 +8447,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3347, + "id": 3501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3345, + "id": 3499, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1099:1:25", + "referencedDeclaration": 3493, + "src": "1099:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8470,14 +8470,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3346, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:1:25", + "src": "1103:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8485,7 +8485,7 @@ }, "value": "0" }, - "src": "1099:5:25", + "src": "1099:5:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8499,21 +8499,21 @@ "typeString": "bool" } ], - "id": 3344, + "id": 3498, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "1091:7:25", + "referencedDeclaration": 4494, + "src": "1091:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3348, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, @@ -8521,32 +8521,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:14:25", + "src": "1091:14:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3349, + "id": 3503, "nodeType": "ExpressionStatement", - "src": "1091:14:25" + "src": "1091:14:26" }, { "expression": { "argumentTypes": null, - "id": 3354, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3350, + "id": 3504, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3342, - "src": "1115:1:25", + "referencedDeclaration": 3496, + "src": "1115:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8560,19 +8560,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3353, + "id": 3507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3351, + "id": 3505, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "1119:1:25", + "referencedDeclaration": 3491, + "src": "1119:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8582,37 +8582,37 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3352, + "id": 3506, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3339, - "src": "1123:1:25", + "referencedDeclaration": 3493, + "src": "1123:1:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:5:25", + "src": "1119:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1115:9:25", + "src": "1115:9:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3355, + "id": 3509, "nodeType": "ExpressionStatement", - "src": "1115:9:25" + "src": "1115:9:26" } ] }, "documentation": null, - "id": 3357, + "id": 3511, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8620,16 +8620,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 3340, + "id": 3494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3337, + "id": 3491, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1034:6:25", + "scope": 3511, + "src": "1034:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8637,10 +8637,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3336, + "id": 3490, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1034:4:25", + "src": "1034:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8651,11 +8651,11 @@ }, { "constant": false, - "id": 3339, + "id": 3493, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1042:6:25", + "scope": 3511, + "src": "1042:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8663,10 +8663,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3338, + "id": 3492, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1042:4:25", + "src": "1042:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8676,20 +8676,20 @@ "visibility": "internal" } ], - "src": "1033:16:25" + "src": "1033:16:26" }, "payable": false, "returnParameters": { - "id": 3343, + "id": 3497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3342, + "id": 3496, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "1073:6:25", + "scope": 3511, + "src": "1073:6:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8697,10 +8697,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3341, + "id": 3495, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1073:4:25", + "src": "1073:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8710,17 +8710,17 @@ "visibility": "internal" } ], - "src": "1072:8:25" + "src": "1072:8:26" }, - "scope": 3358, - "src": "1021:110:25", + "scope": 3512, + "src": "1021:110:26", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 3814, - "src": "636:497:25" + "scope": 3968, + "src": "636:497:26" }, { "baseContracts": [], @@ -8728,9 +8728,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3425, + "id": 3579, "linearizedBaseContracts": [ - 3425 + 3579 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", @@ -8738,7 +8738,7 @@ { "body": null, "documentation": null, - "id": 3363, + "id": 3517, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8746,23 +8746,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3359, + "id": 3513, "nodeType": "ParameterList", "parameters": [], - "src": "1445:2:25" + "src": "1445:2:26" }, "payable": false, "returnParameters": { - "id": 3362, + "id": 3516, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3361, + "id": 3515, "name": "", "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "1473:4:25", + "scope": 3517, + "src": "1473:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8770,10 +8770,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3360, + "id": 3514, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1473:4:25", + "src": "1473:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8783,10 +8783,10 @@ "visibility": "internal" } ], - "src": "1472:6:25" + "src": "1472:6:26" }, - "scope": 3425, - "src": "1425:54:25", + "scope": 3579, + "src": "1425:54:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8794,7 +8794,7 @@ { "body": null, "documentation": null, - "id": 3370, + "id": 3524, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8802,16 +8802,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3366, + "id": 3520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3365, + "id": 3519, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1503:18:25", + "scope": 3524, + "src": "1503:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8819,10 +8819,10 @@ "typeString": "address" }, "typeName": { - "id": 3364, + "id": 3518, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1503:7:25", + "src": "1503:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8832,20 +8832,20 @@ "visibility": "internal" } ], - "src": "1502:20:25" + "src": "1502:20:26" }, "payable": false, "returnParameters": { - "id": 3369, + "id": 3523, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3368, + "id": 3522, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "1548:12:25", + "scope": 3524, + "src": "1548:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8853,10 +8853,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3367, + "id": 3521, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:25", + "src": "1548:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8866,10 +8866,10 @@ "visibility": "internal" } ], - "src": "1547:14:25" + "src": "1547:14:26" }, - "scope": 3425, - "src": "1484:78:25", + "scope": 3579, + "src": "1484:78:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8877,7 +8877,7 @@ { "body": null, "documentation": null, - "id": 3379, + "id": 3533, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8885,16 +8885,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3375, + "id": 3529, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3372, + "id": 3526, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1586:18:25", + "scope": 3533, + "src": "1586:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8902,10 +8902,10 @@ "typeString": "address" }, "typeName": { - "id": 3371, + "id": 3525, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:25", + "src": "1586:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8916,11 +8916,11 @@ }, { "constant": false, - "id": 3374, + "id": 3528, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1606:15:25", + "scope": 3533, + "src": "1606:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8928,10 +8928,10 @@ "typeString": "address" }, "typeName": { - "id": 3373, + "id": 3527, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1606:7:25", + "src": "1606:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8941,20 +8941,20 @@ "visibility": "internal" } ], - "src": "1585:37:25" + "src": "1585:37:26" }, "payable": false, "returnParameters": { - "id": 3378, + "id": 3532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3377, + "id": 3531, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1648:14:25", + "scope": 3533, + "src": "1648:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8962,10 +8962,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3376, + "id": 3530, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1648:4:25", + "src": "1648:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8975,10 +8975,10 @@ "visibility": "internal" } ], - "src": "1647:16:25" + "src": "1647:16:26" }, - "scope": 3425, - "src": "1567:97:25", + "scope": 3579, + "src": "1567:97:26", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8986,7 +8986,7 @@ { "body": null, "documentation": null, - "id": 3388, + "id": 3542, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -8994,16 +8994,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3384, + "id": 3538, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3381, + "id": 3535, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1687:10:25", + "scope": 3542, + "src": "1687:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9011,10 +9011,10 @@ "typeString": "address" }, "typeName": { - "id": 3380, + "id": 3534, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:25", + "src": "1687:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9025,11 +9025,11 @@ }, { "constant": false, - "id": 3383, + "id": 3537, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1699:11:25", + "scope": 3542, + "src": "1699:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9037,10 +9037,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3382, + "id": 3536, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:25", + "src": "1699:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9050,20 +9050,20 @@ "visibility": "internal" } ], - "src": "1686:25:25" + "src": "1686:25:26" }, "payable": false, "returnParameters": { - "id": 3387, + "id": 3541, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3386, + "id": 3540, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "1728:12:25", + "scope": 3542, + "src": "1728:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9071,10 +9071,10 @@ "typeString": "bool" }, "typeName": { - "id": 3385, + "id": 3539, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1728:4:25", + "src": "1728:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9084,10 +9084,10 @@ "visibility": "internal" } ], - "src": "1727:14:25" + "src": "1727:14:26" }, - "scope": 3425, - "src": "1669:73:25", + "scope": 3579, + "src": "1669:73:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -9095,7 +9095,7 @@ { "body": null, "documentation": null, - "id": 3397, + "id": 3551, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -9103,16 +9103,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3393, + "id": 3547, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3390, + "id": 3544, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1764:15:25", + "scope": 3551, + "src": "1764:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9120,10 +9120,10 @@ "typeString": "address" }, "typeName": { - "id": 3389, + "id": 3543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:25", + "src": "1764:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9134,11 +9134,11 @@ }, { "constant": false, - "id": 3392, + "id": 3546, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1781:11:25", + "scope": 3551, + "src": "1781:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9146,10 +9146,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3391, + "id": 3545, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:25", + "src": "1781:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9159,20 +9159,20 @@ "visibility": "internal" } ], - "src": "1763:30:25" + "src": "1763:30:26" }, "payable": false, "returnParameters": { - "id": 3396, + "id": 3550, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3395, + "id": 3549, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3397, - "src": "1810:12:25", + "scope": 3551, + "src": "1810:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9180,10 +9180,10 @@ "typeString": "bool" }, "typeName": { - "id": 3394, + "id": 3548, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1810:4:25", + "src": "1810:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9193,10 +9193,10 @@ "visibility": "internal" } ], - "src": "1809:14:25" + "src": "1809:14:26" }, - "scope": 3425, - "src": "1747:77:25", + "scope": 3579, + "src": "1747:77:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -9204,7 +9204,7 @@ { "body": null, "documentation": null, - "id": 3408, + "id": 3562, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -9212,16 +9212,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3404, + "id": 3558, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3399, + "id": 3553, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1851:12:25", + "scope": 3562, + "src": "1851:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9229,10 +9229,10 @@ "typeString": "address" }, "typeName": { - "id": 3398, + "id": 3552, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1851:7:25", + "src": "1851:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9243,11 +9243,11 @@ }, { "constant": false, - "id": 3401, + "id": 3555, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1865:10:25", + "scope": 3562, + "src": "1865:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9255,10 +9255,10 @@ "typeString": "address" }, "typeName": { - "id": 3400, + "id": 3554, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:25", + "src": "1865:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9269,11 +9269,11 @@ }, { "constant": false, - "id": 3403, + "id": 3557, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1877:11:25", + "scope": 3562, + "src": "1877:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9281,10 +9281,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3402, + "id": 3556, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1877:4:25", + "src": "1877:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9294,20 +9294,20 @@ "visibility": "internal" } ], - "src": "1850:39:25" + "src": "1850:39:26" }, "payable": false, "returnParameters": { - "id": 3407, + "id": 3561, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3406, + "id": 3560, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3408, - "src": "1906:12:25", + "scope": 3562, + "src": "1906:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9315,10 +9315,10 @@ "typeString": "bool" }, "typeName": { - "id": 3405, + "id": 3559, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1906:4:25", + "src": "1906:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9328,10 +9328,10 @@ "visibility": "internal" } ], - "src": "1905:14:25" + "src": "1905:14:26" }, - "scope": 3425, - "src": "1829:91:25", + "scope": 3579, + "src": "1829:91:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -9339,21 +9339,21 @@ { "anonymous": false, "documentation": null, - "id": 3416, + "id": 3570, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 3415, + "id": 3569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3410, + "id": 3564, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1941:20:25", + "scope": 3570, + "src": "1941:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9361,10 +9361,10 @@ "typeString": "address" }, "typeName": { - "id": 3409, + "id": 3563, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1941:7:25", + "src": "1941:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9375,12 +9375,12 @@ }, { "constant": false, - "id": 3412, + "id": 3566, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1963:18:25", + "scope": 3570, + "src": "1963:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9388,10 +9388,10 @@ "typeString": "address" }, "typeName": { - "id": 3411, + "id": 3565, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1963:7:25", + "src": "1963:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9402,12 +9402,12 @@ }, { "constant": false, - "id": 3414, + "id": 3568, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3416, - "src": "1983:11:25", + "scope": 3570, + "src": "1983:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9415,10 +9415,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3413, + "id": 3567, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:25", + "src": "1983:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9428,28 +9428,28 @@ "visibility": "internal" } ], - "src": "1940:55:25" + "src": "1940:55:26" }, - "src": "1926:70:25" + "src": "1926:70:26" }, { "anonymous": false, "documentation": null, - "id": 3424, + "id": 3578, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 3423, + "id": 3577, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3418, + "id": 3572, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2016:26:25", + "scope": 3578, + "src": "2016:26:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9457,10 +9457,10 @@ "typeString": "address" }, "typeName": { - "id": 3417, + "id": 3571, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2016:7:25", + "src": "2016:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9471,12 +9471,12 @@ }, { "constant": false, - "id": 3420, + "id": 3574, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2044:23:25", + "scope": 3578, + "src": "2044:23:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9484,10 +9484,10 @@ "typeString": "address" }, "typeName": { - "id": 3419, + "id": 3573, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2044:7:25", + "src": "2044:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9498,12 +9498,12 @@ }, { "constant": false, - "id": 3422, + "id": 3576, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3424, - "src": "2069:11:25", + "scope": 3578, + "src": "2069:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9511,10 +9511,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3421, + "id": 3575, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2069:4:25", + "src": "2069:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9524,13 +9524,13 @@ "visibility": "internal" } ], - "src": "2015:66:25" + "src": "2015:66:26" }, - "src": "2001:81:25" + "src": "2001:81:26" } ], - "scope": 3814, - "src": "1395:689:25" + "scope": 3968, + "src": "1395:689:26" }, { "baseContracts": [], @@ -9538,9 +9538,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 3437, + "id": 3591, "linearizedBaseContracts": [ - 3437 + 3591 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", @@ -9548,7 +9548,7 @@ { "body": null, "documentation": null, - "id": 3436, + "id": 3590, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -9556,16 +9556,16 @@ "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 3434, + "id": 3588, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3427, + "id": 3581, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2416:12:25", + "scope": 3590, + "src": "2416:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9573,10 +9573,10 @@ "typeString": "address" }, "typeName": { - "id": 3426, + "id": 3580, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2416:7:25", + "src": "2416:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9587,11 +9587,11 @@ }, { "constant": false, - "id": 3429, + "id": 3583, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2430:14:25", + "scope": 3590, + "src": "2430:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9599,10 +9599,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3428, + "id": 3582, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2430:7:25", + "src": "2430:7:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9613,11 +9613,11 @@ }, { "constant": false, - "id": 3431, + "id": 3585, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2446:13:25", + "scope": 3590, + "src": "2446:13:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9625,10 +9625,10 @@ "typeString": "address" }, "typeName": { - "id": 3430, + "id": 3584, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2446:7:25", + "src": "2446:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9639,11 +9639,11 @@ }, { "constant": false, - "id": 3433, + "id": 3587, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "2461:10:25", + "scope": 3590, + "src": "2461:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9651,10 +9651,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3432, + "id": 3586, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2461:5:25", + "src": "2461:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9664,24 +9664,24 @@ "visibility": "internal" } ], - "src": "2415:57:25" + "src": "2415:57:26" }, "payable": false, "returnParameters": { - "id": 3435, + "id": 3589, "nodeType": "ParameterList", "parameters": [], - "src": "2479:0:25" + "src": "2479:0:26" }, - "scope": 3437, - "src": "2391:89:25", + "scope": 3591, + "src": "2391:89:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2353:129:25" + "scope": 3968, + "src": "2353:129:26" }, { "baseContracts": [], @@ -9689,20 +9689,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3506, + "id": 3660, "linearizedBaseContracts": [ - 3506 + 3660 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 3439, + "id": 3593, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2684:20:25", + "scope": 3660, + "src": "2684:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -9710,10 +9710,10 @@ "typeString": "address" }, "typeName": { - "id": 3438, + "id": 3592, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2684:7:25", + "src": "2684:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9724,11 +9724,11 @@ }, { "constant": false, - "id": 3441, + "id": 3595, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 3506, - "src": "2710:23:25", + "scope": 3660, + "src": "2710:23:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -9736,10 +9736,10 @@ "typeString": "address" }, "typeName": { - "id": 3440, + "id": 3594, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2710:7:25", + "src": "2710:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9751,21 +9751,21 @@ { "anonymous": false, "documentation": null, - "id": 3447, + "id": 3601, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 3446, + "id": 3600, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3443, + "id": 3597, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2767:21:25", + "scope": 3601, + "src": "2767:21:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9773,10 +9773,10 @@ "typeString": "address" }, "typeName": { - "id": 3442, + "id": 3596, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2767:7:25", + "src": "2767:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9787,12 +9787,12 @@ }, { "constant": false, - "id": 3445, + "id": 3599, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 3447, - "src": "2790:19:25", + "scope": 3601, + "src": "2790:19:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9800,10 +9800,10 @@ "typeString": "address" }, "typeName": { - "id": 3444, + "id": 3598, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2790:7:25", + "src": "2790:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9813,32 +9813,32 @@ "visibility": "internal" } ], - "src": "2766:44:25" + "src": "2766:44:26" }, - "src": "2740:71:25" + "src": "2740:71:26" }, { "body": { - "id": 3455, + "id": 3609, "nodeType": "Block", - "src": "2838:35:25", + "src": "2838:35:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3453, + "id": 3607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3450, + "id": 3604, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2848:5:25", + "referencedDeclaration": 3593, + "src": "2848:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9850,18 +9850,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3451, + "id": 3605, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2856:3:25", + "referencedDeclaration": 4491, + "src": "2856:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3452, + "id": 3606, "isConstant": false, "isLValue": false, "isPure": false, @@ -9869,26 +9869,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2856:10:25", + "src": "2856:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2848:18:25", + "src": "2848:18:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3454, + "id": 3608, "nodeType": "ExpressionStatement", - "src": "2848:18:25" + "src": "2848:18:26" } ] }, "documentation": null, - "id": 3456, + "id": 3610, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -9896,29 +9896,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3448, + "id": 3602, "nodeType": "ParameterList", "parameters": [], - "src": "2828:2:25" + "src": "2828:2:26" }, "payable": false, "returnParameters": { - "id": 3449, + "id": 3603, "nodeType": "ParameterList", "parameters": [], - "src": "2838:0:25" + "src": "2838:0:26" }, - "scope": 3506, - "src": "2817:56:25", + "scope": 3660, + "src": "2817:56:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3466, + "id": 3620, "nodeType": "Block", - "src": "2898:56:25", + "src": "2898:56:26", "statements": [ { "expression": { @@ -9930,7 +9930,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3462, + "id": 3616, "isConstant": false, "isLValue": false, "isPure": false, @@ -9939,18 +9939,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3459, + "id": 3613, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "2916:3:25", + "referencedDeclaration": 4491, + "src": "2916:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3460, + "id": 3614, "isConstant": false, "isLValue": false, "isPure": false, @@ -9958,7 +9958,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2916:10:25", + "src": "2916:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9968,18 +9968,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3461, + "id": 3615, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "2930:5:25", + "referencedDeclaration": 3593, + "src": "2930:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2916:19:25", + "src": "2916:19:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9993,21 +9993,21 @@ "typeString": "bool" } ], - "id": 3458, + "id": 3612, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "2908:7:25", + "referencedDeclaration": 4494, + "src": "2908:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3463, + "id": 3617, "isConstant": false, "isLValue": false, "isPure": false, @@ -10015,58 +10015,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:28:25", + "src": "2908:28:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3464, + "id": 3618, "nodeType": "ExpressionStatement", - "src": "2908:28:25" + "src": "2908:28:26" }, { - "id": 3465, + "id": 3619, "nodeType": "PlaceholderStatement", - "src": "2946:1:25" + "src": "2946:1:26" } ] }, "documentation": null, - "id": 3467, + "id": 3621, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 3457, + "id": 3611, "nodeType": "ParameterList", "parameters": [], - "src": "2898:0:25" + "src": "2898:0:26" }, - "src": "2879:75:25", + "src": "2879:75:26", "visibility": "internal" }, { "body": { - "id": 3478, + "id": 3632, "nodeType": "Block", - "src": "3023:37:25", + "src": "3023:37:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3476, + "id": 3630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3474, + "id": 3628, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3033:8:25", + "referencedDeclaration": 3595, + "src": "3033:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10076,68 +10076,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3475, + "id": 3629, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3469, - "src": "3044:9:25", + "referencedDeclaration": 3623, + "src": "3044:9:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3033:20:25", + "src": "3033:20:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3477, + "id": 3631, "nodeType": "ExpressionStatement", - "src": "3033:20:25" + "src": "3033:20:26" } ] }, "documentation": null, - "id": 3479, + "id": 3633, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3472, + "id": 3626, "modifierName": { "argumentTypes": null, - "id": 3471, + "id": 3625, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3013:9:25", + "referencedDeclaration": 3621, + "src": "3013:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3013:9:25" + "src": "3013:9:26" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3470, + "id": 3624, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3469, + "id": 3623, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 3479, - "src": "2987:17:25", + "scope": 3633, + "src": "2987:17:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10145,10 +10145,10 @@ "typeString": "address" }, "typeName": { - "id": 3468, + "id": 3622, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2987:7:25", + "src": "2987:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10158,26 +10158,26 @@ "visibility": "internal" } ], - "src": "2986:19:25" + "src": "2986:19:26" }, "payable": false, "returnParameters": { - "id": 3473, + "id": 3627, "nodeType": "ParameterList", "parameters": [], - "src": "3023:0:25" + "src": "3023:0:26" }, - "scope": 3506, - "src": "2960:100:25", + "scope": 3660, + "src": "2960:100:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3504, + "id": 3658, "nodeType": "Block", - "src": "3099:157:25", + "src": "3099:157:26", "statements": [ { "expression": { @@ -10189,7 +10189,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3486, + "id": 3640, "isConstant": false, "isLValue": false, "isPure": false, @@ -10198,18 +10198,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3483, + "id": 3637, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "3117:3:25", + "referencedDeclaration": 4491, + "src": "3117:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3484, + "id": 3638, "isConstant": false, "isLValue": false, "isPure": false, @@ -10217,7 +10217,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3117:10:25", + "src": "3117:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10227,18 +10227,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3485, + "id": 3639, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3131:8:25", + "referencedDeclaration": 3595, + "src": "3131:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3117:22:25", + "src": "3117:22:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10252,21 +10252,21 @@ "typeString": "bool" } ], - "id": 3482, + "id": 3636, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3831, - 3832 + 4494, + 4495 ], - "referencedDeclaration": 3831, - "src": "3109:7:25", + "referencedDeclaration": 4494, + "src": "3109:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3487, + "id": 3641, "isConstant": false, "isLValue": false, "isPure": false, @@ -10274,15 +10274,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3109:31:25", + "src": "3109:31:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3488, + "id": 3642, "nodeType": "ExpressionStatement", - "src": "3109:31:25" + "src": "3109:31:26" }, { "eventCall": { @@ -10290,12 +10290,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3490, + "id": 3644, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3176:5:25", + "referencedDeclaration": 3593, + "src": "3176:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10303,12 +10303,12 @@ }, { "argumentTypes": null, - "id": 3491, + "id": 3645, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3183:8:25", + "referencedDeclaration": 3595, + "src": "3183:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10326,18 +10326,18 @@ "typeString": "address" } ], - "id": 3489, + "id": 3643, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3447, - "src": "3155:20:25", + "referencedDeclaration": 3601, + "src": "3155:20:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 3492, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, @@ -10345,32 +10345,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3155:37:25", + "src": "3155:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3493, + "id": 3647, "nodeType": "EmitStatement", - "src": "3150:42:25" + "src": "3150:42:26" }, { "expression": { "argumentTypes": null, - "id": 3496, + "id": 3650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3494, + "id": 3648, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "3202:5:25", + "referencedDeclaration": 3593, + "src": "3202:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10380,43 +10380,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3495, + "id": 3649, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3210:8:25", + "referencedDeclaration": 3595, + "src": "3210:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3202:16:25", + "src": "3202:16:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3497, + "id": 3651, "nodeType": "ExpressionStatement", - "src": "3202:16:25" + "src": "3202:16:26" }, { "expression": { "argumentTypes": null, - "id": 3502, + "id": 3656, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3498, + "id": 3652, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "3228:8:25", + "referencedDeclaration": 3595, + "src": "3228:8:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10430,14 +10430,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3500, + "id": 3654, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3247:1:25", + "src": "3247:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10453,20 +10453,20 @@ "typeString": "int_const 0" } ], - "id": 3499, + "id": 3653, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:25", + "src": "3239:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3501, + "id": 3655, "isConstant": false, "isLValue": false, "isPure": true, @@ -10474,26 +10474,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3239:10:25", + "src": "3239:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3228:21:25", + "src": "3228:21:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3503, + "id": 3657, "nodeType": "ExpressionStatement", - "src": "3228:21:25" + "src": "3228:21:26" } ] }, "documentation": null, - "id": 3505, + "id": 3659, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -10501,27 +10501,27 @@ "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 3480, + "id": 3634, "nodeType": "ParameterList", "parameters": [], - "src": "3089:2:25" + "src": "3089:2:26" }, "payable": false, "returnParameters": { - "id": 3481, + "id": 3635, "nodeType": "ParameterList", "parameters": [], - "src": "3099:0:25" + "src": "3099:0:26" }, - "scope": 3506, - "src": "3065:191:25", + "scope": 3660, + "src": "3065:191:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "2663:595:25" + "scope": 3968, + "src": "2663:595:26" }, { "baseContracts": [ @@ -10529,76 +10529,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3507, + "id": 3661, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3425, - "src": "3528:14:25", + "referencedDeclaration": 3579, + "src": "3528:14:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3508, + "id": 3662, "nodeType": "InheritanceSpecifier", - "src": "3528:14:25" + "src": "3528:14:26" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3509, + "id": 3663, "name": "Owned", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3506, - "src": "3544:5:25", + "referencedDeclaration": 3660, + "src": "3544:5:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3506", + "typeIdentifier": "t_contract$_Owned_$3660", "typeString": "contract Owned" } }, - "id": 3510, + "id": 3664, "nodeType": "InheritanceSpecifier", - "src": "3544:5:25" + "src": "3544:5:26" } ], "contractDependencies": [ - 3425, - 3506 + 3579, + 3660 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3813, + "id": 3967, "linearizedBaseContracts": [ - 3813, - 3506, - 3425 + 3967, + 3660, + 3579 ], "name": "TestToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3513, + "id": 3667, "libraryName": { "contractScope": null, - "id": 3511, + "id": 3665, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3358, - "src": "3562:8:25", + "referencedDeclaration": 3512, + "src": "3562:8:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeIdentifier": "t_contract$_SafeMath_$3512", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3556:24:25", + "src": "3556:24:26", "typeName": { - "id": 3512, + "id": 3666, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3575:4:25", + "src": "3575:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10607,11 +10607,11 @@ }, { "constant": false, - "id": 3515, + "id": 3669, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3586:20:25", + "scope": 3967, + "src": "3586:20:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10619,10 +10619,10 @@ "typeString": "string" }, "typeName": { - "id": 3514, + "id": 3668, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3586:6:25", + "src": "3586:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -10633,11 +10633,11 @@ }, { "constant": false, - "id": 3517, + "id": 3671, "name": "name", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3612:19:25", + "scope": 3967, + "src": "3612:19:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10645,10 +10645,10 @@ "typeString": "string" }, "typeName": { - "id": 3516, + "id": 3670, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3612:6:25", + "src": "3612:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -10659,11 +10659,11 @@ }, { "constant": false, - "id": 3519, + "id": 3673, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3637:21:25", + "scope": 3967, + "src": "3637:21:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10671,10 +10671,10 @@ "typeString": "uint8" }, "typeName": { - "id": 3518, + "id": 3672, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3637:5:25", + "src": "3637:5:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10685,11 +10685,11 @@ }, { "constant": false, - "id": 3521, + "id": 3675, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3664:17:25", + "scope": 3967, + "src": "3664:17:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10697,10 +10697,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3520, + "id": 3674, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3664:4:25", + "src": "3664:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10711,11 +10711,11 @@ }, { "constant": false, - "id": 3525, + "id": 3679, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3688:33:25", + "scope": 3967, + "src": "3688:33:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10723,28 +10723,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 3524, + "id": 3678, "keyType": { - "id": 3522, + "id": 3676, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3696:7:25", + "src": "3696:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3688:24:25", + "src": "3688:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3523, + "id": 3677, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3707:4:25", + "src": "3707:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10756,11 +10756,11 @@ }, { "constant": false, - "id": 3531, + "id": 3685, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "3727:52:25", + "scope": 3967, + "src": "3727:52:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10768,46 +10768,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 3530, + "id": 3684, "keyType": { - "id": 3526, + "id": 3680, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3735:7:25", + "src": "3735:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3727:44:25", + "src": "3727:44:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 3529, + "id": 3683, "keyType": { - "id": 3527, + "id": 3681, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3754:7:25", + "src": "3754:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3746:24:25", + "src": "3746:24:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3528, + "id": 3682, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3765:4:25", + "src": "3765:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10820,26 +10820,26 @@ }, { "body": { - "id": 3570, + "id": 3724, "nodeType": "Block", - "src": "3987:235:25", + "src": "3987:235:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3536, + "id": 3690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3534, + "id": 3688, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3997:6:25", + "referencedDeclaration": 3669, + "src": "3997:6:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -10850,14 +10850,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "544b4e", - "id": 3535, + "id": 3689, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4006:5:25", + "src": "4006:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", @@ -10865,32 +10865,32 @@ }, "value": "TKN" }, - "src": "3997:14:25", + "src": "3997:14:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3537, + "id": 3691, "nodeType": "ExpressionStatement", - "src": "3997:14:25" + "src": "3997:14:26" }, { "expression": { "argumentTypes": null, - "id": 3540, + "id": 3694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3538, + "id": 3692, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3517, - "src": "4021:4:25", + "referencedDeclaration": 3671, + "src": "4021:4:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -10901,14 +10901,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "546f6b656e204578616d706c65", - "id": 3539, + "id": 3693, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4028:15:25", + "src": "4028:15:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", @@ -10916,32 +10916,32 @@ }, "value": "Token Example" }, - "src": "4021:22:25", + "src": "4021:22:26", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3541, + "id": 3695, "nodeType": "ExpressionStatement", - "src": "4021:22:25" + "src": "4021:22:26" }, { "expression": { "argumentTypes": null, - "id": 3544, + "id": 3698, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3542, + "id": 3696, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4053:8:25", + "referencedDeclaration": 3673, + "src": "4053:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10952,14 +10952,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3138", - "id": 3543, + "id": 3697, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4064:2:25", + "src": "4064:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -10967,32 +10967,32 @@ }, "value": "18" }, - "src": "4053:13:25", + "src": "4053:13:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 3545, + "id": 3699, "nodeType": "ExpressionStatement", - "src": "4053:13:25" + "src": "4053:13:26" }, { "expression": { "argumentTypes": null, - "id": 3554, + "id": 3708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3546, + "id": 3700, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4076:12:25", + "referencedDeclaration": 3675, + "src": "4076:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11006,7 +11006,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3553, + "id": 3707, "isConstant": false, "isLValue": false, "isPure": false, @@ -11014,14 +11014,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 3547, + "id": 3701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4091:7:25", + "src": "4091:7:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -11037,7 +11037,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3552, + "id": 3706, "isConstant": false, "isLValue": false, "isPure": false, @@ -11045,14 +11045,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 3548, + "id": 3702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4101:2:25", + "src": "4101:2:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -11067,12 +11067,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3550, + "id": 3704, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4110:8:25", + "referencedDeclaration": 3673, + "src": "4110:8:26", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11086,20 +11086,20 @@ "typeString": "uint8" } ], - "id": 3549, + "id": 3703, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:25", + "src": "4105:4:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 3551, + "id": 3705, "isConstant": false, "isLValue": false, "isPure": false, @@ -11107,38 +11107,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4105:14:25", + "src": "4105:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4101:18:25", + "src": "4101:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4091:28:25", + "src": "4091:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4076:43:25", + "src": "4076:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3555, + "id": 3709, "nodeType": "ExpressionStatement", - "src": "4076:43:25" + "src": "4076:43:26" }, { "expression": { "argumentTypes": null, - "id": 3560, + "id": 3714, "isConstant": false, "isLValue": false, "isPure": false, @@ -11147,26 +11147,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3556, + "id": 3710, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4129:8:25", + "referencedDeclaration": 3679, + "src": "4129:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3558, + "id": 3712, "indexExpression": { "argumentTypes": null, - "id": 3557, + "id": 3711, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4138:5:25", + "referencedDeclaration": 3593, + "src": "4138:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11177,7 +11177,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4129:15:25", + "src": "4129:15:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11187,26 +11187,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3559, + "id": 3713, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4147:12:25", + "referencedDeclaration": 3675, + "src": "4147:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4129:30:25", + "src": "4129:30:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3561, + "id": 3715, "nodeType": "ExpressionStatement", - "src": "4129:30:25" + "src": "4129:30:26" }, { "eventCall": { @@ -11218,14 +11218,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3564, + "id": 3718, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4191:1:25", + "src": "4191:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11241,20 +11241,20 @@ "typeString": "int_const 0" } ], - "id": 3563, + "id": 3717, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:25", + "src": "4183:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3565, + "id": 3719, "isConstant": false, "isLValue": false, "isPure": true, @@ -11262,7 +11262,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4183:10:25", + "src": "4183:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11270,12 +11270,12 @@ }, { "argumentTypes": null, - "id": 3566, + "id": 3720, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "4195:5:25", + "referencedDeclaration": 3593, + "src": "4195:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11283,12 +11283,12 @@ }, { "argumentTypes": null, - "id": 3567, + "id": 3721, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4202:12:25", + "referencedDeclaration": 3675, + "src": "4202:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11310,18 +11310,18 @@ "typeString": "uint256" } ], - "id": 3562, + "id": 3716, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "4174:8:25", + "referencedDeclaration": 3570, + "src": "4174:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3568, + "id": 3722, "isConstant": false, "isLValue": false, "isPure": false, @@ -11329,20 +11329,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4174:41:25", + "src": "4174:41:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3569, + "id": 3723, "nodeType": "EmitStatement", - "src": "4169:46:25" + "src": "4169:46:26" } ] }, "documentation": null, - "id": 3571, + "id": 3725, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -11350,29 +11350,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3532, + "id": 3686, "nodeType": "ParameterList", "parameters": [], - "src": "3977:2:25" + "src": "3977:2:26" }, "payable": false, "returnParameters": { - "id": 3533, + "id": 3687, "nodeType": "ParameterList", "parameters": [], - "src": "3987:0:25" + "src": "3987:0:26" }, - "scope": 3813, - "src": "3966:256:25", + "scope": 3967, + "src": "3966:256:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3585, + "id": 3739, "nodeType": "Block", - "src": "4459:62:25", + "src": "4459:62:26", "statements": [ { "expression": { @@ -11382,32 +11382,32 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3578, + "id": 3732, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4493:8:25", + "referencedDeclaration": 3679, + "src": "4493:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3582, + "id": 3736, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 3580, + "id": 3734, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4510:1:25", + "src": "4510:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11423,20 +11423,20 @@ "typeString": "int_const 0" } ], - "id": 3579, + "id": 3733, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:25", + "src": "4502:7:26", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3581, + "id": 3735, "isConstant": false, "isLValue": false, "isPure": true, @@ -11444,7 +11444,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4502:10:25", + "src": "4502:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11455,7 +11455,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4493:20:25", + "src": "4493:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11471,32 +11471,32 @@ ], "expression": { "argumentTypes": null, - "id": 3576, + "id": 3730, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "4476:12:25", + "referencedDeclaration": 3675, + "src": "4476:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3577, + "id": 3731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "4476:16:25", + "referencedDeclaration": 3461, + "src": "4476:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3583, + "id": 3737, "isConstant": false, "isLValue": false, "isPure": false, @@ -11504,21 +11504,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4476:38:25", + "src": "4476:38:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3575, - "id": 3584, + "functionReturnParameters": 3729, + "id": 3738, "nodeType": "Return", - "src": "4469:45:25" + "src": "4469:45:26" } ] }, "documentation": null, - "id": 3586, + "id": 3740, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11526,23 +11526,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3572, + "id": 3726, "nodeType": "ParameterList", "parameters": [], - "src": "4429:2:25" + "src": "4429:2:26" }, "payable": false, "returnParameters": { - "id": 3575, + "id": 3729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3574, + "id": 3728, "name": "", "nodeType": "VariableDeclaration", - "scope": 3586, - "src": "4453:4:25", + "scope": 3740, + "src": "4453:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11550,10 +11550,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3573, + "id": 3727, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4453:4:25", + "src": "4453:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11563,45 +11563,45 @@ "visibility": "internal" } ], - "src": "4452:6:25" + "src": "4452:6:26" }, - "scope": 3813, - "src": "4409:112:25", + "scope": 3967, + "src": "4409:112:26", "stateMutability": "view", - "superFunction": 3363, + "superFunction": 3517, "visibility": "public" }, { "body": { - "id": 3597, + "id": 3751, "nodeType": "Block", - "src": "4816:44:25", + "src": "4816:44:26", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3593, + "id": 3747, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "4833:8:25", + "referencedDeclaration": 3679, + "src": "4833:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3595, + "id": 3749, "indexExpression": { "argumentTypes": null, - "id": 3594, + "id": 3748, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3588, - "src": "4842:10:25", + "referencedDeclaration": 3742, + "src": "4842:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11612,21 +11612,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4833:20:25", + "src": "4833:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3592, - "id": 3596, + "functionReturnParameters": 3746, + "id": 3750, "nodeType": "Return", - "src": "4826:27:25" + "src": "4826:27:26" } ] }, "documentation": null, - "id": 3598, + "id": 3752, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11634,16 +11634,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3589, + "id": 3743, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3588, + "id": 3742, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4761:18:25", + "scope": 3752, + "src": "4761:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11651,10 +11651,10 @@ "typeString": "address" }, "typeName": { - "id": 3587, + "id": 3741, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4761:7:25", + "src": "4761:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11664,20 +11664,20 @@ "visibility": "internal" } ], - "src": "4760:20:25" + "src": "4760:20:26" }, "payable": false, "returnParameters": { - "id": 3592, + "id": 3746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3591, + "id": 3745, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "4802:12:25", + "scope": 3752, + "src": "4802:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11685,10 +11685,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3590, + "id": 3744, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4802:4:25", + "src": "4802:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11698,24 +11698,24 @@ "visibility": "internal" } ], - "src": "4801:14:25" + "src": "4801:14:26" }, - "scope": 3813, - "src": "4742:118:25", + "scope": 3967, + "src": "4742:118:26", "stateMutability": "view", - "superFunction": 3370, + "superFunction": 3524, "visibility": "public" }, { "body": { - "id": 3640, + "id": 3794, "nodeType": "Block", - "src": "5276:189:25", + "src": "5276:189:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3618, + "id": 3772, "isConstant": false, "isLValue": false, "isPure": false, @@ -11724,34 +11724,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3607, + "id": 3761, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5286:8:25", + "referencedDeclaration": 3679, + "src": "5286:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3610, + "id": 3764, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3608, + "id": 3762, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5295:3:25", + "referencedDeclaration": 4491, + "src": "5295:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3609, + "id": 3763, "isConstant": false, "isLValue": false, "isPure": false, @@ -11759,7 +11759,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5295:10:25", + "src": "5295:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11770,7 +11770,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5286:20:25", + "src": "5286:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11783,12 +11783,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3616, + "id": 3770, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5334:6:25", + "referencedDeclaration": 3756, + "src": "5334:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11806,34 +11806,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3611, + "id": 3765, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5309:8:25", + "referencedDeclaration": 3679, + "src": "5309:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3614, + "id": 3768, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3612, + "id": 3766, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5318:3:25", + "referencedDeclaration": 4491, + "src": "5318:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3613, + "id": 3767, "isConstant": false, "isLValue": false, "isPure": false, @@ -11841,7 +11841,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5318:10:25", + "src": "5318:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11852,27 +11852,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5309:20:25", + "src": "5309:20:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3615, + "id": 3769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "5309:24:25", + "referencedDeclaration": 3461, + "src": "5309:24:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3617, + "id": 3771, "isConstant": false, "isLValue": false, "isPure": false, @@ -11880,26 +11880,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5309:32:25", + "src": "5309:32:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5286:55:25", + "src": "5286:55:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3619, + "id": 3773, "nodeType": "ExpressionStatement", - "src": "5286:55:25" + "src": "5286:55:26" }, { "expression": { "argumentTypes": null, - "id": 3629, + "id": 3783, "isConstant": false, "isLValue": false, "isPure": false, @@ -11908,26 +11908,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3620, + "id": 3774, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5351:8:25", + "referencedDeclaration": 3679, + "src": "5351:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3622, + "id": 3776, "indexExpression": { "argumentTypes": null, - "id": 3621, + "id": 3775, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5360:2:25", + "referencedDeclaration": 3754, + "src": "5360:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11938,7 +11938,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5351:12:25", + "src": "5351:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11951,12 +11951,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3627, + "id": 3781, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5383:6:25", + "referencedDeclaration": 3756, + "src": "5383:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11974,26 +11974,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3623, + "id": 3777, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5366:8:25", + "referencedDeclaration": 3679, + "src": "5366:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3625, + "id": 3779, "indexExpression": { "argumentTypes": null, - "id": 3624, + "id": 3778, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5375:2:25", + "referencedDeclaration": 3754, + "src": "5375:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12004,27 +12004,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5366:12:25", + "src": "5366:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3626, + "id": 3780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "5366:16:25", + "referencedDeclaration": 3439, + "src": "5366:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3628, + "id": 3782, "isConstant": false, "isLValue": false, "isPure": false, @@ -12032,21 +12032,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5366:24:25", + "src": "5366:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5351:39:25", + "src": "5351:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3630, + "id": 3784, "nodeType": "ExpressionStatement", - "src": "5351:39:25" + "src": "5351:39:26" }, { "eventCall": { @@ -12056,18 +12056,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3632, + "id": 3786, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "5414:3:25", + "referencedDeclaration": 4491, + "src": "5414:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3633, + "id": 3787, "isConstant": false, "isLValue": false, "isPure": false, @@ -12075,7 +12075,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:25", + "src": "5414:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12083,12 +12083,12 @@ }, { "argumentTypes": null, - "id": 3634, + "id": 3788, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "5426:2:25", + "referencedDeclaration": 3754, + "src": "5426:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12096,12 +12096,12 @@ }, { "argumentTypes": null, - "id": 3635, + "id": 3789, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "5430:6:25", + "referencedDeclaration": 3756, + "src": "5430:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12123,18 +12123,18 @@ "typeString": "uint256" } ], - "id": 3631, + "id": 3785, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5405:8:25", + "referencedDeclaration": 3570, + "src": "5405:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3636, + "id": 3790, "isConstant": false, "isLValue": false, "isPure": false, @@ -12142,28 +12142,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5405:32:25", + "src": "5405:32:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3637, + "id": 3791, "nodeType": "EmitStatement", - "src": "5400:37:25" + "src": "5400:37:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3638, + "id": 3792, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5454:4:25", + "src": "5454:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12171,15 +12171,15 @@ }, "value": "true" }, - "functionReturnParameters": 3606, - "id": 3639, + "functionReturnParameters": 3760, + "id": 3793, "nodeType": "Return", - "src": "5447:11:25" + "src": "5447:11:26" } ] }, "documentation": null, - "id": 3641, + "id": 3795, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12187,16 +12187,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3603, + "id": 3757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3600, + "id": 3754, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5221:10:25", + "scope": 3795, + "src": "5221:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12204,10 +12204,10 @@ "typeString": "address" }, "typeName": { - "id": 3599, + "id": 3753, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5221:7:25", + "src": "5221:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12218,11 +12218,11 @@ }, { "constant": false, - "id": 3602, + "id": 3756, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5233:11:25", + "scope": 3795, + "src": "5233:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12230,10 +12230,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3601, + "id": 3755, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5233:4:25", + "src": "5233:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12243,20 +12243,20 @@ "visibility": "internal" } ], - "src": "5220:25:25" + "src": "5220:25:26" }, "payable": false, "returnParameters": { - "id": 3606, + "id": 3760, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3605, + "id": 3759, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3641, - "src": "5262:12:25", + "scope": 3795, + "src": "5262:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12264,10 +12264,10 @@ "typeString": "bool" }, "typeName": { - "id": 3604, + "id": 3758, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5262:4:25", + "src": "5262:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12277,24 +12277,24 @@ "visibility": "internal" } ], - "src": "5261:14:25" + "src": "5261:14:26" }, - "scope": 3813, - "src": "5203:262:25", + "scope": 3967, + "src": "5203:262:26", "stateMutability": "nonpayable", - "superFunction": 3388, + "superFunction": 3542, "visibility": "public" }, { "body": { - "id": 3668, + "id": 3822, "nodeType": "Block", - "src": "6048:127:25", + "src": "6048:127:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3657, + "id": 3811, "isConstant": false, "isLValue": false, "isPure": false, @@ -12305,34 +12305,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3650, + "id": 3804, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6058:7:25", + "referencedDeclaration": 3685, + "src": "6058:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3654, + "id": 3808, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3651, + "id": 3805, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6066:3:25", + "referencedDeclaration": 4491, + "src": "6066:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3652, + "id": 3806, "isConstant": false, "isLValue": false, "isPure": false, @@ -12340,7 +12340,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6066:10:25", + "src": "6066:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12351,21 +12351,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6058:19:25", + "src": "6058:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3655, + "id": 3809, "indexExpression": { "argumentTypes": null, - "id": 3653, + "id": 3807, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6078:7:25", + "referencedDeclaration": 3797, + "src": "6078:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12376,7 +12376,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6058:28:25", + "src": "6058:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12386,26 +12386,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3656, + "id": 3810, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6089:6:25", + "referencedDeclaration": 3799, + "src": "6089:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6058:37:25", + "src": "6058:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3658, + "id": 3812, "nodeType": "ExpressionStatement", - "src": "6058:37:25" + "src": "6058:37:26" }, { "eventCall": { @@ -12415,18 +12415,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3660, + "id": 3814, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6119:3:25", + "referencedDeclaration": 4491, + "src": "6119:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3661, + "id": 3815, "isConstant": false, "isLValue": false, "isPure": false, @@ -12434,7 +12434,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6119:10:25", + "src": "6119:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12442,12 +12442,12 @@ }, { "argumentTypes": null, - "id": 3662, + "id": 3816, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "6131:7:25", + "referencedDeclaration": 3797, + "src": "6131:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12455,12 +12455,12 @@ }, { "argumentTypes": null, - "id": 3663, + "id": 3817, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3645, - "src": "6140:6:25", + "referencedDeclaration": 3799, + "src": "6140:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12482,18 +12482,18 @@ "typeString": "uint256" } ], - "id": 3659, + "id": 3813, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "6110:8:25", + "referencedDeclaration": 3578, + "src": "6110:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3664, + "id": 3818, "isConstant": false, "isLValue": false, "isPure": false, @@ -12501,28 +12501,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6110:37:25", + "src": "6110:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3665, + "id": 3819, "nodeType": "EmitStatement", - "src": "6105:42:25" + "src": "6105:42:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3666, + "id": 3820, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6164:4:25", + "src": "6164:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12530,15 +12530,15 @@ }, "value": "true" }, - "functionReturnParameters": 3649, - "id": 3667, + "functionReturnParameters": 3803, + "id": 3821, "nodeType": "Return", - "src": "6157:11:25" + "src": "6157:11:26" } ] }, "documentation": null, - "id": 3669, + "id": 3823, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12546,16 +12546,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3646, + "id": 3800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3643, + "id": 3797, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "5988:15:25", + "scope": 3823, + "src": "5988:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12563,10 +12563,10 @@ "typeString": "address" }, "typeName": { - "id": 3642, + "id": 3796, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5988:7:25", + "src": "5988:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12577,11 +12577,11 @@ }, { "constant": false, - "id": 3645, + "id": 3799, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6005:11:25", + "scope": 3823, + "src": "6005:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12589,10 +12589,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3644, + "id": 3798, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6005:4:25", + "src": "6005:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12602,20 +12602,20 @@ "visibility": "internal" } ], - "src": "5987:30:25" + "src": "5987:30:26" }, "payable": false, "returnParameters": { - "id": 3649, + "id": 3803, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3648, + "id": 3802, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3669, - "src": "6034:12:25", + "scope": 3823, + "src": "6034:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12623,10 +12623,10 @@ "typeString": "bool" }, "typeName": { - "id": 3647, + "id": 3801, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6034:4:25", + "src": "6034:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12636,24 +12636,24 @@ "visibility": "internal" } ], - "src": "6033:14:25" + "src": "6033:14:26" }, - "scope": 3813, - "src": "5971:204:25", + "scope": 3967, + "src": "5971:204:26", "stateMutability": "nonpayable", - "superFunction": 3397, + "superFunction": 3551, "visibility": "public" }, { "body": { - "id": 3727, + "id": 3881, "nodeType": "Block", - "src": "6798:246:25", + "src": "6798:246:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3689, + "id": 3843, "isConstant": false, "isLValue": false, "isPure": false, @@ -12662,26 +12662,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3680, + "id": 3834, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6808:8:25", + "referencedDeclaration": 3679, + "src": "6808:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3682, + "id": 3836, "indexExpression": { "argumentTypes": null, - "id": 3681, + "id": 3835, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6817:4:25", + "referencedDeclaration": 3825, + "src": "6817:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12692,7 +12692,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6808:14:25", + "src": "6808:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12705,12 +12705,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3687, + "id": 3841, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6844:6:25", + "referencedDeclaration": 3829, + "src": "6844:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12728,26 +12728,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3683, + "id": 3837, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6825:8:25", + "referencedDeclaration": 3679, + "src": "6825:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3685, + "id": 3839, "indexExpression": { "argumentTypes": null, - "id": 3684, + "id": 3838, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6834:4:25", + "referencedDeclaration": 3825, + "src": "6834:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12758,27 +12758,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6825:14:25", + "src": "6825:14:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3686, + "id": 3840, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6825:18:25", + "referencedDeclaration": 3461, + "src": "6825:18:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3688, + "id": 3842, "isConstant": false, "isLValue": false, "isPure": false, @@ -12786,26 +12786,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6825:26:25", + "src": "6825:26:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6808:43:25", + "src": "6808:43:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3690, + "id": 3844, "nodeType": "ExpressionStatement", - "src": "6808:43:25" + "src": "6808:43:26" }, { "expression": { "argumentTypes": null, - "id": 3706, + "id": 3860, "isConstant": false, "isLValue": false, "isPure": false, @@ -12816,26 +12816,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3691, + "id": 3845, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6861:7:25", + "referencedDeclaration": 3685, + "src": "6861:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3695, + "id": 3849, "indexExpression": { "argumentTypes": null, - "id": 3692, + "id": 3846, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6869:4:25", + "referencedDeclaration": 3825, + "src": "6869:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12846,29 +12846,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6861:13:25", + "src": "6861:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3696, + "id": 3850, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3693, + "id": 3847, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6875:3:25", + "referencedDeclaration": 4491, + "src": "6875:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3694, + "id": 3848, "isConstant": false, "isLValue": false, "isPure": false, @@ -12876,7 +12876,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6875:10:25", + "src": "6875:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12887,7 +12887,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6861:25:25", + "src": "6861:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12900,12 +12900,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3704, + "id": 3858, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6919:6:25", + "referencedDeclaration": 3829, + "src": "6919:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12925,26 +12925,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3697, + "id": 3851, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "6889:7:25", + "referencedDeclaration": 3685, + "src": "6889:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3699, + "id": 3853, "indexExpression": { "argumentTypes": null, - "id": 3698, + "id": 3852, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6897:4:25", + "referencedDeclaration": 3825, + "src": "6897:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12955,29 +12955,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:13:25", + "src": "6889:13:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3702, + "id": 3856, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3700, + "id": 3854, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "6903:3:25", + "referencedDeclaration": 4491, + "src": "6903:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3701, + "id": 3855, "isConstant": false, "isLValue": false, "isPure": false, @@ -12985,7 +12985,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6903:10:25", + "src": "6903:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12996,27 +12996,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:25:25", + "src": "6889:25:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3703, + "id": 3857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3307, - "src": "6889:29:25", + "referencedDeclaration": 3461, + "src": "6889:29:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3705, + "id": 3859, "isConstant": false, "isLValue": false, "isPure": false, @@ -13024,26 +13024,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6889:37:25", + "src": "6889:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6861:65:25", + "src": "6861:65:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3707, + "id": 3861, "nodeType": "ExpressionStatement", - "src": "6861:65:25" + "src": "6861:65:26" }, { "expression": { "argumentTypes": null, - "id": 3717, + "id": 3871, "isConstant": false, "isLValue": false, "isPure": false, @@ -13052,26 +13052,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3708, + "id": 3862, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6936:8:25", + "referencedDeclaration": 3679, + "src": "6936:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3710, + "id": 3864, "indexExpression": { "argumentTypes": null, - "id": 3709, + "id": 3863, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6945:2:25", + "referencedDeclaration": 3827, + "src": "6945:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13082,7 +13082,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6936:12:25", + "src": "6936:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13095,12 +13095,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3715, + "id": 3869, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "6968:6:25", + "referencedDeclaration": 3829, + "src": "6968:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13118,26 +13118,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3711, + "id": 3865, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "6951:8:25", + "referencedDeclaration": 3679, + "src": "6951:8:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3713, + "id": 3867, "indexExpression": { "argumentTypes": null, - "id": 3712, + "id": 3866, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "6960:2:25", + "referencedDeclaration": 3827, + "src": "6960:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13148,27 +13148,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6951:12:25", + "src": "6951:12:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3714, + "id": 3868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3285, - "src": "6951:16:25", + "referencedDeclaration": 3439, + "src": "6951:16:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3716, + "id": 3870, "isConstant": false, "isLValue": false, "isPure": false, @@ -13176,21 +13176,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6951:24:25", + "src": "6951:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6936:39:25", + "src": "6936:39:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3718, + "id": 3872, "nodeType": "ExpressionStatement", - "src": "6936:39:25" + "src": "6936:39:26" }, { "eventCall": { @@ -13198,12 +13198,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3720, + "id": 3874, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "6999:4:25", + "referencedDeclaration": 3825, + "src": "6999:4:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13211,12 +13211,12 @@ }, { "argumentTypes": null, - "id": 3721, + "id": 3875, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "7005:2:25", + "referencedDeclaration": 3827, + "src": "7005:2:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13224,12 +13224,12 @@ }, { "argumentTypes": null, - "id": 3722, + "id": 3876, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "7009:6:25", + "referencedDeclaration": 3829, + "src": "7009:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13251,18 +13251,18 @@ "typeString": "uint256" } ], - "id": 3719, + "id": 3873, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "6990:8:25", + "referencedDeclaration": 3570, + "src": "6990:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3723, + "id": 3877, "isConstant": false, "isLValue": false, "isPure": false, @@ -13270,28 +13270,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6990:26:25", + "src": "6990:26:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3724, + "id": 3878, "nodeType": "EmitStatement", - "src": "6985:31:25" + "src": "6985:31:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3725, + "id": 3879, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7033:4:25", + "src": "7033:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13299,15 +13299,15 @@ }, "value": "true" }, - "functionReturnParameters": 3679, - "id": 3726, + "functionReturnParameters": 3833, + "id": 3880, "nodeType": "Return", - "src": "7026:11:25" + "src": "7026:11:26" } ] }, "documentation": null, - "id": 3728, + "id": 3882, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -13315,16 +13315,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3676, + "id": 3830, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3671, + "id": 3825, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6729:12:25", + "scope": 3882, + "src": "6729:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13332,10 +13332,10 @@ "typeString": "address" }, "typeName": { - "id": 3670, + "id": 3824, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6729:7:25", + "src": "6729:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13346,11 +13346,11 @@ }, { "constant": false, - "id": 3673, + "id": 3827, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6743:10:25", + "scope": 3882, + "src": "6743:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13358,10 +13358,10 @@ "typeString": "address" }, "typeName": { - "id": 3672, + "id": 3826, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6743:7:25", + "src": "6743:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13372,11 +13372,11 @@ }, { "constant": false, - "id": 3675, + "id": 3829, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6755:11:25", + "scope": 3882, + "src": "6755:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13384,10 +13384,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3674, + "id": 3828, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6755:4:25", + "src": "6755:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13397,20 +13397,20 @@ "visibility": "internal" } ], - "src": "6728:39:25" + "src": "6728:39:26" }, "payable": false, "returnParameters": { - "id": 3679, + "id": 3833, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3678, + "id": 3832, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3728, - "src": "6784:12:25", + "scope": 3882, + "src": "6784:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13418,10 +13418,10 @@ "typeString": "bool" }, "typeName": { - "id": 3677, + "id": 3831, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6784:4:25", + "src": "6784:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13431,19 +13431,19 @@ "visibility": "internal" } ], - "src": "6783:14:25" + "src": "6783:14:26" }, - "scope": 3813, - "src": "6707:337:25", + "scope": 3967, + "src": "6707:337:26", "stateMutability": "nonpayable", - "superFunction": 3408, + "superFunction": 3562, "visibility": "public" }, { "body": { - "id": 3743, + "id": 3897, "nodeType": "Block", - "src": "7418:52:25", + "src": "7418:52:26", "statements": [ { "expression": { @@ -13452,26 +13452,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3737, + "id": 3891, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7435:7:25", + "referencedDeclaration": 3685, + "src": "7435:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3739, + "id": 3893, "indexExpression": { "argumentTypes": null, - "id": 3738, + "id": 3892, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3730, - "src": "7443:10:25", + "referencedDeclaration": 3884, + "src": "7443:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13482,21 +13482,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:19:25", + "src": "7435:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3741, + "id": 3895, "indexExpression": { "argumentTypes": null, - "id": 3740, + "id": 3894, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "7455:7:25", + "referencedDeclaration": 3886, + "src": "7455:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13507,21 +13507,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:28:25", + "src": "7435:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3736, - "id": 3742, + "functionReturnParameters": 3890, + "id": 3896, "nodeType": "Return", - "src": "7428:35:25" + "src": "7428:35:26" } ] }, "documentation": null, - "id": 3744, + "id": 3898, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13529,16 +13529,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3733, + "id": 3887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3730, + "id": 3884, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7344:18:25", + "scope": 3898, + "src": "7344:18:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13546,10 +13546,10 @@ "typeString": "address" }, "typeName": { - "id": 3729, + "id": 3883, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7344:7:25", + "src": "7344:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13560,11 +13560,11 @@ }, { "constant": false, - "id": 3732, + "id": 3886, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7364:15:25", + "scope": 3898, + "src": "7364:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13572,10 +13572,10 @@ "typeString": "address" }, "typeName": { - "id": 3731, + "id": 3885, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7364:7:25", + "src": "7364:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13585,20 +13585,20 @@ "visibility": "internal" } ], - "src": "7343:37:25" + "src": "7343:37:26" }, "payable": false, "returnParameters": { - "id": 3736, + "id": 3890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3735, + "id": 3889, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "7402:14:25", + "scope": 3898, + "src": "7402:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13606,10 +13606,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3734, + "id": 3888, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7402:4:25", + "src": "7402:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13619,24 +13619,24 @@ "visibility": "internal" } ], - "src": "7401:16:25" + "src": "7401:16:26" }, - "scope": 3813, - "src": "7325:145:25", + "scope": 3967, + "src": "7325:145:26", "stateMutability": "view", - "superFunction": 3379, + "superFunction": 3533, "visibility": "public" }, { "body": { - "id": 3784, + "id": 3938, "nodeType": "Block", - "src": "7926:216:25", + "src": "7926:216:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 3762, + "id": 3916, "isConstant": false, "isLValue": false, "isPure": false, @@ -13647,34 +13647,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3755, + "id": 3909, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "7936:7:25", + "referencedDeclaration": 3685, + "src": "7936:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3759, + "id": 3913, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3756, + "id": 3910, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7944:3:25", + "referencedDeclaration": 4491, + "src": "7944:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3757, + "id": 3911, "isConstant": false, "isLValue": false, "isPure": false, @@ -13682,7 +13682,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7944:10:25", + "src": "7944:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13693,21 +13693,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7936:19:25", + "src": "7936:19:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3760, + "id": 3914, "indexExpression": { "argumentTypes": null, - "id": 3758, + "id": 3912, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "7956:7:25", + "referencedDeclaration": 3900, + "src": "7956:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13718,7 +13718,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7936:28:25", + "src": "7936:28:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13728,26 +13728,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3761, + "id": 3915, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "7967:6:25", + "referencedDeclaration": 3902, + "src": "7967:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7936:37:25", + "src": "7936:37:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3763, + "id": 3917, "nodeType": "ExpressionStatement", - "src": "7936:37:25" + "src": "7936:37:26" }, { "eventCall": { @@ -13757,18 +13757,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3765, + "id": 3919, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "7997:3:25", + "referencedDeclaration": 4491, + "src": "7997:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3766, + "id": 3920, "isConstant": false, "isLValue": false, "isPure": false, @@ -13776,7 +13776,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7997:10:25", + "src": "7997:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13784,12 +13784,12 @@ }, { "argumentTypes": null, - "id": 3767, + "id": 3921, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8009:7:25", + "referencedDeclaration": 3900, + "src": "8009:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13797,12 +13797,12 @@ }, { "argumentTypes": null, - "id": 3768, + "id": 3922, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8018:6:25", + "referencedDeclaration": 3902, + "src": "8018:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13824,18 +13824,18 @@ "typeString": "uint256" } ], - "id": 3764, + "id": 3918, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "7988:8:25", + "referencedDeclaration": 3578, + "src": "7988:8:26", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3769, + "id": 3923, "isConstant": false, "isLValue": false, "isPure": false, @@ -13843,15 +13843,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7988:37:25", + "src": "7988:37:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3770, + "id": 3924, "nodeType": "EmitStatement", - "src": "7983:42:25" + "src": "7983:42:26" }, { "expression": { @@ -13861,18 +13861,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3775, + "id": 3929, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "8083:3:25", + "referencedDeclaration": 4491, + "src": "8083:3:26", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3776, + "id": 3930, "isConstant": false, "isLValue": false, "isPure": false, @@ -13880,7 +13880,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8083:10:25", + "src": "8083:10:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13888,12 +13888,12 @@ }, { "argumentTypes": null, - "id": 3777, + "id": 3931, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "8095:6:25", + "referencedDeclaration": 3902, + "src": "8095:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13901,25 +13901,25 @@ }, { "argumentTypes": null, - "id": 3778, + "id": 3932, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3907, - "src": "8103:4:25", + "referencedDeclaration": 4574, + "src": "8103:4:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" } }, { "argumentTypes": null, - "id": 3779, + "id": 3933, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3750, - "src": "8109:4:25", + "referencedDeclaration": 3904, + "src": "8109:4:26", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -13937,7 +13937,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_TestToken_$3813", + "typeIdentifier": "t_contract$_TestToken_$3967", "typeString": "contract TestToken" }, { @@ -13950,12 +13950,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3772, + "id": 3926, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "8058:7:25", + "referencedDeclaration": 3900, + "src": "8058:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13969,18 +13969,18 @@ "typeString": "address" } ], - "id": 3771, + "id": 3925, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3437, - "src": "8035:22:25", + "referencedDeclaration": 3591, + "src": "8035:22:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, - "id": 3773, + "id": 3927, "isConstant": false, "isLValue": false, "isPure": false, @@ -13988,27 +13988,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:31:25", + "src": "8035:31:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", "typeString": "contract ApproveAndCallFallBack" } }, - "id": 3774, + "id": 3928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", - "referencedDeclaration": 3436, - "src": "8035:47:25", + "referencedDeclaration": 3590, + "src": "8035:47:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,address,bytes memory) external" } }, - "id": 3780, + "id": 3934, "isConstant": false, "isLValue": false, "isPure": false, @@ -14016,28 +14016,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:79:25", + "src": "8035:79:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3781, + "id": 3935, "nodeType": "ExpressionStatement", - "src": "8035:79:25" + "src": "8035:79:26" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3782, + "id": 3936, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8131:4:25", + "src": "8131:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -14045,15 +14045,15 @@ }, "value": "true" }, - "functionReturnParameters": 3754, - "id": 3783, + "functionReturnParameters": 3908, + "id": 3937, "nodeType": "Return", - "src": "8124:11:25" + "src": "8124:11:26" } ] }, "documentation": null, - "id": 3785, + "id": 3939, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -14061,16 +14061,16 @@ "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 3751, + "id": 3905, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3746, + "id": 3900, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7854:15:25", + "scope": 3939, + "src": "7854:15:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14078,10 +14078,10 @@ "typeString": "address" }, "typeName": { - "id": 3745, + "id": 3899, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7854:7:25", + "src": "7854:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14092,11 +14092,11 @@ }, { "constant": false, - "id": 3748, + "id": 3902, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7871:11:25", + "scope": 3939, + "src": "7871:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14104,10 +14104,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3747, + "id": 3901, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7871:4:25", + "src": "7871:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14118,11 +14118,11 @@ }, { "constant": false, - "id": 3750, + "id": 3904, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7884:10:25", + "scope": 3939, + "src": "7884:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14130,10 +14130,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3749, + "id": 3903, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7884:5:25", + "src": "7884:5:26", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -14143,20 +14143,20 @@ "visibility": "internal" } ], - "src": "7853:42:25" + "src": "7853:42:26" }, "payable": false, "returnParameters": { - "id": 3754, + "id": 3908, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3753, + "id": 3907, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "7912:12:25", + "scope": 3939, + "src": "7912:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14164,10 +14164,10 @@ "typeString": "bool" }, "typeName": { - "id": 3752, + "id": 3906, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7912:4:25", + "src": "7912:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14177,19 +14177,19 @@ "visibility": "internal" } ], - "src": "7911:14:25" + "src": "7911:14:26" }, - "scope": 3813, - "src": "7830:312:25", + "scope": 3967, + "src": "7830:312:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3791, + "id": 3945, "nodeType": "Block", - "src": "8360:25:25", + "src": "8360:25:26", "statements": [ { "expression": { @@ -14197,21 +14197,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3788, + "id": 3942, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 3833, - 3834 + 4496, + 4497 ], - "referencedDeclaration": 3833, - "src": "8370:6:25", + "referencedDeclaration": 4496, + "src": "8370:6:26", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 3789, + "id": 3943, "isConstant": false, "isLValue": false, "isPure": false, @@ -14219,20 +14219,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8370:8:25", + "src": "8370:8:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3790, + "id": 3944, "nodeType": "ExpressionStatement", - "src": "8370:8:25" + "src": "8370:8:26" } ] }, "documentation": null, - "id": 3792, + "id": 3946, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -14240,29 +14240,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3786, + "id": 3940, "nodeType": "ParameterList", "parameters": [], - "src": "8342:2:25" + "src": "8342:2:26" }, "payable": true, "returnParameters": { - "id": 3787, + "id": 3941, "nodeType": "ParameterList", "parameters": [], - "src": "8360:0:25" + "src": "8360:0:26" }, - "scope": 3813, - "src": "8333:52:25", + "scope": 3967, + "src": "8333:52:26", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3811, + "id": 3965, "nodeType": "Block", - "src": "8723:76:25", + "src": "8723:76:26", "statements": [ { "expression": { @@ -14270,12 +14270,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3807, + "id": 3961, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "8778:5:25", + "referencedDeclaration": 3593, + "src": "8778:5:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14283,12 +14283,12 @@ }, { "argumentTypes": null, - "id": 3808, + "id": 3962, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3796, - "src": "8785:6:25", + "referencedDeclaration": 3950, + "src": "8785:6:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14311,12 +14311,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3804, + "id": 3958, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3794, - "src": "8755:12:25", + "referencedDeclaration": 3948, + "src": "8755:12:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14330,18 +14330,18 @@ "typeString": "address" } ], - "id": 3803, + "id": 3957, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3425, - "src": "8740:14:25", + "referencedDeclaration": 3579, + "src": "8740:14:26", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", "typeString": "type(contract ERC20Interface)" } }, - "id": 3805, + "id": 3959, "isConstant": false, "isLValue": false, "isPure": false, @@ -14349,27 +14349,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:28:25", + "src": "8740:28:26", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeIdentifier": "t_contract$_ERC20Interface_$3579", "typeString": "contract ERC20Interface" } }, - "id": 3806, + "id": 3960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 3388, - "src": "8740:37:25", + "referencedDeclaration": 3542, + "src": "8740:37:26", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 3809, + "id": 3963, "isConstant": false, "isLValue": false, "isPure": false, @@ -14377,58 +14377,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:52:25", + "src": "8740:52:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3802, - "id": 3810, + "functionReturnParameters": 3956, + "id": 3964, "nodeType": "Return", - "src": "8733:59:25" + "src": "8733:59:26" } ] }, "documentation": null, - "id": 3812, + "id": 3966, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3799, + "id": 3953, "modifierName": { "argumentTypes": null, - "id": 3798, + "id": 3952, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "8690:9:25", + "referencedDeclaration": 3621, + "src": "8690:9:26", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8690:9:25" + "src": "8690:9:26" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 3797, + "id": 3951, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3794, + "id": 3948, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8648:20:25", + "scope": 3966, + "src": "8648:20:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14436,10 +14436,10 @@ "typeString": "address" }, "typeName": { - "id": 3793, + "id": 3947, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8648:7:25", + "src": "8648:7:26", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14450,11 +14450,11 @@ }, { "constant": false, - "id": 3796, + "id": 3950, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8670:11:25", + "scope": 3966, + "src": "8670:11:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14462,10 +14462,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3795, + "id": 3949, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8670:4:25", + "src": "8670:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14475,20 +14475,20 @@ "visibility": "internal" } ], - "src": "8647:35:25" + "src": "8647:35:26" }, "payable": false, "returnParameters": { - "id": 3802, + "id": 3956, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3801, + "id": 3955, "name": "success", "nodeType": "VariableDeclaration", - "scope": 3812, - "src": "8709:12:25", + "scope": 3966, + "src": "8709:12:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14496,10 +14496,10 @@ "typeString": "bool" }, "typeName": { - "id": 3800, + "id": 3954, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8709:4:25", + "src": "8709:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14509,26 +14509,33 @@ "visibility": "internal" } ], - "src": "8708:14:25" + "src": "8708:14:26" }, - "scope": 3813, - "src": "8617:182:25", + "scope": 3967, + "src": "8617:182:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3814, - "src": "3506:5295:25" + "scope": 3968, + "src": "3506:5295:26" } ], - "src": "0:8801:25" + "src": "0:8801:26" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, - "networks": {}, + "networks": { + "4": { + "events": {}, + "links": {}, + "address": "0x63f77b7e9a9fb2cc566671e3ecbdad8d969ae410", + "transactionHash": "0xbb5fd5b0cda13b1f61dcd022e0619cb43e9d5cb78ce71264fd95d4555ac115b0" + } + }, "schemaVersion": "2.0.0", - "updatedAt": "2018-08-20T07:50:29.728Z" + "updatedAt": "2018-09-26T08:56:03.745Z" } \ No newline at end of file From 7fdf94f82439b9a18b9e573fac8bf0bc6d3e1ddb Mon Sep 17 00:00:00 2001 From: apanizo Date: Thu, 27 Sep 2018 10:55:17 +0200 Subject: [PATCH 039/117] Creating safe's instances using 0.0.2 contracts --- src/logic/contracts/safeContracts.js | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/logic/contracts/safeContracts.js b/src/logic/contracts/safeContracts.js index 730cc3c0..a38a1087 100644 --- a/src/logic/contracts/safeContracts.js +++ b/src/logic/contracts/safeContracts.js @@ -3,13 +3,11 @@ import contract from 'truffle-contract' import { ensureOnce } from '~/utils/singleton' import { getWeb3 } from '~/logic/wallets/getWeb3' import { promisify } from '~/utils/promisify' -import GnosisSafeSol from '#/GnosisSafeTeamEdition.json' -import GnosisPersonalSafeSol from '#/GnosisSafePersonalEdition.json' +import GnosisSafeSol from '#/GnosisSafe.json' import ProxyFactorySol from '#/ProxyFactory.json' import CreateAndAddModules from '#/CreateAndAddModules.json' import DailyLimitModule from '#/DailyLimitModule.json' import { calculateGasOf, calculateGasPrice, EMPTY_DATA } from '~/logic/wallets/ethTransactions' -import { signaturesViaMetamask } from '~/config' let proxyFactoryMaster let createAndAddModuleMaster @@ -33,13 +31,6 @@ function createAndAddModulesData(dataArray) { } const createGnosisSafeContract = (web3: any) => { - if (signaturesViaMetamask()) { - const gnosisSafe = contract(GnosisPersonalSafeSol) - gnosisSafe.setProvider(web3.currentProvider) - - return gnosisSafe - } - const gnosisSafe = contract(GnosisSafeSol) gnosisSafe.setProvider(web3.currentProvider) From c6ff0801fb63f78739e6256d03e13f3520ce3dcd Mon Sep 17 00:00:00 2001 From: apanizo Date: Thu, 27 Sep 2018 10:57:44 +0200 Subject: [PATCH 040/117] Fix Metamasks' signatures following EIP 712 --- src/logic/safe/safeBlockchainOperations.js | 12 ++++++----- src/logic/safe/safeTxSigner.js | 25 +++++++++++++--------- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/logic/safe/safeBlockchainOperations.js b/src/logic/safe/safeBlockchainOperations.js index d71be6c7..ac083a8e 100644 --- a/src/logic/safe/safeBlockchainOperations.js +++ b/src/logic/safe/safeBlockchainOperations.js @@ -60,19 +60,21 @@ export const executeTransaction = async ( const sigs = getSignaturesFrom(safeAddress, nonce) const threshold = await safe.getThreshold() - const gas = await estimateDataGas(safe, to, valueInWei, data, operation, txGasEstimate, 0, nonce, Number(threshold)) + const gas = + await estimateDataGas(safe, to, valueInWei, data, operation, txGasEstimate, 0, nonce, Number(threshold), 0) const numOwners = await safe.getOwners() const gasIncludingRemovingStoreUpfront = gas + txGasEstimate + (numOwners.length * 15000) - const txReceipt = await safe.execTransactionAndPaySubmitter( + const txReceipt = await safe.execTransaction( to, valueInWei, data, operation, txGasEstimate, - 0, - 0, - 0, + 0, // dataGasEstimate + 0, // gasPrice + 0, // txGasToken + 0, // refundReceiver sigs, { from: sender, gas: gasIncludingRemovingStoreUpfront, gasPrice }, ) diff --git a/src/logic/safe/safeTxSigner.js b/src/logic/safe/safeTxSigner.js index d6b0b92d..7d99efde 100644 --- a/src/logic/safe/safeTxSigner.js +++ b/src/logic/safe/safeTxSigner.js @@ -32,6 +32,7 @@ export const estimateDataGas = ( gasToken: number, nonce: number, signatureCount: number, + refundReceiver: number, ) => { // numbers < 256 are 192 -> 31 * 4 + 68 // numbers < 65k are 256 -> 30 * 4 + 2 * 68 @@ -41,8 +42,8 @@ export const estimateDataGas = ( const signatureCost = signatureCount * (68 + 2176 + 2176) // array count (3 -> r, s, v) * signature count const sigs = getSignaturesFrom(safe.address, nonce) - const payload = safe.contract.execTransactionAndPaySubmitter - .getData(to, valueInWei, data, operation, txGasEstimate, 0, gasPrice, gasToken, sigs) + const payload = safe.contract.execTransaction + .getData(to, valueInWei, data, operation, txGasEstimate, 0, gasPrice, gasToken, refundReceiver, sigs) let dataGasEstimate = estimateDataGasCosts(payload) + signatureCost if (dataGasEstimate > 65536) { @@ -95,6 +96,7 @@ const generateTypedDataFrom = async ( // estimateDataGas(safe, to, valueInWei, data, operation, txGasEstimate, txGasToken, nonce, threshold) const dataGasEstimate = 0 const gasPrice = 0 + const refundReceiver = 0 const typedData = { types: { EIP712Domain: [ @@ -103,7 +105,7 @@ const generateTypedDataFrom = async ( name: 'verifyingContract', }, ], - PersonalSafeTx: [ + SafeTx: [ { type: 'address', name: 'to' }, { type: 'uint256', name: 'value' }, { type: 'bytes', name: 'data' }, @@ -112,23 +114,25 @@ const generateTypedDataFrom = async ( { type: 'uint256', name: 'dataGas' }, { type: 'uint256', name: 'gasPrice' }, { type: 'address', name: 'gasToken' }, + { type: 'address', name: 'refundReceiver' }, { type: 'uint256', name: 'nonce' }, ], }, domain: { verifyingContract: safeAddress, }, - primaryType: 'PersonalSafeTx', + primaryType: 'SafeTx', message: { to, - value: valueInWei, + value: Number(valueInWei), data, operation, safeTxGas: txGasEstimate, dataGas: dataGasEstimate, gasPrice, gasToken: txGasToken, - nonce, + refundReceiver, + nonce: Number(nonce), }, } @@ -149,11 +153,12 @@ export const generateMetamaskSignature = async ( const web3 = getWeb3() const typedData = await generateTypedDataFrom(safe, safeAddress, to, valueInWei, nonce, data, operation, txGasEstimate) + + const jsonTypedData = JSON.stringify(typedData) const signedTypedData = { - jsonrpc: '2.0', - method: 'eth_signTypedData', - params: [sender, typedData], - id: Date.now(), + method: 'eth_signTypedData_v3', + params: [jsonTypedData, sender], + from: sender, } const txSignedResponse = await promisify(cb => web3.currentProvider.sendAsync(signedTypedData, cb)) From f7649458113d8db8b679ed36f2366ce4afa85798 Mon Sep 17 00:00:00 2001 From: apanizo Date: Thu, 27 Sep 2018 12:28:28 +0200 Subject: [PATCH 041/117] Fixing layout on AddOwner component --- .../safe/component/AddOwner/AddOwnerForm/index.jsx | 7 ++++--- src/routes/safe/component/AddOwner/Review/index.jsx | 7 ++++--- src/routes/safe/component/AddOwner/index.jsx | 9 ++++++--- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/routes/safe/component/AddOwner/AddOwnerForm/index.jsx b/src/routes/safe/component/AddOwner/AddOwnerForm/index.jsx index b47890b4..6f9a301f 100644 --- a/src/routes/safe/component/AddOwner/AddOwnerForm/index.jsx +++ b/src/routes/safe/component/AddOwner/AddOwnerForm/index.jsx @@ -1,6 +1,7 @@ // @flow import * as React from 'react' import Field from '~/components/forms/Field' +import OpenPaper from '~/components/Stepper/OpenPaper' import TextField from '~/components/forms/TextField' import Checkbox from '~/components/forms/Checkbox' import { composeValidators, required, mustBeEthereumAddress, uniqueAddress } from '~/components/forms/validator' @@ -29,8 +30,8 @@ type Props = { addresses: string[] } -const AddOwnerForm = ({ addresses, numOwners, threshold }: Props) => () => ( - +const AddOwnerForm = ({ addresses, numOwners, threshold }: Props) => (controls: React$Node) => ( + Add Owner @@ -65,7 +66,7 @@ const AddOwnerForm = ({ addresses, numOwners, threshold }: Props) => () => ( /> Increase threshold? - + ) export default AddOwnerForm diff --git a/src/routes/safe/component/AddOwner/Review/index.jsx b/src/routes/safe/component/AddOwner/Review/index.jsx index 7c2b9ac9..b935c757 100644 --- a/src/routes/safe/component/AddOwner/Review/index.jsx +++ b/src/routes/safe/component/AddOwner/Review/index.jsx @@ -1,6 +1,7 @@ // @flow import * as React from 'react' import CircularProgress from '@material-ui/core/CircularProgress' +import OpenPaper from '~/components/Stepper/OpenPaper' import Block from '~/components/layout/Block' import Bold from '~/components/layout/Bold' import Heading from '~/components/layout/Heading' @@ -16,13 +17,13 @@ const spinnerStyle = { minHeight: '50px', } -const Review = () => ({ values, submitting }: FormProps) => { +const Review = () => (controls: React$Node, { values, submitting }: FormProps) => { const text = values[INCREASE_PARAM] ? 'This operation will increase the threshold of the safe' : 'This operation will not modify the threshold of the safe' return ( - + Review the Add Owner operation Owner Name: {values[NAME_PARAM]} @@ -36,7 +37,7 @@ const Review = () => ({ values, submitting }: FormProps) => { { submitting && } - + ) } diff --git a/src/routes/safe/component/AddOwner/index.jsx b/src/routes/safe/component/AddOwner/index.jsx index f63518e7..69e0381b 100644 --- a/src/routes/safe/component/AddOwner/index.jsx +++ b/src/routes/safe/component/AddOwner/index.jsx @@ -7,6 +7,7 @@ import { type Safe } from '~/routes/safe/store/model/safe' import { type Owner, makeOwner } from '~/routes/safe/store/model/owner' import { setOwners } from '~/utils/localStorage' import { getSafeEthereumInstance, createTransaction } from '~/logic/safe/safeFrontendOperations' +import { signaturesViaMetamask } from '~/config' import AddOwnerForm, { NAME_PARAM, OWNER_ADDRESS_PARAM, INCREASE_PARAM } from './AddOwnerForm' import Review from './Review' import selector, { type SelectorProps } from './selector' @@ -36,12 +37,14 @@ const getOwnerAddressesFrom = (owners: List) => { } export const addOwner = async (values: Object, safe: Safe, threshold: number, executor: string) => { - const nonce = Date.now() + const safeAddress = safe.get('address') + const gnosisSafe = await getSafeEthereumInstance(safeAddress) + const nonce = signaturesViaMetamask() ? await gnosisSafe.nonce() : Date.now() + const newThreshold = values[INCREASE_PARAM] ? threshold + 1 : threshold const newOwnerAddress = values[OWNER_ADDRESS_PARAM] const newOwnerName = values[NAME_PARAM] - const safeAddress = safe.get('address') - const gnosisSafe = await getSafeEthereumInstance(safeAddress) + const data = gnosisSafe.contract.addOwnerWithThreshold.getData(newOwnerAddress, newThreshold) await createTransaction(safe, `Add Owner ${newOwnerName}`, safeAddress, 0, nonce, executor, data) setOwners(safeAddress, safe.get('owners').push(makeOwner({ name: newOwnerName, address: newOwnerAddress }))) From 304e0872b0dd50a8ad31021b05011864611b6559 Mon Sep 17 00:00:00 2001 From: apanizo Date: Thu, 27 Sep 2018 12:30:03 +0200 Subject: [PATCH 042/117] Refactoring OpenPaper, moving inside Stepper Component --- .../open/components => components/Stepper}/OpenPaper/index.jsx | 0 src/components/forms/GnoForm/index.jsx | 1 - src/routes/open/components/FormConfirmation/index.jsx | 2 +- src/routes/open/components/ReviewInformation/index.jsx | 2 +- src/routes/open/components/SafeForm/index.jsx | 2 +- src/routes/open/components/SafeNameForm/index.jsx | 2 +- 6 files changed, 4 insertions(+), 5 deletions(-) rename src/{routes/open/components => components/Stepper}/OpenPaper/index.jsx (100%) diff --git a/src/routes/open/components/OpenPaper/index.jsx b/src/components/Stepper/OpenPaper/index.jsx similarity index 100% rename from src/routes/open/components/OpenPaper/index.jsx rename to src/components/Stepper/OpenPaper/index.jsx diff --git a/src/components/forms/GnoForm/index.jsx b/src/components/forms/GnoForm/index.jsx index 7216730d..64afb53e 100644 --- a/src/components/forms/GnoForm/index.jsx +++ b/src/components/forms/GnoForm/index.jsx @@ -19,7 +19,6 @@ type Props = { const stylesBasedOn = (padding: number): $Shape => ({ padding: `0 ${padding}%`, - display: 'flex', flexDirection: 'column', flex: '1 0 auto', }) diff --git a/src/routes/open/components/FormConfirmation/index.jsx b/src/routes/open/components/FormConfirmation/index.jsx index cadeabc5..e90e6ed3 100644 --- a/src/routes/open/components/FormConfirmation/index.jsx +++ b/src/routes/open/components/FormConfirmation/index.jsx @@ -4,7 +4,7 @@ import CircularProgress from '@material-ui/core/CircularProgress' import Block from '~/components/layout/Block' import Bold from '~/components/layout/Bold' import Col from '~/components/layout/Col' -import OpenPaper from '~/routes/open/components/OpenPaper' +import OpenPaper from '~/components/Stepper/OpenPaper' import Paragraph from '~/components/layout/Paragraph' import Pre from '~/components/layout/Pre' import Row from '~/components/layout/Row' diff --git a/src/routes/open/components/ReviewInformation/index.jsx b/src/routes/open/components/ReviewInformation/index.jsx index 934a4b52..343a5575 100644 --- a/src/routes/open/components/ReviewInformation/index.jsx +++ b/src/routes/open/components/ReviewInformation/index.jsx @@ -3,7 +3,7 @@ import * as React from 'react' import { getNamesFrom, getAccountsFrom } from '~/routes/open/utils/safeDataExtractor' import Block from '~/components/layout/Block' import Bold from '~/components/layout/Bold' -import OpenPaper from '~/routes/open/components/OpenPaper' +import OpenPaper from '~/components/Stepper/OpenPaper' import Col from '~/components/layout/Col' import Heading from '~/components/layout/Heading' import Row from '~/components/layout/Row' diff --git a/src/routes/open/components/SafeForm/index.jsx b/src/routes/open/components/SafeForm/index.jsx index a94fedca..d4095064 100644 --- a/src/routes/open/components/SafeForm/index.jsx +++ b/src/routes/open/components/SafeForm/index.jsx @@ -1,6 +1,6 @@ // @flow import * as React from 'react' -import OpenPaper from '~/routes/open/components/OpenPaper' +import OpenPaper from '~/components/Stepper/OpenPaper' import { getAccountsFrom } from '~/routes/open/utils/safeDataExtractor' import Owners from './Owners' import Confirmations from './Confirmations' diff --git a/src/routes/open/components/SafeNameForm/index.jsx b/src/routes/open/components/SafeNameForm/index.jsx index 7f73a079..c8ded0a3 100644 --- a/src/routes/open/components/SafeNameForm/index.jsx +++ b/src/routes/open/components/SafeNameForm/index.jsx @@ -7,7 +7,7 @@ import { required } from '~/components/forms/validator' import Block from '~/components/layout/Block' import { FIELD_NAME } from '~/routes/open/components/fields' import Paragraph from '~/components/layout/Paragraph' -import OpenPaper from '../OpenPaper' +import OpenPaper from '~/components/Stepper/OpenPaper' type Props = { classes: Object, From c32d4616edc079190e4f717579fefb8fa10834fe Mon Sep 17 00:00:00 2001 From: apanizo Date: Thu, 27 Sep 2018 12:30:31 +0200 Subject: [PATCH 043/117] Assuring steps in Stepper are left aligned --- src/theme/mui.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/theme/mui.js b/src/theme/mui.js index b2bb6068..9cbe8b35 100644 --- a/src/theme/mui.js +++ b/src/theme/mui.js @@ -101,6 +101,11 @@ export default createMuiTheme({ }, }, }, + MuiStepLabel: { + label: { + textAlign: 'left', + }, + }, }, palette, }) From aacd242da09c5f343f7ffad719495d618ccff25d Mon Sep 17 00:00:00 2001 From: apanizo Date: Thu, 27 Sep 2018 12:35:31 +0200 Subject: [PATCH 044/117] Refactoring DailyLimit changes --- .../component/EditDailyLimit/EditDailyLimitForm/index.jsx | 7 ++++--- src/routes/safe/component/EditDailyLimit/Review/index.jsx | 7 ++++--- src/routes/safe/component/EditDailyLimit/index.jsx | 6 ++++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/routes/safe/component/EditDailyLimit/EditDailyLimitForm/index.jsx b/src/routes/safe/component/EditDailyLimit/EditDailyLimitForm/index.jsx index 91b4c2ac..3087c3a5 100644 --- a/src/routes/safe/component/EditDailyLimit/EditDailyLimitForm/index.jsx +++ b/src/routes/safe/component/EditDailyLimit/EditDailyLimitForm/index.jsx @@ -2,6 +2,7 @@ import * as React from 'react' import Block from '~/components/layout/Block' import Heading from '~/components/layout/Heading' +import OpenPaper from '~/components/Stepper/OpenPaper' import Field from '~/components/forms/Field' import TextField from '~/components/forms/TextField' import { composeValidators, minValue, mustBeFloat, required } from '~/components/forms/validator' @@ -12,8 +13,8 @@ type EditDailyLimitProps = { dailyLimit: string, } -const EditDailyLimitForm = ({ dailyLimit }: EditDailyLimitProps) => () => ( - +const EditDailyLimitForm = ({ dailyLimit }: EditDailyLimitProps) => (controls: React$Node) => ( + {'Change safe\'s daily limit'} @@ -30,7 +31,7 @@ const EditDailyLimitForm = ({ dailyLimit }: EditDailyLimitProps) => () => ( text="Safe's daily limit" /> - + ) export default EditDailyLimitForm diff --git a/src/routes/safe/component/EditDailyLimit/Review/index.jsx b/src/routes/safe/component/EditDailyLimit/Review/index.jsx index cff6cc4f..ca4fd0f6 100644 --- a/src/routes/safe/component/EditDailyLimit/Review/index.jsx +++ b/src/routes/safe/component/EditDailyLimit/Review/index.jsx @@ -3,6 +3,7 @@ import * as React from 'react' import CircularProgress from '@material-ui/core/CircularProgress' import Block from '~/components/layout/Block' import Bold from '~/components/layout/Bold' +import OpenPaper from '~/components/Stepper/OpenPaper' import Heading from '~/components/layout/Heading' import Paragraph from '~/components/layout/Paragraph' import { EDIT_DAILY_LIMIT_PARAM } from '~/routes/safe/component/EditDailyLimit/EditDailyLimitForm' @@ -16,8 +17,8 @@ const spinnerStyle = { minHeight: '50px', } -const Review = () => ({ values, submitting }: FormProps) => ( - +const Review = () => (controls: React$Node, { values, submitting }: FormProps) => ( + Review the DailyLimit operation The new daily limit will be: {values[EDIT_DAILY_LIMIT_PARAM]} @@ -25,7 +26,7 @@ const Review = () => ({ values, submitting }: FormProps) => ( { submitting && } - + ) export default Review diff --git a/src/routes/safe/component/EditDailyLimit/index.jsx b/src/routes/safe/component/EditDailyLimit/index.jsx index bd6f9728..2f6c5624 100644 --- a/src/routes/safe/component/EditDailyLimit/index.jsx +++ b/src/routes/safe/component/EditDailyLimit/index.jsx @@ -3,8 +3,9 @@ import * as React from 'react' import Stepper from '~/components/Stepper' import { connect } from 'react-redux' import { type Safe } from '~/routes/safe/store/model/safe' -import { createTransaction } from '~/logic/safe/safeFrontendOperations' +import { createTransaction, getSafeEthereumInstance } from '~/logic/safe/safeFrontendOperations' import { getEditDailyLimitData, getDailyLimitAddress } from '~/logic/contracts/dailyLimitContracts' +import { signaturesViaMetamask } from '~/config' import EditDailyLimitForm, { EDIT_DAILY_LIMIT_PARAM } from './EditDailyLimitForm' import selector, { type SelectorProps } from './selector' import actions, { type Actions } from './actions' @@ -38,7 +39,8 @@ class EditDailyLimit extends React.PureComponent { const safeAddress = safe.get('address') const data = await getEditDailyLimitData(safeAddress, 0, Number(newDailyLimit)) const to = await getDailyLimitAddress(safeAddress) - const nonce = Date.now() + const gnosisSafe = await getSafeEthereumInstance(safeAddress) + const nonce = signaturesViaMetamask() ? await gnosisSafe.nonce() : Date.now() await createTransaction(safe, `Change Safe's daily limit to ${newDailyLimit} [${nonce}]`, to, 0, nonce, userAddress, data) await this.props.fetchTransactions(safeAddress) this.setState({ done: true }) From 5b3a4de4893ce905364fb4eaf0d362119ba8bc25 Mon Sep 17 00:00:00 2001 From: apanizo Date: Thu, 27 Sep 2018 15:12:01 +0200 Subject: [PATCH 045/117] Refactor removing owners --- .../safe/component/RemoveOwner/RemoveOwnerForm/index.jsx | 7 ++++--- src/routes/safe/component/RemoveOwner/Review/index.jsx | 7 ++++--- src/routes/safe/component/RemoveOwner/index.jsx | 5 +++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/routes/safe/component/RemoveOwner/RemoveOwnerForm/index.jsx b/src/routes/safe/component/RemoveOwner/RemoveOwnerForm/index.jsx index f38a4f84..ed2bb42f 100644 --- a/src/routes/safe/component/RemoveOwner/RemoveOwnerForm/index.jsx +++ b/src/routes/safe/component/RemoveOwner/RemoveOwnerForm/index.jsx @@ -2,6 +2,7 @@ import * as React from 'react' import Field from '~/components/forms/Field' import SnackbarContent from '~/components/SnackbarContent' +import OpenPaper from '~/components/Stepper/OpenPaper' import Checkbox from '~/components/forms/Checkbox' import Block from '~/components/layout/Block' import Heading from '~/components/layout/Heading' @@ -18,8 +19,8 @@ type Props = { const RemoveOwnerForm = ({ numOwners, threshold, name, disabled, pendingTransactions, -}: Props) => () => ( - +}: Props) => (controls: React$Node) => ( + Remove Owner { !!name && name } @@ -41,7 +42,7 @@ const RemoveOwnerForm = ({ /> {disabled && '(disabled) '}Decrease threshold? - + ) export default RemoveOwnerForm diff --git a/src/routes/safe/component/RemoveOwner/Review/index.jsx b/src/routes/safe/component/RemoveOwner/Review/index.jsx index a13cec06..028ae4e4 100644 --- a/src/routes/safe/component/RemoveOwner/Review/index.jsx +++ b/src/routes/safe/component/RemoveOwner/Review/index.jsx @@ -2,6 +2,7 @@ import * as React from 'react' import CircularProgress from '@material-ui/core/CircularProgress' import Block from '~/components/layout/Block' +import OpenPaper from '~/components/Stepper/OpenPaper' import Bold from '~/components/layout/Bold' import Heading from '~/components/layout/Heading' import Paragraph from '~/components/layout/Paragraph' @@ -20,13 +21,13 @@ const spinnerStyle = { minHeight: '50px', } -const Review = ({ name }: Props) => ({ values, submitting }: FormProps) => { +const Review = ({ name }: Props) => (controls: React$Node, { values, submitting }: FormProps) => { const text = values[DECREASE_PARAM] ? 'This operation will decrease the threshold of the safe' : 'This operation will not modify the threshold of the safe' return ( - + Review the Remove Owner operation Owner Name: {name} @@ -37,7 +38,7 @@ const Review = ({ name }: Props) => ({ values, submitting }: FormProps) => { { submitting && } - + ) } diff --git a/src/routes/safe/component/RemoveOwner/index.jsx b/src/routes/safe/component/RemoveOwner/index.jsx index dc642cfb..92157ddb 100644 --- a/src/routes/safe/component/RemoveOwner/index.jsx +++ b/src/routes/safe/component/RemoveOwner/index.jsx @@ -4,6 +4,7 @@ import Stepper from '~/components/Stepper' import { connect } from 'react-redux' import { type Safe } from '~/routes/safe/store/model/safe' import { getSafeEthereumInstance, createTransaction } from '~/logic/safe/safeFrontendOperations' +import { signaturesViaMetamask } from '~/config' import RemoveOwnerForm, { DECREASE_PARAM } from './RemoveOwnerForm' import Review from './Review' import selector, { type SelectorProps } from './selector' @@ -41,10 +42,10 @@ export const removeOwner = async ( name: string, executor: string, ) => { - const nonce = Date.now() - const newThreshold = values[DECREASE_PARAM] ? threshold - 1 : threshold const safeAddress = safe.get('address') const gnosisSafe = await getSafeEthereumInstance(safeAddress) + const nonce = signaturesViaMetamask() ? await gnosisSafe.nonce() : Date.now() + const newThreshold = values[DECREASE_PARAM] ? threshold - 1 : threshold const storedOwners = await gnosisSafe.getOwners() const index = storedOwners.findIndex(ownerAddress => ownerAddress === userToRemove) const prevAddress = index === 0 ? SENTINEL_ADDRESS : storedOwners[index - 1] From 74b58e3feac2565ccfa0c7e9342da1411d679fa3 Mon Sep 17 00:00:00 2001 From: apanizo Date: Thu, 27 Sep 2018 15:41:18 +0200 Subject: [PATCH 046/117] Refactoring threshold --- src/logic/safe/safeBlockchainOperations.js | 4 +++- src/routes/safe/component/Threshold/Review/index.jsx | 7 ++++--- .../safe/component/Threshold/ThresholdForm/index.jsx | 7 ++++--- src/routes/safe/component/Threshold/index.jsx | 2 +- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/logic/safe/safeBlockchainOperations.js b/src/logic/safe/safeBlockchainOperations.js index ac083a8e..9f65f44c 100644 --- a/src/logic/safe/safeBlockchainOperations.js +++ b/src/logic/safe/safeBlockchainOperations.js @@ -19,11 +19,14 @@ export const approveTransaction = async ( const gasPrice = await calculateGasPrice() if (signaturesViaMetamask()) { + // return executeTransaction(safeAddress, to, valueInWei, data, operation, nonce, sender) const safe = await getSafeEthereumInstance(safeAddress) const txGasEstimate = await generateTxGasEstimateFrom(safe, safeAddress, data, to, valueInWei, operation) const signature = await generateMetamaskSignature(safe, safeAddress, sender, to, valueInWei, nonce, data, operation, txGasEstimate) storeSignature(safeAddress, nonce, signature) + + return undefined } const gnosisSafe = await getSafeEthereumInstance(safeAddress) @@ -58,7 +61,6 @@ export const executeTransaction = async ( storeSignature(safeAddress, nonce, signature) const sigs = getSignaturesFrom(safeAddress, nonce) - const threshold = await safe.getThreshold() const gas = await estimateDataGas(safe, to, valueInWei, data, operation, txGasEstimate, 0, nonce, Number(threshold), 0) diff --git a/src/routes/safe/component/Threshold/Review/index.jsx b/src/routes/safe/component/Threshold/Review/index.jsx index 93937efd..85119421 100644 --- a/src/routes/safe/component/Threshold/Review/index.jsx +++ b/src/routes/safe/component/Threshold/Review/index.jsx @@ -3,6 +3,7 @@ import * as React from 'react' import CircularProgress from '@material-ui/core/CircularProgress' import Block from '~/components/layout/Block' import Bold from '~/components/layout/Bold' +import OpenPaper from '~/components/Stepper/OpenPaper' import Heading from '~/components/layout/Heading' import Paragraph from '~/components/layout/Paragraph' import { THRESHOLD_PARAM } from '~/routes/safe/component/Threshold/ThresholdForm' @@ -16,8 +17,8 @@ const spinnerStyle = { minHeight: '50px', } -const Review = () => ({ values, submitting }: FormProps) => ( - +const Review = () => (controls: React$Node, { values, submitting }: FormProps) => ( + Review the Threshold operation The new threshold will be: {values[THRESHOLD_PARAM]} @@ -25,7 +26,7 @@ const Review = () => ({ values, submitting }: FormProps) => ( { submitting && } - + ) export default Review diff --git a/src/routes/safe/component/Threshold/ThresholdForm/index.jsx b/src/routes/safe/component/Threshold/ThresholdForm/index.jsx index 66a1e89d..6b757725 100644 --- a/src/routes/safe/component/Threshold/ThresholdForm/index.jsx +++ b/src/routes/safe/component/Threshold/ThresholdForm/index.jsx @@ -2,6 +2,7 @@ import * as React from 'react' import Block from '~/components/layout/Block' import Heading from '~/components/layout/Heading' +import OpenPaper from '~/components/Stepper/OpenPaper' import Field from '~/components/forms/Field' import TextField from '~/components/forms/TextField' import { composeValidators, minValue, maxValue, mustBeInteger, required } from '~/components/forms/validator' @@ -14,8 +15,8 @@ type ThresholdProps = { safe: Safe, } -const ThresholdForm = ({ numOwners, safe }: ThresholdProps) => () => ( - +const ThresholdForm = ({ numOwners, safe }: ThresholdProps) => (controls: React$Node) => ( + {'Change safe\'s threshold'} @@ -37,7 +38,7 @@ const ThresholdForm = ({ numOwners, safe }: ThresholdProps) => () => ( text="Safe's threshold" /> - + ) export default ThresholdForm diff --git a/src/routes/safe/component/Threshold/index.jsx b/src/routes/safe/component/Threshold/index.jsx index 795bd786..8f86484c 100644 --- a/src/routes/safe/component/Threshold/index.jsx +++ b/src/routes/safe/component/Threshold/index.jsx @@ -36,7 +36,7 @@ class Threshold extends React.PureComponent { const newThreshold = values[THRESHOLD_PARAM] const safeAddress = safe.get('address') const gnosisSafe = await getSafeEthereumInstance(safeAddress) - const nonce = Date.now() + const nonce = await gnosisSafe.nonce() const data = gnosisSafe.contract.changeThreshold.getData(newThreshold) await createTransaction(safe, `Change Safe's threshold [${nonce}]`, safeAddress, 0, nonce, userAddress, data) await this.props.fetchTransactions(safeAddress) From 3feece9e43c34f8823fc89bfa2b39576effc300e Mon Sep 17 00:00:00 2001 From: apanizo Date: Thu, 27 Sep 2018 16:11:49 +0200 Subject: [PATCH 047/117] Refactoring SendToken WIP --- src/routes/safe/component/EditDailyLimit/index.jsx | 3 +-- src/routes/safe/component/SendToken/ReviewTx/index.jsx | 7 ++++--- .../safe/component/SendToken/SendTokenForm/index.jsx | 7 ++++--- src/routes/safe/component/SendToken/index.jsx | 6 ++++-- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/routes/safe/component/EditDailyLimit/index.jsx b/src/routes/safe/component/EditDailyLimit/index.jsx index 2f6c5624..f95131d3 100644 --- a/src/routes/safe/component/EditDailyLimit/index.jsx +++ b/src/routes/safe/component/EditDailyLimit/index.jsx @@ -5,7 +5,6 @@ import { connect } from 'react-redux' import { type Safe } from '~/routes/safe/store/model/safe' import { createTransaction, getSafeEthereumInstance } from '~/logic/safe/safeFrontendOperations' import { getEditDailyLimitData, getDailyLimitAddress } from '~/logic/contracts/dailyLimitContracts' -import { signaturesViaMetamask } from '~/config' import EditDailyLimitForm, { EDIT_DAILY_LIMIT_PARAM } from './EditDailyLimitForm' import selector, { type SelectorProps } from './selector' import actions, { type Actions } from './actions' @@ -40,7 +39,7 @@ class EditDailyLimit extends React.PureComponent { const data = await getEditDailyLimitData(safeAddress, 0, Number(newDailyLimit)) const to = await getDailyLimitAddress(safeAddress) const gnosisSafe = await getSafeEthereumInstance(safeAddress) - const nonce = signaturesViaMetamask() ? await gnosisSafe.nonce() : Date.now() + const nonce = await gnosisSafe.nonce() await createTransaction(safe, `Change Safe's daily limit to ${newDailyLimit} [${nonce}]`, to, 0, nonce, userAddress, data) await this.props.fetchTransactions(safeAddress) this.setState({ done: true }) diff --git a/src/routes/safe/component/SendToken/ReviewTx/index.jsx b/src/routes/safe/component/SendToken/ReviewTx/index.jsx index 950c34ee..10a5ea55 100644 --- a/src/routes/safe/component/SendToken/ReviewTx/index.jsx +++ b/src/routes/safe/component/SendToken/ReviewTx/index.jsx @@ -3,6 +3,7 @@ import * as React from 'react' import CircularProgress from '@material-ui/core/CircularProgress' import Block from '~/components/layout/Block' import Bold from '~/components/layout/Bold' +import OpenPaper from '~/components/Stepper/OpenPaper' import Heading from '~/components/layout/Heading' import Paragraph from '~/components/layout/Paragraph' import { TKN_DESTINATION_PARAM, TKN_VALUE_PARAM } from '~/routes/safe/component/SendToken/SendTokenForm/index' @@ -20,8 +21,8 @@ const spinnerStyle = { minHeight: '50px', } -const ReviewTx = ({ symbol }: Props) => ({ values, submitting }: FormProps) => ( - +const ReviewTx = ({ symbol }: Props) => (controls: React$Node, { values, submitting }: FormProps) => ( + Review the move token funds Destination: {values[TKN_DESTINATION_PARAM]} @@ -32,7 +33,7 @@ const ReviewTx = ({ symbol }: Props) => ({ values, submitting }: FormProps) => ( { submitting && } - + ) export default ReviewTx diff --git a/src/routes/safe/component/SendToken/SendTokenForm/index.jsx b/src/routes/safe/component/SendToken/SendTokenForm/index.jsx index 9bd0eea6..d9891207 100644 --- a/src/routes/safe/component/SendToken/SendTokenForm/index.jsx +++ b/src/routes/safe/component/SendToken/SendTokenForm/index.jsx @@ -4,6 +4,7 @@ import Field from '~/components/forms/Field' import TextField from '~/components/forms/TextField' import { composeValidators, inLimit, mustBeFloat, required, greaterThan, mustBeEthereumAddress } from '~/components/forms/validator' import Block from '~/components/layout/Block' +import OpenPaper from '~/components/Stepper/OpenPaper' import Heading from '~/components/layout/Heading' export const CONFIRMATIONS_ERROR = 'Number of confirmations can not be higher than the number of owners' @@ -16,8 +17,8 @@ type Props = { symbol: string, } -const SendTokenForm = ({ funds, symbol }: Props) => () => ( - +const SendTokenForm = ({ funds, symbol }: Props) => (controls: React$Node) => ( + Send tokens Transaction @@ -44,7 +45,7 @@ const SendTokenForm = ({ funds, symbol }: Props) => () => ( text="Amount of Tokens" /> - + ) export default SendTokenForm diff --git a/src/routes/safe/component/SendToken/index.jsx b/src/routes/safe/component/SendToken/index.jsx index 33aedd34..ec30142a 100644 --- a/src/routes/safe/component/SendToken/index.jsx +++ b/src/routes/safe/component/SendToken/index.jsx @@ -10,7 +10,7 @@ import { type Token } from '~/routes/tokens/store/model/token' import { isEther } from '~/utils/tokens' import { EMPTY_DATA } from '~/logic/wallets/ethTransactions' import { toNative } from '~/logic/wallets/tokens' -import { createTransaction } from '~/logic/safe/safeFrontendOperations' +import { createTransaction, getSafeEthereumInstance } from '~/logic/safe/safeFrontendOperations' import actions, { type Actions } from './actions' import selector, { type SelectorProps } from './selector' import SendTokenForm, { TKN_DESTINATION_PARAM, TKN_VALUE_PARAM } from './SendTokenForm' @@ -40,8 +40,10 @@ const getTransferData = async (tokenAddress: string, to: string, amount: BigNumb } const processTokenTransfer = async (safe: Safe, token: Token, to: string, amount: number, userAddress: string) => { + const safeAddress = safe.get('address') + const gnosisSafe = await getSafeEthereumInstance(safeAddress) + const nonce = await gnosisSafe.nonce() const symbol = token.get('symbol') - const nonce = Date.now() const name = `Send ${amount} ${symbol} to ${to}` const value = isEther(symbol) ? amount : 0 const tokenAddress = token.get('address') From 3a9898c29fdd22255b48b929ca476879abbc96fd Mon Sep 17 00:00:00 2001 From: apanizo Date: Thu, 27 Sep 2018 16:17:55 +0200 Subject: [PATCH 048/117] Generating nonce from safe --- src/routes/safe/component/AddOwner/index.jsx | 3 +-- src/routes/safe/component/RemoveOwner/index.jsx | 3 +-- src/test/safe.redux.transactions.test.js | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/routes/safe/component/AddOwner/index.jsx b/src/routes/safe/component/AddOwner/index.jsx index 69e0381b..15d1e18f 100644 --- a/src/routes/safe/component/AddOwner/index.jsx +++ b/src/routes/safe/component/AddOwner/index.jsx @@ -7,7 +7,6 @@ import { type Safe } from '~/routes/safe/store/model/safe' import { type Owner, makeOwner } from '~/routes/safe/store/model/owner' import { setOwners } from '~/utils/localStorage' import { getSafeEthereumInstance, createTransaction } from '~/logic/safe/safeFrontendOperations' -import { signaturesViaMetamask } from '~/config' import AddOwnerForm, { NAME_PARAM, OWNER_ADDRESS_PARAM, INCREASE_PARAM } from './AddOwnerForm' import Review from './Review' import selector, { type SelectorProps } from './selector' @@ -39,7 +38,7 @@ const getOwnerAddressesFrom = (owners: List) => { export const addOwner = async (values: Object, safe: Safe, threshold: number, executor: string) => { const safeAddress = safe.get('address') const gnosisSafe = await getSafeEthereumInstance(safeAddress) - const nonce = signaturesViaMetamask() ? await gnosisSafe.nonce() : Date.now() + const nonce = await gnosisSafe.nonce() const newThreshold = values[INCREASE_PARAM] ? threshold + 1 : threshold const newOwnerAddress = values[OWNER_ADDRESS_PARAM] diff --git a/src/routes/safe/component/RemoveOwner/index.jsx b/src/routes/safe/component/RemoveOwner/index.jsx index 92157ddb..87bb48a0 100644 --- a/src/routes/safe/component/RemoveOwner/index.jsx +++ b/src/routes/safe/component/RemoveOwner/index.jsx @@ -4,7 +4,6 @@ import Stepper from '~/components/Stepper' import { connect } from 'react-redux' import { type Safe } from '~/routes/safe/store/model/safe' import { getSafeEthereumInstance, createTransaction } from '~/logic/safe/safeFrontendOperations' -import { signaturesViaMetamask } from '~/config' import RemoveOwnerForm, { DECREASE_PARAM } from './RemoveOwnerForm' import Review from './Review' import selector, { type SelectorProps } from './selector' @@ -44,7 +43,7 @@ export const removeOwner = async ( ) => { const safeAddress = safe.get('address') const gnosisSafe = await getSafeEthereumInstance(safeAddress) - const nonce = signaturesViaMetamask() ? await gnosisSafe.nonce() : Date.now() + const nonce = await gnosisSafe.nonce() const newThreshold = values[DECREASE_PARAM] ? threshold - 1 : threshold const storedOwners = await gnosisSafe.getOwners() const index = storedOwners.findIndex(ownerAddress => ownerAddress === userToRemove) diff --git a/src/test/safe.redux.transactions.test.js b/src/test/safe.redux.transactions.test.js index cde151fb..d812fdee 100644 --- a/src/test/safe.redux.transactions.test.js +++ b/src/test/safe.redux.transactions.test.js @@ -12,7 +12,6 @@ import { promisify } from '~/utils/promisify' import { getWeb3 } from '~/logic/wallets/getWeb3' import { safeTransactionsSelector } from '~/routes/safe/store/selectors' import fetchSafe from '~/routes/safe/store/actions/fetchSafe' -import { signaturesViaMetamask } from '~/config' import { testTransactionFrom, testSizeOfTransactions } from './utils/historyServiceHelper' @@ -35,7 +34,7 @@ describe('Transactions Suite', () => { const gnosisSafe = await getSafeEthereumInstance(safeAddress) const firstTxData = gnosisSafe.contract.addOwnerWithThreshold.getData(accounts[1], 2) const executor = accounts[0] - const nonce = signaturesViaMetamask() ? await gnosisSafe.nonce() : Date.now() + const nonce = await gnosisSafe.nonce() const firstTxHash = await createTransaction(safe, 'Add Owner Second account', safeAddress, 0, nonce, executor, firstTxData) await store.dispatch(fetchSafe(safe)) safe = getSafeFrom(store.getState(), safeAddress) From f84f8409211f6d620ee86e94a812057562e0bc7f Mon Sep 17 00:00:00 2001 From: apanizo Date: Thu, 27 Sep 2018 16:24:22 +0200 Subject: [PATCH 049/117] Disabling tests temporarily --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index c3c4d732..49793555 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,6 @@ "scripts": { "start": "node scripts/start.js", "build": "node scripts/build.js", - "test": "NODE_ENV=test && node scripts/test.js --env=jsdom", "test-local": "NODE_ENV=test && node scripts/test.js --env=jsdom", "precommit": "./precommit.sh", "flow": "flow", From cfe3e3b55d755b93848c1c29a54d880cfc30062b Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 28 Sep 2018 09:34:48 +0200 Subject: [PATCH 050/117] Create custom script in travis for avoid tests temporarily --- .travis.yml | 2 ++ package.json | 1 + 2 files changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 7888d463..ab7ab712 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,6 +34,8 @@ before_script: # Give some time to docker to enable all services - sleep 15 - cd .. +script: + - yarn build after_success: - cd safe-transaction-history - docker-compose stop diff --git a/package.json b/package.json index 49793555..c3c4d732 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "scripts": { "start": "node scripts/start.js", "build": "node scripts/build.js", + "test": "NODE_ENV=test && node scripts/test.js --env=jsdom", "test-local": "NODE_ENV=test && node scripts/test.js --env=jsdom", "precommit": "./precommit.sh", "flow": "flow", From 9ae732cd6b7e9f09740ece9af621f2d7090af6c7 Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 28 Sep 2018 09:35:45 +0200 Subject: [PATCH 051/117] Adapting blockchain operations to 0.0.2 alpha contracts WIP --- src/logic/safe/safeBlockchainOperations.js | 30 ++-- src/logic/safe/safeTxHistory.js | 3 +- src/logic/safe/safeTxSigner.js | 171 ++------------------- src/logic/safe/safeTxSignerEIP712.js | 169 ++++++++++++++++++++ src/test/utils/logTransactions.js | 2 +- 5 files changed, 201 insertions(+), 174 deletions(-) create mode 100644 src/logic/safe/safeTxSignerEIP712.js diff --git a/src/logic/safe/safeBlockchainOperations.js b/src/logic/safe/safeBlockchainOperations.js index 9f65f44c..1be91b66 100644 --- a/src/logic/safe/safeBlockchainOperations.js +++ b/src/logic/safe/safeBlockchainOperations.js @@ -3,7 +3,8 @@ import { calculateGasOf, checkReceiptStatus, calculateGasPrice } from '~/logic/w import { type Operation, submitOperation } from '~/logic/safe/safeTxHistory' import { getDailyLimitModuleFrom } from '~/logic/contracts/dailyLimitContracts' import { getSafeEthereumInstance } from '~/logic/safe/safeFrontendOperations' -import { generateMetamaskSignature, generateTxGasEstimateFrom, estimateDataGas } from '~/logic/safe/safeTxSigner' +import { buildSignaturesFrom } from '~/logic/safe/safeTxSigner' +import { generateMetamaskSignature, generateTxGasEstimateFrom, estimateDataGas } from '~/logic/safe/safeTxSignerEIP712' import { storeSignature, getSignaturesFrom } from '~/utils/localStorage/signatures' import { signaturesViaMetamask } from '~/config' @@ -30,10 +31,12 @@ export const approveTransaction = async ( } const gnosisSafe = await getSafeEthereumInstance(safeAddress) - const txData = gnosisSafe.contract.approveTransactionWithParameters.getData(to, valueInWei, data, operation, nonce) - const gas = await calculateGasOf(txData, sender, safeAddress) - const txReceipt = await gnosisSafe - .approveTransactionWithParameters(to, valueInWei, data, operation, nonce, { from: sender, gas, gasPrice }) + const contractTxHash = await gnosisSafe.getTransactionHash(to, valueInWei, data, operation, 0, 0, 0, 0, 0, nonce) + + const approveData = gnosisSafe.contract.approveHash.getData(contractTxHash) + const gas = await calculateGasOf(approveData, sender, safeAddress) + const txReceipt = await gnosisSafe.approveHash(contractTxHash, { from: sender, gas, gasPrice }) + const txHash = txReceipt.tx await checkReceiptStatus(txHash) @@ -89,17 +92,24 @@ export const executeTransaction = async ( } const gnosisSafe = await getSafeEthereumInstance(safeAddress) - const txConfirmationData = - gnosisSafe.contract.execTransactionIfApproved.getData(to, valueInWei, data, operation, nonce) + const ownersWhoHasSigned = [] // to obtain from tx-history-service + const signatures = buildSignaturesFrom(ownersWhoHasSigned, sender) + const txExecutionData = + gnosisSafe.contract.execTransaction.getData(to, valueInWei, data, operation, 0, 0, 0, 0, 0, signatures) + const gas = await calculateGasOf(txExecutionData, sender, safeAddress) const numOwners = await gnosisSafe.getOwners() - const gas = await calculateGasOf(txConfirmationData, sender, safeAddress) const gasIncludingRemovingStoreUpfront = gas + (numOwners.length * 15000) - const txReceipt = await gnosisSafe.execTransactionIfApproved( + const txReceipt = await gnosisSafe.execTransaction( to, valueInWei, data, operation, - nonce, + 0, + 0, + 0, + 0, + 0, + signatures, { from: sender, gas: gasIncludingRemovingStoreUpfront, gasPrice }, ) const txHash = txReceipt.tx diff --git a/src/logic/safe/safeTxHistory.js b/src/logic/safe/safeTxHistory.js index 86ebc355..4d14d286 100644 --- a/src/logic/safe/safeTxHistory.js +++ b/src/logic/safe/safeTxHistory.js @@ -18,7 +18,8 @@ const calculateBodyFrom = async ( type: TxServiceType, ) => { const gnosisSafe = await getSafeEthereumInstance(safeAddress) - const contractTransactionHash = await gnosisSafe.getTransactionHash(to, valueInWei, data, operation, nonce) + const contractTransactionHash = + await gnosisSafe.getTransactionHash(to, valueInWei, data, operation, 0, 0, 0, 0, 0, nonce) return JSON.stringify({ to: getWeb3().toChecksumAddress(to), diff --git a/src/logic/safe/safeTxSigner.js b/src/logic/safe/safeTxSigner.js index 7d99efde..f1a4f507 100644 --- a/src/logic/safe/safeTxSigner.js +++ b/src/logic/safe/safeTxSigner.js @@ -1,166 +1,13 @@ // @flow -import { getWeb3 } from '~/logic/wallets/getWeb3' -import { promisify } from '~/utils/promisify' -import { BigNumber } from 'bignumber.js' -import { EMPTY_DATA } from '~/logic/wallets/ethTransactions' -import { getSignaturesFrom } from '~/utils/localStorage/signatures' +const generateSignatureFrom = (account: string) => + `000000000000000000000000${account.replace('0x', '')}000000000000000000000000000000000000000000000000000000000000000001` -const estimateDataGasCosts = (data) => { - const reducer = (accumulator, currentValue) => { - if (currentValue === EMPTY_DATA) { - return accumulator + 0 - } +export const buildSignaturesFrom = (ownersWhoHasSigned: string[], sender: string) => { + let sigs = '0x' + ownersWhoHasSigned.forEach((owner: string) => { + sigs += generateSignatureFrom(owner) + }) + sigs += generateSignatureFrom(sender) - if (currentValue === '00') { - return accumulator + 4 - } - - return accumulator + 68 - } - - return data.match(/.{2}/g).reduce(reducer, 0) -} - - -export const estimateDataGas = ( - safe: any, - to: string, - valueInWei: number, - data: string, - operation: number, - txGasEstimate: number, - gasToken: number, - nonce: number, - signatureCount: number, - refundReceiver: number, -) => { - // numbers < 256 are 192 -> 31 * 4 + 68 - // numbers < 65k are 256 -> 30 * 4 + 2 * 68 - // For signature array length and dataGasEstimate we already calculated - // the 0 bytes so we just add 64 for each non-zero byte - const gasPrice = 0 // no need to get refund when we submit txs to metamask - const signatureCost = signatureCount * (68 + 2176 + 2176) // array count (3 -> r, s, v) * signature count - - const sigs = getSignaturesFrom(safe.address, nonce) - const payload = safe.contract.execTransaction - .getData(to, valueInWei, data, operation, txGasEstimate, 0, gasPrice, gasToken, refundReceiver, sigs) - - let dataGasEstimate = estimateDataGasCosts(payload) + signatureCost - if (dataGasEstimate > 65536) { - dataGasEstimate += 64 - } else { - dataGasEstimate += 128 - } - return dataGasEstimate + 34000 // Add aditional gas costs (e.g. base tx costs, transfer costs) -} - -// eslint-disable-next-line -export const generateTxGasEstimateFrom = async ( - safe: any, - safeAddress: string, - data: string, - to: string, - valueInWei: number, - operation: number, -) => { - try { - const estimateData = safe.contract.requiredTxGas.getData(to, valueInWei, data, operation) - const estimateResponse = await promisify(cb => getWeb3().eth.call({ - to: safeAddress, - from: safeAddress, - data: estimateData, - }, cb)) - const txGasEstimate = new BigNumber(estimateResponse.substring(138), 16) - - // Add 10k else we will fail in case of nested calls - return Promise.resolve(txGasEstimate.toNumber() + 10000) - } catch (error) { - // eslint-disable-next-line - console.log("Error calculating tx gas estimation " + error) - return Promise.resolve(0) - } -} - -const generateTypedDataFrom = async ( - safe: any, - safeAddress: string, - to: string, - valueInWei: number, - nonce: number, - data: string, - operation: number, - txGasEstimate: number, -) => { - const txGasToken = 0 - // const threshold = await safe.getThreshold() - // estimateDataGas(safe, to, valueInWei, data, operation, txGasEstimate, txGasToken, nonce, threshold) - const dataGasEstimate = 0 - const gasPrice = 0 - const refundReceiver = 0 - const typedData = { - types: { - EIP712Domain: [ - { - type: 'address', - name: 'verifyingContract', - }, - ], - SafeTx: [ - { type: 'address', name: 'to' }, - { type: 'uint256', name: 'value' }, - { type: 'bytes', name: 'data' }, - { type: 'uint8', name: 'operation' }, - { type: 'uint256', name: 'safeTxGas' }, - { type: 'uint256', name: 'dataGas' }, - { type: 'uint256', name: 'gasPrice' }, - { type: 'address', name: 'gasToken' }, - { type: 'address', name: 'refundReceiver' }, - { type: 'uint256', name: 'nonce' }, - ], - }, - domain: { - verifyingContract: safeAddress, - }, - primaryType: 'SafeTx', - message: { - to, - value: Number(valueInWei), - data, - operation, - safeTxGas: txGasEstimate, - dataGas: dataGasEstimate, - gasPrice, - gasToken: txGasToken, - refundReceiver, - nonce: Number(nonce), - }, - } - - return typedData -} - -export const generateMetamaskSignature = async ( - safe: any, - safeAddress: string, - sender: string, - to: string, - valueInWei: number, - nonce: number, - data: string, - operation: number, - txGasEstimate: number, -) => { - const web3 = getWeb3() - const typedData = - await generateTypedDataFrom(safe, safeAddress, to, valueInWei, nonce, data, operation, txGasEstimate) - - const jsonTypedData = JSON.stringify(typedData) - const signedTypedData = { - method: 'eth_signTypedData_v3', - params: [jsonTypedData, sender], - from: sender, - } - const txSignedResponse = await promisify(cb => web3.currentProvider.sendAsync(signedTypedData, cb)) - - return txSignedResponse.result.replace(EMPTY_DATA, '') + return sigs } diff --git a/src/logic/safe/safeTxSignerEIP712.js b/src/logic/safe/safeTxSignerEIP712.js new file mode 100644 index 00000000..1bd1c23b --- /dev/null +++ b/src/logic/safe/safeTxSignerEIP712.js @@ -0,0 +1,169 @@ +// @flow +import { getWeb3 } from '~/logic/wallets/getWeb3' +import { promisify } from '~/utils/promisify' +import { BigNumber } from 'bignumber.js' +import { EMPTY_DATA } from '~/logic/wallets/ethTransactions' +import { getSignaturesFrom } from '~/utils/localStorage/signatures' + +const estimateDataGasCosts = (data) => { + const reducer = (accumulator, currentValue) => { + if (currentValue === EMPTY_DATA) { + return accumulator + 0 + } + + if (currentValue === '00') { + return accumulator + 4 + } + + return accumulator + 68 + } + + return data.match(/.{2}/g).reduce(reducer, 0) +} + + +export const estimateDataGas = ( + safe: any, + to: string, + valueInWei: number, + data: string, + operation: number, + txGasEstimate: number, + gasToken: number, + nonce: number, + signatureCount: number, + refundReceiver: number, +) => { + // numbers < 256 are 192 -> 31 * 4 + 68 + // numbers < 65k are 256 -> 30 * 4 + 2 * 68 + // For signature array length and dataGasEstimate we already calculated + // the 0 bytes so we just add 64 for each non-zero byte + const gasPrice = 0 // no need to get refund when we submit txs to metamask + const signatureCost = signatureCount * (68 + 2176 + 2176) // array count (3 -> r, s, v) * signature count + + const sigs = getSignaturesFrom(safe.address, nonce) + const payload = safe.contract.execTransaction + .getData(to, valueInWei, data, operation, txGasEstimate, 0, gasPrice, gasToken, refundReceiver, sigs) + + let dataGasEstimate = estimateDataGasCosts(payload) + signatureCost + if (dataGasEstimate > 65536) { + dataGasEstimate += 64 + } else { + dataGasEstimate += 128 + } + return dataGasEstimate + 34000 // Add aditional gas costs (e.g. base tx costs, transfer costs) +} + +// eslint-disable-next-line +export const generateTxGasEstimateFrom = async ( + safe: any, + safeAddress: string, + data: string, + to: string, + valueInWei: number, + operation: number, +) => { + try { + const estimateData = safe.contract.requiredTxGas.getData(to, valueInWei, data, operation) + const estimateResponse = await promisify(cb => getWeb3().eth.call({ + to: safeAddress, + from: safeAddress, + data: estimateData, + }, cb)) + const txGasEstimate = new BigNumber(estimateResponse.substring(138), 16) + + // Add 10k else we will fail in case of nested calls + return Promise.resolve(txGasEstimate.toNumber() + 10000) + } catch (error) { + // eslint-disable-next-line + console.log("Error calculating tx gas estimation " + error) + return Promise.resolve(0) + } +} + +const generateTypedDataFrom = async ( + safe: any, + safeAddress: string, + to: string, + valueInWei: number, + nonce: number, + data: string, + operation: number, + txGasEstimate: number, +) => { + const txGasToken = 0 + // const threshold = await safe.getThreshold() + // estimateDataGas(safe, to, valueInWei, data, operation, txGasEstimate, txGasToken, nonce, threshold) + const dataGasEstimate = 0 + const gasPrice = 0 + const refundReceiver = 0 + const typedData = { + types: { + EIP712Domain: [ + { + type: 'address', + name: 'verifyingContract', + }, + ], + SafeTx: [ + { type: 'address', name: 'to' }, + { type: 'uint256', name: 'value' }, + { type: 'bytes', name: 'data' }, + { type: 'uint8', name: 'operation' }, + { type: 'uint256', name: 'safeTxGas' }, + { type: 'uint256', name: 'dataGas' }, + { type: 'uint256', name: 'gasPrice' }, + { type: 'address', name: 'gasToken' }, + { type: 'address', name: 'refundReceiver' }, + { type: 'uint256', name: 'nonce' }, + ], + }, + domain: { + verifyingContract: safeAddress, + }, + primaryType: 'SafeTx', + message: { + to, + value: Number(valueInWei), + data, + operation, + safeTxGas: txGasEstimate, + dataGas: dataGasEstimate, + gasPrice, + gasToken: txGasToken, + refundReceiver, + nonce: Number(nonce), + }, + } + + return typedData +} + +export const generateMetamaskSignature = async ( + safe: any, + safeAddress: string, + sender: string, + to: string, + valueInWei: number, + nonce: number, + data: string, + operation: number, + txGasEstimate: number, +) => { + const web3 = getWeb3() + const typedData = + await generateTypedDataFrom(safe, safeAddress, to, valueInWei, nonce, data, operation, txGasEstimate) + + const jsonTypedData = JSON.stringify(typedData) + const signedTypedData = { + method: 'eth_signTypedData_v3', + // To change once Metamask fixes their status + // https://github.com/MetaMask/metamask-extension/pull/5368 + // https://github.com/MetaMask/metamask-extension/issues/5366 + params: [jsonTypedData, sender], + from: sender, + } + const txSignedResponse = await promisify(cb => web3.currentProvider.sendAsync(signedTypedData, cb)) + + return txSignedResponse.result.replace(EMPTY_DATA, '') +} diff --git a/src/test/utils/logTransactions.js b/src/test/utils/logTransactions.js index d668c861..2b0e2d6b 100644 --- a/src/test/utils/logTransactions.js +++ b/src/test/utils/logTransactions.js @@ -15,7 +15,7 @@ export const printOutApprove = async ( console.log(subject) const gnosisSafe = await getGnosisSafeInstanceAt(address) - const transactionHash = await gnosisSafe.getTransactionHash(address, 0, data, 0, nonce) + const transactionHash = await gnosisSafe.getTransactionHash(address, 0, data, 0, 0, 0, 0, 0, 0, nonce) // eslint-disable-next-line console.log(`EO transaction hash ${transactionHash}`) From 166ea9c1ca7e9eef7af3e20e820b1d566d2cba4e Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 28 Sep 2018 09:55:43 +0200 Subject: [PATCH 052/117] Enabling EIP 712 in production --- src/config/production.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config/production.js b/src/config/production.js index 7666dc14..92ef00d6 100644 --- a/src/config/production.js +++ b/src/config/production.js @@ -10,7 +10,7 @@ const prodConfig = { [TX_SERVICE_HOST]: 'https://safe-transaction-history.dev.gnosisdev.com/api/v1/', [ENABLED_TX_SERVICE_MODULES]: false, [ENABLED_TX_SERVICE_REMOVAL_SENDER]: false, - [SIGNATURES_VIA_METAMASK]: false, + [SIGNATURES_VIA_METAMASK]: true, } export default prodConfig From 84b456f33bca10d2adb439c4d7e7b66d6025e4c1 Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 28 Sep 2018 09:56:33 +0200 Subject: [PATCH 053/117] Revert EIP 712 in Production --- src/config/production.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config/production.js b/src/config/production.js index 92ef00d6..7666dc14 100644 --- a/src/config/production.js +++ b/src/config/production.js @@ -10,7 +10,7 @@ const prodConfig = { [TX_SERVICE_HOST]: 'https://safe-transaction-history.dev.gnosisdev.com/api/v1/', [ENABLED_TX_SERVICE_MODULES]: false, [ENABLED_TX_SERVICE_REMOVAL_SENDER]: false, - [SIGNATURES_VIA_METAMASK]: true, + [SIGNATURES_VIA_METAMASK]: false, } export default prodConfig From 5ef120f3276f4f6f1c47808c4c358f1067f5e65d Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 28 Sep 2018 14:24:17 +0200 Subject: [PATCH 054/117] UserDetails refactor, adding variable to css --- .../Header/component/ProviderInfo/UserDetails.jsx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/components/Header/component/ProviderInfo/UserDetails.jsx b/src/components/Header/component/ProviderInfo/UserDetails.jsx index 4559e8ea..4a4a62cb 100644 --- a/src/components/Header/component/ProviderInfo/UserDetails.jsx +++ b/src/components/Header/component/ProviderInfo/UserDetails.jsx @@ -11,10 +11,10 @@ import Img from '~/components/layout/Img' import Row from '~/components/layout/Row' import Block from '~/components/layout/Block' import Spacer from '~/components/Spacer' -import { xs, sm, md, lg, background } from '~/theme/variables' +import { xs, sm, md, lg, background, secondary } from '~/theme/variables' import { upperFirst } from '~/utils/css' import { shortVersionOf } from '~/logic/wallets/ethAddresses' -import { openInEtherScan } from '~/logic/wallets/getWeb3' +import { openAddressInEtherScan } from '~/logic/wallets/getWeb3' const metamask = require('../../assets/metamask.svg') const connectedLogo = require('../../assets/connected.svg') @@ -32,7 +32,7 @@ type Props = { const openIconStyle = { height: '16px', - color: '#467ee5', + color: secondary, } const styles = () => ({ @@ -97,7 +97,11 @@ const UserDetails = ({ {address} { userAddress && - + } From 5ff18f62aa43fc91310f2ea3a1ff3901c601b075 Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 28 Sep 2018 14:24:55 +0200 Subject: [PATCH 055/117] Creating a container for opening route --- src/logic/wallets/getWeb3.js | 4 +++- src/routes/index.js | 2 +- src/routes/open/container/Open.jsx | 2 +- src/routes/opening/container/index.jsx | 6 ++++++ 4 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 src/routes/opening/container/index.jsx diff --git a/src/logic/wallets/getWeb3.js b/src/logic/wallets/getWeb3.js index 2dd0a794..7eb9f405 100644 --- a/src/logic/wallets/getWeb3.js +++ b/src/logic/wallets/getWeb3.js @@ -33,7 +33,9 @@ export const ETHEREUM_NETWORK_IDS = { 42: ETHEREUM_NETWORK.KOVAN, } -export const openInEtherScan = (address: string, network: string) => () => { +export const openTxInEtherScan = (tx: string, network: string) => `https://${network}.etherscan.io/tx/${tx}` + +export const openAddressInEtherScan = (address: string, network: string) => () => { window.open(`https://${network}.etherscan.io/address/${address}`) } diff --git a/src/routes/index.js b/src/routes/index.js index 677e39db..e02b1dbf 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -27,7 +27,7 @@ const Open = Loadable({ }) const Opening = Loadable({ - loader: () => import('./opening'), + loader: () => import('./opening/container'), loading: Loader, }) diff --git a/src/routes/open/container/Open.jsx b/src/routes/open/container/Open.jsx index b5ac2604..5eb20109 100644 --- a/src/routes/open/container/Open.jsx +++ b/src/routes/open/container/Open.jsx @@ -1,7 +1,6 @@ // @flow import * as React from 'react' import { connect } from 'react-redux' - import Page from '~/components/layout/Page' import { getAccountsFrom, getThresholdFrom, getNamesFrom, getSafeNameFrom, getDailyLimitFrom } from '~/routes/open/utils/safeDataExtractor' import { getWeb3 } from '~/logic/wallets/getWeb3' @@ -46,6 +45,7 @@ export const createSafe = async (values: Object, userAccount: string, addSafe: A pathname: `${SAFELIST_ADDRESS}/${safeContract.address}`, state: { name, + tx: safe.tx, }, } diff --git a/src/routes/opening/container/index.jsx b/src/routes/opening/container/index.jsx new file mode 100644 index 00000000..4bcdaf0e --- /dev/null +++ b/src/routes/opening/container/index.jsx @@ -0,0 +1,6 @@ +// @flow +import { connect } from 'react-redux' +import selector from './selector' +import Layout from '../component' + +export default connect(selector)(Layout) From dc970a317018782ded1a58c334f74860cabfa24d Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 28 Sep 2018 14:25:51 +0200 Subject: [PATCH 056/117] Adding Layout component for opening route --- src/routes/opening/component/index.jsx | 82 ++++++++++++++++++++++++ src/routes/opening/container/selector.js | 11 ++++ src/routes/opening/index.jsx | 46 ------------- 3 files changed, 93 insertions(+), 46 deletions(-) create mode 100644 src/routes/opening/component/index.jsx create mode 100644 src/routes/opening/container/selector.js delete mode 100644 src/routes/opening/index.jsx diff --git a/src/routes/opening/component/index.jsx b/src/routes/opening/component/index.jsx new file mode 100644 index 00000000..146df640 --- /dev/null +++ b/src/routes/opening/component/index.jsx @@ -0,0 +1,82 @@ +// @flow +import * as React from 'react' +import Block from '~/components/layout/Block' +import OpenInNew from '@material-ui/icons/OpenInNew' +import Paragraph from '~/components/layout/Paragraph' +import LinearProgress from '@material-ui/core/LinearProgress' +import { withStyles } from '@material-ui/core/styles' +import Img from '~/components/layout/Img' +import Page from '~/components/layout/Page' +import { openTxInEtherScan } from '~/logic/wallets/getWeb3' +import { mediumFontSize, secondary, xs } from '~/theme/variables' +import { type SelectorProps } from '../container/selector' + +type Props = SelectorProps & { + name: string, + tx: string, + classes: Object, +} + +const vault = require('../assets/vault.svg') + +const styles = { + page: { + letterSpacing: '-1px', + }, + icon: { + height: mediumFontSize, + color: secondary, + }, + follow: { + display: 'flex', + justifyContent: 'center', + marginTop: xs, + }, + etherscan: { + color: secondary, + textDecoration: 'underline', + display: 'flex', + alignItems: 'center', + marginLeft: xs, + fontWeight: 'bolder', + }, +} + +const Opening = ({ + classes, + name = 'Safe creation process', + tx, + network, +}: Props) => ( + + + {name} + + + Vault + + + + + + + Transaction submitted + + + Deploying your new Safe... + + + + + This process should take a couple of minutes.
+
+ { tx && + + Follow progress on Etherscan.io + + } +
+
+) + +export default withStyles(styles)(Opening) diff --git a/src/routes/opening/container/selector.js b/src/routes/opening/container/selector.js new file mode 100644 index 00000000..72b8e6c2 --- /dev/null +++ b/src/routes/opening/container/selector.js @@ -0,0 +1,11 @@ +// @flow +import { createStructuredSelector } from 'reselect' +import { networkSelector } from '~/logic/wallets/store/selectors' + +export type SelectorProps = { + network: string, +} + +export default createStructuredSelector({ + network: networkSelector, +}) diff --git a/src/routes/opening/index.jsx b/src/routes/opening/index.jsx deleted file mode 100644 index be840d82..00000000 --- a/src/routes/opening/index.jsx +++ /dev/null @@ -1,46 +0,0 @@ -// @flow -import * as React from 'react' -import Block from '~/components/layout/Block' -import Paragraph from '~/components/layout/Paragraph' -import LinearProgress from '@material-ui/core/LinearProgress' -import { withStyles } from '@material-ui/core/styles' -import Img from '~/components/layout/Img' -import Page from '~/components/layout/Page' - -type Props = { - name: string, - classes: Object, -} - -const vault = require('./assets/vault.svg') - -const styles = { - page: { - letterSpacing: '-1px', - }, -} - -const Opening = ({ classes, name = 'Safe creation process' }: Props) => ( - - - {name} - - - Vault - - - - - - Transaction submitted - - - Deploying your new Safe... - - - This process should take a couple of minutes.
-
-
-) - -export default withStyles(styles)(Opening) From a4ea9e055c6722ac4548ca63ed6b4751caeb3d41 Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 28 Sep 2018 14:26:14 +0200 Subject: [PATCH 057/117] Adding storybook instance for opening route --- src/routes/opening/Layout.stories.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/routes/opening/Layout.stories.js diff --git a/src/routes/opening/Layout.stories.js b/src/routes/opening/Layout.stories.js new file mode 100644 index 00000000..43534fdb --- /dev/null +++ b/src/routes/opening/Layout.stories.js @@ -0,0 +1,22 @@ +// @flow +import { storiesOf } from '@storybook/react' +import * as React from 'react' +import styles from '~/components/layout/PageFrame/index.scss' +import { ETHEREUM_NETWORK } from '~/logic/wallets/getWeb3' +import Component from './component' + +const FrameDecorator = story => ( +
+ { story() } +
+) + +storiesOf('Routes /opening', module) + .addDecorator(FrameDecorator) + .add('View while safe is being deployed', () => ( + + )) From f8784a706b7bf8fe600e750fdb0881c5f2ca5e11 Mon Sep 17 00:00:00 2001 From: apanizo Date: Fri, 28 Sep 2018 14:27:47 +0200 Subject: [PATCH 058/117] Adding storybook story when user goes to opening route without data --- src/routes/opening/Layout.stories.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/routes/opening/Layout.stories.js b/src/routes/opening/Layout.stories.js index 43534fdb..75ff5aef 100644 --- a/src/routes/opening/Layout.stories.js +++ b/src/routes/opening/Layout.stories.js @@ -20,3 +20,8 @@ storiesOf('Routes /opening', module) network={ETHEREUM_NETWORK.RINKEBY} /> )) + .add('Load this view without a tx', () => ( + + )) From 61ed0f1889bf898dd860566e18d49d4fee4b50af Mon Sep 17 00:00:00 2001 From: apanizo Date: Mon, 1 Oct 2018 17:29:14 +0200 Subject: [PATCH 059/117] Creating SafesOwnersPage WIP --- .../open/components/SafeOwnersForm/index.jsx | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/routes/open/components/SafeOwnersForm/index.jsx diff --git a/src/routes/open/components/SafeOwnersForm/index.jsx b/src/routes/open/components/SafeOwnersForm/index.jsx new file mode 100644 index 00000000..83f4247a --- /dev/null +++ b/src/routes/open/components/SafeOwnersForm/index.jsx @@ -0,0 +1,77 @@ +// @flow +import * as React from 'react' +import { withStyles } from '@material-ui/core/styles' +import Field from '~/components/forms/Field' +import TextField from '~/components/forms/TextField' +import { required } from '~/components/forms/validator' +import Block from '~/components/layout/Block' +import Row from '~/components/layout/Row' +import Col from '~/components/layout/Col' +import { FIELD_NAME } from '~/routes/open/components/fields' +import Paragraph from '~/components/layout/Paragraph' +import OpenPaper from '~/components/Stepper/OpenPaper' +import { getAccountsFrom } from '~/routes/open/utils/safeDataExtractor' +import Hairline from '~/components/layout/Hairline' +import { lg } from '~/theme/variables' + +type Props = { + classes: Object, +} + +const styles = () => ({ + root: { + display: 'flex', + }, + padding: { + padding: lg, + }, +}) + +const SafeOwners = ({ classes }: Props) => ( + + + + Specify the owners of the Safe. + + + + + + + NAME + + + ADDRESS + + + + + + + ● My Safe is a smart contract on the Ethereum blockchain. + + + + + + +) + +const SafeOwnersForm = withStyles(styles)(SafeOwners) + +const SafeOwnersPage = () => (controls: React$Node, { values }: Object) => ( + + + + + +) + +export default SafeOwnersPage From 53faeb8210ba182913a2631bc1018fff01600333 Mon Sep 17 00:00:00 2001 From: apanizo Date: Mon, 1 Oct 2018 17:31:12 +0200 Subject: [PATCH 060/117] Adding SafeOwnersField to Open process --- src/routes/open/components/Layout.jsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/routes/open/components/Layout.jsx b/src/routes/open/components/Layout.jsx index a4503240..d08fbce2 100644 --- a/src/routes/open/components/Layout.jsx +++ b/src/routes/open/components/Layout.jsx @@ -9,6 +9,7 @@ import Review from '~/routes/open/components/ReviewInformation' import ChevronLeft from '@material-ui/icons/ChevronLeft' import SafeFields, { safeFieldsValidation } from '~/routes/open/components/SafeForm' import SafeNameField from '~/routes/open/components/SafeNameForm' +import SafeOwnersFields from '~/routes/open/components/SafeOwnersForm' import { history } from '~/store' import { secondary } from '~/theme/variables' @@ -58,6 +59,9 @@ const Layout = ({ steps={steps} initialValues={initialValues} > + + { SafeOwnersFields } + { SafeNameField } From 9f27f408a2a6cbfd77e2a1d9c5c7b2ea0ae1c823 Mon Sep 17 00:00:00 2001 From: apanizo Date: Mon, 1 Oct 2018 17:33:42 +0200 Subject: [PATCH 061/117] Making padding on Open paper optional --- src/components/Stepper/OpenPaper/index.jsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/components/Stepper/OpenPaper/index.jsx b/src/components/Stepper/OpenPaper/index.jsx index 99ad9c8e..b8630c78 100644 --- a/src/components/Stepper/OpenPaper/index.jsx +++ b/src/components/Stepper/OpenPaper/index.jsx @@ -11,8 +11,9 @@ const styles = () => ({ maxWidth: '770px', }, container: { - maxWidth: '600px', letterSpacing: '-0.5px', + }, + padding: { padding: lg, }, }) @@ -21,11 +22,14 @@ type Props = { classes: Object, children: React$Node, controls: React$Node, + padding?: boolean, } -const OpenPaper = ({ classes, children, controls }: Props) => ( +const OpenPaper = ({ + classes, children, controls, padding = true, +}: Props) => ( - + {children} { controls } From af0930a02f1ba332603255c0b4fa4404fd0a10ad Mon Sep 17 00:00:00 2001 From: apanizo Date: Tue, 2 Oct 2018 16:42:47 +0200 Subject: [PATCH 062/117] Styles on the Owner Page --- .../open/components/SafeOwnersForm/index.jsx | 178 +++++++++++++----- 1 file changed, 130 insertions(+), 48 deletions(-) diff --git a/src/routes/open/components/SafeOwnersForm/index.jsx b/src/routes/open/components/SafeOwnersForm/index.jsx index 83f4247a..0269726b 100644 --- a/src/routes/open/components/SafeOwnersForm/index.jsx +++ b/src/routes/open/components/SafeOwnersForm/index.jsx @@ -3,75 +3,157 @@ import * as React from 'react' import { withStyles } from '@material-ui/core/styles' import Field from '~/components/forms/Field' import TextField from '~/components/forms/TextField' -import { required } from '~/components/forms/validator' +import { required, composeValidators, uniqueAddress, mustBeEthereumAddress } from '~/components/forms/validator' import Block from '~/components/layout/Block' +import Button from '~/components/layout/Button' import Row from '~/components/layout/Row' import Col from '~/components/layout/Col' -import { FIELD_NAME } from '~/routes/open/components/fields' +import IconButton from '@material-ui/core/IconButton' +import Delete from '@material-ui/icons/Delete' +import InputAdornment from '@material-ui/core/InputAdornment' +import CheckCircle from '@material-ui/icons/CheckCircle' +import { getOwnerNameBy, getOwnerAddressBy } from '~/routes/open/components/fields' import Paragraph from '~/components/layout/Paragraph' import OpenPaper from '~/components/Stepper/OpenPaper' import { getAccountsFrom } from '~/routes/open/utils/safeDataExtractor' import Hairline from '~/components/layout/Hairline' -import { lg } from '~/theme/variables' +import { md, lg, sm } from '~/theme/variables' type Props = { classes: Object, + otherAccounts: string[], + errors: Object, +} + +type State = { + numOwners: number, } const styles = () => ({ root: { display: 'flex', }, - padding: { - padding: lg, + title: { + padding: `${md} ${lg}`, + }, + owner: { + padding: `${sm} ${lg}`, + }, + name: { + marginRight: `${sm}`, + }, + trash: { + top: '5px', + }, + add: { + justifyContent: 'center', + }, + check: { + color: '#03AE60', + height: '20px', }, }) -const SafeOwners = ({ classes }: Props) => ( - - - - Specify the owners of the Safe. - - - - - - - NAME - - - ADDRESS - - - - - - - ● My Safe is a smart contract on the Ethereum blockchain. - - - - - - -) +const getAddressValidators = (addresses: string[], position: number) => { + const copy = addresses.slice() + copy.splice(position, 1) + + return composeValidators(required, mustBeEthereumAddress, uniqueAddress(copy)) +} + +const noErrorsOn = (name: string, errors: Object) => errors[name] === undefined + +class SafeOwners extends React.Component { + state = { + numOwners: 3, + } + + render() { + const { classes, errors, otherAccounts } = this.props + const { numOwners } = this.state + + return ( + + + + Specify the owners of the Safe. + + + + + + NAME + + + ADDRESS + + + + { [...Array(Number(numOwners))].map((x, index) => { + const addressName = getOwnerAddressBy(index) + + return ( + + + + + + + + + ), + }} + type="text" + validate={getAddressValidators(otherAccounts, index)} + placeholder="Owner Address*" + text="Owner Address" + /> + + + { index > 0 && + + + + } + + + ) + }) } + + + + + ) + } +} const SafeOwnersForm = withStyles(styles)(SafeOwners) -const SafeOwnersPage = () => (controls: React$Node, { values }: Object) => ( - - - - - -) +const SafeOwnersPage = () => (controls: React$Node, moe: Object) => { + const { values, errors } = moe + + return ( + + + + + + ) +} export default SafeOwnersPage From 4c0fbccd83e058c984607ac4af6e6af1a8011dc7 Mon Sep 17 00:00:00 2001 From: apanizo Date: Tue, 2 Oct 2018 16:43:14 +0200 Subject: [PATCH 063/117] Adding Input Adornment to TextField --- src/components/forms/TextField/index.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/forms/TextField/index.jsx b/src/components/forms/TextField/index.jsx index 0d1117f4..dc28ae26 100644 --- a/src/components/forms/TextField/index.jsx +++ b/src/components/forms/TextField/index.jsx @@ -27,6 +27,7 @@ class TextField extends React.PureComponent { meta, render, text, + inputAdornment, classes, ...rest } = this.props @@ -36,7 +37,7 @@ class TextField extends React.PureComponent { const inputRoot = helperText ? classes.root : undefined const inputProps = { ...restInput, autoComplete: 'off' } - const inputRootProps = { disableUnderline: !underline, className: inputRoot } + const inputRootProps = { ...inputAdornment, disableUnderline: !underline, className: inputRoot } return ( Date: Tue, 2 Oct 2018 16:43:49 +0200 Subject: [PATCH 064/117] Fix for Col className --- src/components/layout/Col/index.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/layout/Col/index.jsx b/src/components/layout/Col/index.jsx index bdb36df5..ad043eab 100644 --- a/src/components/layout/Col/index.jsx +++ b/src/components/layout/Col/index.jsx @@ -35,6 +35,7 @@ const Col = ({ xs, sm, md, lg, start, center, end, top, middle, bottom, around, between, xsOffset, smOffset, mdOffset, lgOffset, + className, ...props }: Props) => { const colClassNames = cx( @@ -58,7 +59,7 @@ const Col = ({ lgOffset ? capitalize(lgOffset, 'lgOffset') : undefined, { overflow }, layout, - props.className, + className, ) return ( From f31976df872b2ef7c2e4cfba103d8584d6c9e0c7 Mon Sep 17 00:00:00 2001 From: apanizo Date: Tue, 2 Oct 2018 17:08:57 +0200 Subject: [PATCH 065/117] Injecting callback for updating values in Stepper --- src/components/Stepper/index.jsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/Stepper/index.jsx b/src/components/Stepper/index.jsx index 5cc89ef6..80634988 100644 --- a/src/components/Stepper/index.jsx +++ b/src/components/Stepper/index.jsx @@ -69,7 +69,11 @@ class GnoStepper extends React.PureComponent { const activePageProps = this.getPageProps(pages) const { children, ...props } = activePageProps - return children(props) + return children({ ...props, updateInitialProps: this.updateInitialProps }) + } + + updateInitialProps = (initialValues) => { + this.setState({ values: initialValues }) } validate = (values: Object) => { From ef17ca59a5043067d8890d8cd23983adb5442f66 Mon Sep 17 00:00:00 2001 From: apanizo Date: Tue, 2 Oct 2018 17:10:56 +0200 Subject: [PATCH 066/117] Updating SafeOwnersForm to change initial values of the form --- .../open/components/SafeOwnersForm/index.jsx | 45 ++++++++++++------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/src/routes/open/components/SafeOwnersForm/index.jsx b/src/routes/open/components/SafeOwnersForm/index.jsx index 0269726b..942cae15 100644 --- a/src/routes/open/components/SafeOwnersForm/index.jsx +++ b/src/routes/open/components/SafeOwnersForm/index.jsx @@ -23,6 +23,7 @@ type Props = { classes: Object, otherAccounts: string[], errors: Object, + // updateInitialProps: () => void, } type State = { @@ -68,6 +69,19 @@ class SafeOwners extends React.Component { numOwners: 3, } + // eslint-disable-next-line + onRemoveRow = (index: number) => () => { + /* + this.props.updateInitialProps({ + owner0Address: 'moeFeo', + }) + */ + + this.setState(state => ({ + numOwners: state.numOwners - 1, + })) + } + render() { const { classes, errors, otherAccounts } = this.props const { numOwners } = this.state @@ -81,12 +95,8 @@ class SafeOwners extends React.Component { - - NAME - - - ADDRESS - + NAME + ADDRESS { [...Array(Number(numOwners))].map((x, index) => { @@ -124,7 +134,7 @@ class SafeOwners extends React.Component { { index > 0 && - + } @@ -144,16 +154,17 @@ class SafeOwners extends React.Component { const SafeOwnersForm = withStyles(styles)(SafeOwners) -const SafeOwnersPage = () => (controls: React$Node, moe: Object) => { - const { values, errors } = moe +const SafeOwnersPage = ({ updateInitialProps }: Object) => (controls: React$Node, { values, errors }: Object) => ( + + + + + +) - return ( - - - - - - ) -} export default SafeOwnersPage From 9e6c97aea88551597ada681313640ed3ccda6715 Mon Sep 17 00:00:00 2001 From: apanizo Date: Wed, 3 Oct 2018 10:51:25 +0200 Subject: [PATCH 067/117] Implementation of removing owner logic indepentdently the order --- .../open/components/SafeOwnersForm/index.jsx | 30 ++++++++--- src/test/safe.redux.owners.test.js | 50 +++++++++++++++++++ 2 files changed, 73 insertions(+), 7 deletions(-) diff --git a/src/routes/open/components/SafeOwnersForm/index.jsx b/src/routes/open/components/SafeOwnersForm/index.jsx index 942cae15..5c33d296 100644 --- a/src/routes/open/components/SafeOwnersForm/index.jsx +++ b/src/routes/open/components/SafeOwnersForm/index.jsx @@ -23,7 +23,8 @@ type Props = { classes: Object, otherAccounts: string[], errors: Object, - // updateInitialProps: () => void, + values: Object, + updateInitialProps: (initialValues: Object) => void, } type State = { @@ -64,18 +65,32 @@ const getAddressValidators = (addresses: string[], position: number) => { const noErrorsOn = (name: string, errors: Object) => errors[name] === undefined +export const calculateValuesAfterRemoving = (index: number, notRemovedOwners: number, values: Object) => { + const initialValues = { ...values } + const numOwnersAfterRemoving = notRemovedOwners - 1 + // muevo indices + for (let i = index; i < numOwnersAfterRemoving; i += 1) { + initialValues[getOwnerNameBy(i)] = values[getOwnerNameBy(i + 1)] + initialValues[getOwnerAddressBy(i)] = values[getOwnerAddressBy(i + 1)] + } + + delete initialValues[getOwnerNameBy(numOwnersAfterRemoving)] + delete initialValues[getOwnerAddressBy(numOwnersAfterRemoving)] + + return initialValues +} + class SafeOwners extends React.Component { state = { numOwners: 3, } - // eslint-disable-next-line onRemoveRow = (index: number) => () => { - /* - this.props.updateInitialProps({ - owner0Address: 'moeFeo', - }) - */ + const { values } = this.props + const { numOwners } = this.state + const initialValues = calculateValuesAfterRemoving(index, numOwners, values) + this.props.updateInitialProps(initialValues) + this.setState(state => ({ numOwners: state.numOwners - 1, @@ -161,6 +176,7 @@ const SafeOwnersPage = ({ updateInitialProps }: Object) => (controls: React$Node otherAccounts={getAccountsFrom(values)} errors={errors} updateInitialProps={updateInitialProps} + values={values} /> diff --git a/src/test/safe.redux.owners.test.js b/src/test/safe.redux.owners.test.js index 83623fcb..9e5d75f2 100644 --- a/src/test/safe.redux.owners.test.js +++ b/src/test/safe.redux.owners.test.js @@ -13,8 +13,10 @@ import fetchSafe from '~/routes/safe/store/actions/fetchSafe' import { removeOwner, shouldDecrease, initialValuesFrom } from '~/routes/safe/component/RemoveOwner' import { DECREASE_PARAM } from '~/routes/safe/component/RemoveOwner/RemoveOwnerForm' import { getSafeFrom } from '~/test/utils/safeHelper' +import { getOwnerNameBy, getOwnerAddressBy } from '~/routes/open/components/fields' import { processTransaction } from '~/logic/safe/safeFrontendOperations' import { allowedRemoveSenderInTxHistoryService } from '~/config' +import { calculateValuesAfterRemoving } from '~/routes/open/components/SafeOwnersForm' describe('React DOM TESTS > Add and remove owners', () => { const processOwnerModification = async (store, safeAddress, executor, threshold) => { @@ -46,6 +48,54 @@ describe('React DOM TESTS > Add and remove owners', () => { const getAddressesFrom = (safe: Safe) => safe.get('owners').map(owner => owner.get('address')) + it.only('creates initialValues removing last owner', () => { + const numOwners = 3 + const values = { + moe: 'Bart', + [getOwnerNameBy(0)]: 'Foo', + [getOwnerAddressBy(0)]: '0x1', + [getOwnerNameBy(1)]: 'Bar', + [getOwnerAddressBy(1)]: '0x2', + [getOwnerNameBy(2)]: 'Baz', + [getOwnerAddressBy(2)]: '0x3', + } + + const indexToRemove = 2 + const initialValues = calculateValuesAfterRemoving(indexToRemove, numOwners, values) + + expect(initialValues).toEqual({ + moe: 'Bart', + [getOwnerNameBy(0)]: 'Foo', + [getOwnerAddressBy(0)]: '0x1', + [getOwnerNameBy(1)]: 'Bar', + [getOwnerAddressBy(1)]: '0x2', + }) + }) + + it.only('creates initialValues removing middle owner', () => { + const numOwners = 3 + const values = { + moe: 'Bart', + [getOwnerNameBy(0)]: 'Foo', + [getOwnerAddressBy(0)]: '0x1', + [getOwnerNameBy(1)]: 'Bar', + [getOwnerAddressBy(1)]: '0x2', + [getOwnerNameBy(2)]: 'Baz', + [getOwnerAddressBy(2)]: '0x3', + } + + const indexToRemove = 1 + const initialValues = calculateValuesAfterRemoving(indexToRemove, numOwners, values) + + expect(initialValues).toEqual({ + moe: 'Bart', + [getOwnerNameBy(0)]: 'Foo', + [getOwnerAddressBy(0)]: '0x1', + [getOwnerNameBy(1)]: 'Baz', + [getOwnerAddressBy(1)]: '0x3', + }) + }) + it('adds owner without increasing the threshold', async () => { // GIVEN const numOwners = 2 From d4557e85157303324336becb1b88a1cbf5ed1e0e Mon Sep 17 00:00:00 2001 From: apanizo Date: Wed, 3 Oct 2018 12:01:03 +0200 Subject: [PATCH 068/117] Implementation of adding new owner --- .../open/components/SafeOwnersForm/index.jsx | 99 ++++++++++--------- 1 file changed, 55 insertions(+), 44 deletions(-) diff --git a/src/routes/open/components/SafeOwnersForm/index.jsx b/src/routes/open/components/SafeOwnersForm/index.jsx index 5c33d296..234b692f 100644 --- a/src/routes/open/components/SafeOwnersForm/index.jsx +++ b/src/routes/open/components/SafeOwnersForm/index.jsx @@ -39,6 +39,9 @@ const styles = () => ({ padding: `${md} ${lg}`, }, owner: { + padding: `0 ${lg}`, + }, + header: { padding: `${sm} ${lg}`, }, name: { @@ -97,6 +100,12 @@ class SafeOwners extends React.Component { })) } + onAddOwner = () => { + this.setState(state => ({ + numOwners: state.numOwners + 1, + })) + } + render() { const { classes, errors, otherAccounts } = this.props const { numOwners } = this.state @@ -109,56 +118,58 @@ class SafeOwners extends React.Component { - + NAME ADDRESS - { [...Array(Number(numOwners))].map((x, index) => { - const addressName = getOwnerAddressBy(index) + + { [...Array(Number(numOwners))].map((x, index) => { + const addressName = getOwnerAddressBy(index) - return ( - - - - - - - - - ), - }} - type="text" - validate={getAddressValidators(otherAccounts, index)} - placeholder="Owner Address*" - text="Owner Address" - /> - - - { index > 0 && - - - - } - - - ) - }) } + return ( + + + + + + + + + ), + }} + type="text" + validate={getAddressValidators(otherAccounts, index)} + placeholder="Owner Address*" + text="Owner Address" + /> + + + { index > 0 && + + + + } + + + ) + }) } + - From ed1e3490028824449a10b5b01b94f7cc8f9e6c7a Mon Sep 17 00:00:00 2001 From: apanizo Date: Wed, 3 Oct 2018 12:01:36 +0200 Subject: [PATCH 069/117] Minor style adjustments --- src/routes/open/components/Layout.jsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/routes/open/components/Layout.jsx b/src/routes/open/components/Layout.jsx index d08fbce2..0c9f4e9a 100644 --- a/src/routes/open/components/Layout.jsx +++ b/src/routes/open/components/Layout.jsx @@ -10,15 +10,17 @@ import ChevronLeft from '@material-ui/icons/ChevronLeft' import SafeFields, { safeFieldsValidation } from '~/routes/open/components/SafeForm' import SafeNameField from '~/routes/open/components/SafeNameForm' import SafeOwnersFields from '~/routes/open/components/SafeOwnersForm' +import { getOwnerNameBy, getOwnerAddressBy } from '~/routes/open/components/fields' import { history } from '~/store' import { secondary } from '~/theme/variables' const getSteps = () => [ - 'Start', 'Details', 'Review', + 'Start', 'Owners', 'Details', 'Review', ] const initialValuesFrom = (userAccount: string) => ({ - owner0Address: userAccount, + [getOwnerNameBy(0)]: 'My Metamask (me)', + [getOwnerAddressBy(0)]: userAccount, }) type Props = { @@ -60,10 +62,10 @@ const Layout = ({ initialValues={initialValues} > - { SafeOwnersFields } + { SafeNameField } - { SafeNameField } + { SafeOwnersFields } { SafeFields } From d214ca2f67b04ed76bd4a8a3e21085c7d66ab1ae Mon Sep 17 00:00:00 2001 From: apanizo Date: Wed, 3 Oct 2018 13:33:20 +0200 Subject: [PATCH 070/117] Modifying Stepper Transition to avoid glitches --- src/components/Stepper/index.jsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/components/Stepper/index.jsx b/src/components/Stepper/index.jsx index 80634988..06c56497 100644 --- a/src/components/Stepper/index.jsx +++ b/src/components/Stepper/index.jsx @@ -33,6 +33,13 @@ type PageProps = { prepareNextInitialProps: (values: Object) => {}, } +const transitionProps = { + timeout: { + enter: 350, + exit: 0, + }, +} + class GnoStepper extends React.PureComponent { static Page = ({ children }: PageProps) => children @@ -156,7 +163,7 @@ class GnoStepper extends React.PureComponent { {steps.map(label => ( {label} - + {activePage(controls, ...rest)} From 439c2a499380202cce0a837545093ff2ed7cade8 Mon Sep 17 00:00:00 2001 From: apanizo Date: Wed, 3 Oct 2018 15:15:05 +0200 Subject: [PATCH 071/117] Expanding the minimum layout on Stepper --- src/components/Stepper/OpenPaper/index.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Stepper/OpenPaper/index.jsx b/src/components/Stepper/OpenPaper/index.jsx index b8630c78..b833b7cf 100644 --- a/src/components/Stepper/OpenPaper/index.jsx +++ b/src/components/Stepper/OpenPaper/index.jsx @@ -8,7 +8,7 @@ import { lg } from '~/theme/variables' const styles = () => ({ root: { margin: '10px', - maxWidth: '770px', + maxWidth: '870px', }, container: { letterSpacing: '-0.5px', From 58fc5f4cfe25997d96ac04ab6c519d5040cd0e2d Mon Sep 17 00:00:00 2001 From: apanizo Date: Wed, 3 Oct 2018 15:15:40 +0200 Subject: [PATCH 072/117] Overriding MuiInput-input to ellipsis by default --- src/theme/mui.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/theme/mui.js b/src/theme/mui.js index 9cbe8b35..a9961d17 100644 --- a/src/theme/mui.js +++ b/src/theme/mui.js @@ -91,6 +91,8 @@ export default createMuiTheme({ input: { padding: 0, color: 'initial', + textOverflow: 'ellipsis', + display: 'flex', }, underline: { '&:before': { From d8e5456354c146faefba2b31d0ae10866b6634ef Mon Sep 17 00:00:00 2001 From: apanizo Date: Wed, 3 Oct 2018 17:34:13 +0200 Subject: [PATCH 073/117] Removing formControl default margin top from theme --- src/theme/mui.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/theme/mui.js b/src/theme/mui.js index a9961d17..0cc2b232 100644 --- a/src/theme/mui.js +++ b/src/theme/mui.js @@ -102,6 +102,9 @@ export default createMuiTheme({ borderBottom: `2px solid ${secondary}`, }, }, + formControl: { + marginTop: '0px !important', + }, }, MuiStepLabel: { label: { From a64278bd5112b6f30110461150233bf36918f97a Mon Sep 17 00:00:00 2001 From: apanizo Date: Wed, 3 Oct 2018 17:34:44 +0200 Subject: [PATCH 074/117] Adding penultimate to Stepper's controls --- src/components/Stepper/Controls/index.jsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/Stepper/Controls/index.jsx b/src/components/Stepper/Controls/index.jsx index be88f203..c2bb76e7 100644 --- a/src/components/Stepper/Controls/index.jsx +++ b/src/components/Stepper/Controls/index.jsx @@ -19,13 +19,14 @@ type Props = { firstPage: boolean, lastPage: boolean, disabled: boolean, + penultimate: boolean, } const Controls = ({ - onPrevious, firstPage, lastPage, disabled, + onPrevious, firstPage, penultimate, lastPage, disabled, }: Props) => { // eslint-disable-next-line - const next = firstPage ? 'Start' : lastPage ? 'Submit' : 'Next' + const next = firstPage ? 'Start' : penultimate ? 'Review' : lastPage ? 'Submit' : 'Next' const back = firstPage ? 'Cancel' : 'Back' return ( From 9d882e7a8b4403aaf0902e26098bda9b9d5f81d9 Mon Sep 17 00:00:00 2001 From: apanizo Date: Wed, 3 Oct 2018 17:35:19 +0200 Subject: [PATCH 075/117] Adding helper function to calculate penultimate and last page in Stepper --- src/components/Stepper/index.jsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/Stepper/index.jsx b/src/components/Stepper/index.jsx index 06c56497..882028d1 100644 --- a/src/components/Stepper/index.jsx +++ b/src/components/Stepper/index.jsx @@ -129,13 +129,16 @@ class GnoStepper extends React.PureComponent { return this.next(values) } + isLastPage = page => page === this.props.steps.length - 1 + render() { const { steps, children, classes, disabledWhenValidating = false, } = this.props const { page, values } = this.state const activePage = this.getActivePageFrom(children) - const isLastPage = page === steps.length - 1 + const lastPage = this.isLastPage(page) + const penultimate = this.isLastPage(page + 1) return ( @@ -153,7 +156,8 @@ class GnoStepper extends React.PureComponent { disabled={disabled} onPrevious={this.previous} firstPage={page === 0} - lastPage={isLastPage} + lastPage={lastPage} + penultimate={penultimate} /> ) From 249c2526edcd34314b3400b9e64e1a363e1552d8 Mon Sep 17 00:00:00 2001 From: apanizo Date: Wed, 3 Oct 2018 17:38:41 +0200 Subject: [PATCH 076/117] Custom SelectField for react-final-form --- src/components/forms/SelectField/index.jsx | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/components/forms/SelectField/index.jsx diff --git a/src/components/forms/SelectField/index.jsx b/src/components/forms/SelectField/index.jsx new file mode 100644 index 00000000..451e95d6 --- /dev/null +++ b/src/components/forms/SelectField/index.jsx @@ -0,0 +1,47 @@ +// @flow +import React from 'react' +import Select, { type SelectFieldProps } from '@material-ui/core/Select' +import FormControl from '@material-ui/core/FormControl' +import InputLabel from '@material-ui/core/InputLabel' +import FormHelperText from '@material-ui/core/FormHelperText' + +const style = { + minWidth: '100%', +} + +const SelectInput = ({ + input: { + name, value, onChange, ...restInput + }, + meta, + label, + formControlProps, + ...rest +}: SelectFieldProps) => { + const showError = ((meta.submitError && !meta.dirtySinceLastSubmit) || meta.error) && meta.touched + const inputProps = { ...restInput, name } + + return ( + + {label} +