safe-react/package.json
Fernando 47d20aa645
Transaction List v2 (#1781)
* Add types for redux actions (#1737)

* solve errors after rebase

- added `isStoredTransaction` to differentiate tx provided to `isCancelTransaction`

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* Add types + loadGateway transactions cosumer

* add client-gateway endpoints to networks configs

* add client-gateway getters

* WIP: consume gateway-client endpoint

- added the history transactions to the store
- updated types to `/queued` and `/history` endpoints

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* add queued transactions to the store

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* add queued transactions selectors

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* WIP: display history transactions

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* WIP: arrange lists queue/history

* prevent loading data from txs-service

* cherry-pick TokenTransferAmount component

* extract queue transactions logic into a hook `useQueueTransactions`

* Add TxType and TokenTransferAmount components

Co-authored-by: fernandomg <fernando.greco@altoros.com>

* wip: history transactions

* wip: use grid to display list content

* wip: use Accordion

* wip: tx history

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* wip: tx details

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* wip: TxInfo

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* wip: TxSummary

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* wip: TxSettingsInfo

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* Wip: style owners list

Co-authored-by: fernandomg <fernando.greco@altoros.com>

* wip: Owners List

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* wip: TxInfoCreation

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* wip: stop using backOff for client-gateway requests

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* refactor

reorganize files and components

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* refactor

- Accordion implementation
- extract summaryContent to a reusable component

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* Fix prettier issue in src/config/index

* add methods names and descriptions to collapsed row

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* wip: split components to render tx-data depending on the tx type

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* add multiSend tx details

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* refactor TxData

- separate into specified components `HexEncodedData`, `MethodDetails` & `MultiSendDetails`

* remove unused imported type

* wip: infinite-scroll

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* refactor `ADD_HISTORY_TRANSACTIONS` reducer

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* implement infinite scroll pagination

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* avoid defining `page_url` param

* refactor InfiniteScroll implementation

- created a wrapper component to simplify interface
- rearranged code

* add `missingSigners` key to `ExecutionInfo` type

* add `lodash.get`

* update `useTransactionStatus` hook to support queued transactions

* use `lodash.get` to access queued objects

* add votes info to TxCollapsed

* add TxQueueCollapsed

- also update the usage of `useTransactionStatus` hook

* split `TxRow` into `TxHistoryRow` and `TxQueueRow`

* use `txLocation` instead of `title` for `QueueTxList` component

* make `TxDetails` generic

* fix queue list elements arrangement

* export `useTransactionDetails` return type

[skip ci]

* wip: group txs by nonce

[skip ci]

* request tx details on demand

[skip ci]

* display cancelling message in queued transactions only

[skip ci]

* wip: implement tree view for grouped transactions

* styled components

- reorganized
- added comments where necessary
- refactored

* refactor QueueTxList

[skip ci]

* update styled-component

[skip ci]

* refactor

- Accordion implementation
- extract summaryContent to a reusable component

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* update safe-react-components

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* update styled-component

[skip ci]

* fix most-recent list of history transactions update

* make queued transactions list scrollable

* make scrollableTarget a const

* styles fixes

- queued grouped transactions styles
- add styles to scrollbar in scrollable areas

* add safe apps info to tx lists

* wip: add action buttons to tx details

* fix column distribution for transactions rows

* display action count for multiSend transactions

* TxExpandedActions

* add action buttons

- also did a slight refactor around grouped vs. not-grouped transactions

* fix txDetails selector

* adapt button to current SRC specs

* wip: action buttons "action"

- TODO: handle the store update -> screen refresh

* fix execution/confirmation conditions

- fixed modals conditions for execution when last confirmation is able to execute

* fix tree view (no <p> as descendant of <p>)

* wip: handle transactions actions through a context provider

* provide txLocation through context

* fix `react-hooks/exhaustive-deps` warnings

* Sort history list

* Add objects utils

* add `lodash.merge` as a dependency

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* update `ADD_QUEUED_TRANSACTIONS` reducer

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* implement pagination for `queued` transactions

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* prevent rendering action modal if `txDetails` is not available

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* pending status for tx execution

* small style-based behavior fixes

* allow to identify txs to be replaced

* redirect to `gatewayTransaction`

* adjust behavior for grouped vs individual transactions

* add help links

* display execute action only when threshold is reached

* make `setActiveHover` required

* prevent `<p />` as child of `<p />`

* fix cards background colors

* revert staging config

* fix linting errors

* prevent using `no-owner` class in history list

* add `PENDING` status to confirmation transactions

This will mark as _pending_ a transaction by its id, the rest of the txs that share same nonce will remain untouched

* unify action buttons status

- created `useActionButtonsHandler` hook
- extracted `CollapsedActions` into `TxCollapsedActions` component

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* fix wording

* fix pending status

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* fix close Action modal

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* extract `addressInList` as a util function

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* fix action buttons' "disabled" status condition

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* provide proper `to` and `value` for `processTransaction` based on Transfer Type (ERC20, ERC721 or ETHER)

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* update queued transactions pointers if we reached the last page

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* use `as string` for `next` pointer

- also fixed typo

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* add JSDocs

* explicitly discard unused client-gateway headers

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>
Co-authored-by: nicosampler <nf.dominguez.87@gmail.com>

* add loading status to the queue transactions list

* fix tx actions after rebase of v2.19.1

* fix issue with safe data update

* fix types issues

* skip `isCancelTransaction` tests

* fix loading status for queue transactions

* Update notifications for tx-list v2 (#1839)

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* use `sameString` to verify `method` value

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* TxDetails refactor cancelTxDetails condition

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* remove unused TxType component

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* remove unused `isReadyToExecute` function

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* Fix eslint

* Update txs details after `PENDING` status update

* remove log

* Fix send transaction because of removed notification message

* Cleanup pending unwanted notifications

* wip: ellipsis actions

* wip: ellipsis actions - fix tokenAmount

* Refactor to txInfoDetails

* refactor `TxInfoDetails`

* remove old `utils.tsx` file

* support SpendingLimit transactions

* fix `isSpendingLimitMethod`

* Fix styles for tx list v2 (#1859)

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>

* wip: performance enhancement

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>
Co-authored-by: nicosampler <nf.dominguez.87@gmail.com>

* wip: extract data calculation to a hook

* refactor huge ternaries

* fix columns styles for small screens

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* add extra information for `Cancel` transaction identification

* undo custom selector

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* undo custom selector

* Pass `action` by prop to TxDetails

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>
Co-authored-by: nicosampler <nf.dominguez.87@gmail.com>

* Unify `processTransaction` / `createTransaction` actions

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>
Co-authored-by: nicosampler <nf.dominguez.87@gmail.com>
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>

* Disable send again when the user is offline

* set pending status for the executed tx only (not the group by nonce)

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>
Co-authored-by: nicosampler <nf.dominguez.87@gmail.com>
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>

* Use gatewayTransactions as default transaction list

* fix styles for TxDetails row

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>
Co-authored-by: nicosampler <nf.dominguez.87@gmail.com>
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>

* Remove old transactions list legacy code
Move gatewayTransactions within transactions folder

* Remove allTransactions legacy code

* Types

* Fix redirect after createTransaction

* fix performance issue for `ApproveTxModal`

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>
Co-authored-by: nicosampler <nf.dominguez.87@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>

* fix asset icon size

* fix status wording

* add time tooltip

* add _breadcrumb_

* properly identify non existing nonce

* fix open cookie banner types after merge

* add isCancellation flag support

* fix expanded tx styles

Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>
Co-authored-by: Mati Dastugue <mdastugu@amazon.com>
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
Co-authored-by: nicosampler <nf.dominguez.87@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
2021-02-10 17:43:23 +01:00

283 lines
8.7 KiB
JSON

{
"name": "safe-react",
"version": "2.19.2",
"description": "Allowing crypto users manage funds in a safer way",
"website": "https://github.com/gnosis/safe-react#readme",
"bugs": {
"url": "https://github.com/gnosis/safe-react/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/gnosis/safe-react.git"
},
"license": "MIT",
"author": {
"name": "Gnosis Team",
"email": "safe@gnosis.io"
},
"main": "public/electron.js",
"scripts": {
"analyze": "source-map-explorer 'build/static/js/*.js'",
"build-desktop": "cross-env REACT_APP_BUILD_FOR_DESKTOP=true REACT_APP_ENV=production yarn build-mainnet",
"build-mainnet": "cross-env REACT_APP_NETWORK=mainnet yarn build",
"build": "cross-env REACT_APP_APP_VERSION=$npm_package_version rescripts --max-old-space-size=8192 build",
"eject": "rescripts eject",
"electron-build": "electron-builder --mac --windows --linux",
"electron-dev": "concurrently \"BROWSER=none yarn start\" \"wait-on http://localhost:3000 && electron .\"",
"format:staged": "lint-staged",
"generate-types": "yarn generate-types:contracts && yarn generate-types:spendingLimit",
"generate-types:contracts": "cross-env typechain --target=web3-v1 --outDir './src/types/contracts' './node_modules/@gnosis.pm/safe-contracts/build/contracts/*.json'",
"generate-types:spendingLimit": "cross-env typechain --target=web3-v1 --outDir './src/types/contracts' ./src/logic/contracts/artifacts/*.json",
"lint:check": "eslint './src/**/*.{js,jsx,ts,tsx}'",
"lint:fix": "yarn lint:check --fix",
"postinstall": "patch-package && electron-builder install-app-deps && yarn generate-types",
"preelectron-pack": "yarn build",
"prettier:check": "yarn prettier --check",
"prettier:fix": "yarn prettier --write",
"prettier": "prettier './src/**/*.{js,jsx,ts,tsx}'",
"release": "electron-builder --mac --linux --windows -p always",
"start-mainnet": "REACT_APP_NETWORK=mainnet yarn start",
"start": "rescripts start",
"test": "rescripts test --env=jsdom",
"test:coverage": "yarn test --coverage --watchAll=false",
"coveralls": "cat ./coverage/lcov.info | coveralls",
"storybook": "start-storybook -p 9009 -s public",
"build-storybook": "build-storybook -s public",
"sentry-upload-sourcemaps": "sentry-cli --auth-token $SENTRY_AUTH_TOKEN releases -o $SENTRY_ORG -p $SENTRY_PROJECT files $npm_package_version upload-sourcemaps ./build/static/js/"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged --allow-empty",
"pre-push": "tsc --noEmit --incremental"
}
},
"lint-staged": {
"src/**/*.{js,jsx,ts,tsx}": [
"eslint --fix",
"prettier --write"
]
},
"jest": {
"collectCoverageFrom": [
"src/**/*.{js,jsx,ts,tsx}",
"!src/**/*.{.test.*}",
"!src/**/test/**/*",
"!src/**/assets/**"
]
},
"productName": "Safe Multisig",
"build": {
"appId": "io.gnosis.safe",
"afterSign": "scripts/notarize.js",
"extends": null,
"productName": "Safe Multisig",
"asar": true,
"publish": [
{
"provider": "github",
"owner": "gnosis",
"repo": "safe-react"
}
],
"dmg": {
"sign": false,
"contents": [
{
"x": 110,
"y": 150
},
{
"x": 240,
"y": 150,
"type": "link",
"path": "/Applications"
}
]
},
"files": [
"build",
"patches",
"public",
"scripts",
"dev-app-update.yml",
"package.json"
],
"directories": {
"buildResources": "public/resources"
},
"mac": {
"category": "public.app-category.productivity",
"hardenedRuntime": true,
"entitlements": "public/resources/entitlements.mac.plist",
"gatekeeperAssess": false,
"entitlementsInherit": "public/resources/entitlements.mac.plist",
"target": [
"dmg",
"zip"
],
"publish": [
{
"provider": "github",
"owner": "gnosis",
"repo": "safe-react"
}
]
},
"nsis": {
"deleteAppDataOnUninstall": true
},
"linux": {
"category": "Finance",
"target": [
"AppImage",
"deb",
"zip"
]
},
"win": {
"target": [
"nsis"
],
"icon": "public/resources/icon.ico"
}
},
"resolutions": {
"@babel/core": "^7.12.0",
"sass-loader": "^9.0.0"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"dependencies": {
"@gnosis.pm/safe-apps-sdk": "1.0.3",
"@gnosis.pm/safe-apps-sdk-v1": "npm:@gnosis.pm/safe-apps-sdk@0.4.2",
"@gnosis.pm/safe-contracts": "1.1.1-dev.2",
"@gnosis.pm/safe-react-components": "https://github.com/gnosis/safe-react-components.git#8dea3a6",
"@gnosis.pm/util-contracts": "2.0.6",
"@ledgerhq/hw-transport-node-hid-singleton": "5.41.0",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.11.0",
"@material-ui/lab": "4.0.0-alpha.57",
"@openzeppelin/contracts": "3.1.0",
"@sentry/react": "^5.30.0",
"@sentry/tracing": "^5.30.0",
"@truffle/contract": "^4.3.0",
"@unstoppabledomains/resolution": "^1.17.0",
"async-sema": "^3.1.0",
"axios": "0.21.1",
"bignumber.js": "9.0.1",
"bnc-onboard": "^1.16.1",
"classnames": "^2.2.6",
"concurrently": "^5.3.0",
"connected-react-router": "6.8.0",
"coveralls": "^3.1.0",
"currency-flags": "2.1.2",
"date-fns": "2.16.1",
"detect-port": "^1.3.0",
"electron-is-dev": "^1.2.0",
"electron-log": "^4.3.0",
"electron-settings": "^4.0.2",
"electron-updater": "4.3.5",
"eth-sig-util": "^2.5.3",
"ethereum-blockies-base64": "^1.0.2",
"ethereumjs-abi": "0.6.8",
"exponential-backoff": "^3.1.0",
"express": "^4.17.1",
"final-form": "^4.20.1",
"final-form-calculate": "^1.3.2",
"history": "4.10.1",
"immortal-db": "^1.1.0",
"immutable": "^4.0.0-rc.12",
"js-cookie": "^2.2.1",
"lodash.debounce": "^4.0.8",
"lodash.get": "^4.4.2",
"lodash.isequal": "^4.5.0",
"lodash.memoize": "^4.1.2",
"lodash.merge": "^4.6.2",
"material-ui-search-bar": "^1.0.0",
"notistack": "https://github.com/gnosis/notistack.git#v0.9.4",
"object-hash": "^2.1.1",
"qrcode.react": "1.0.1",
"query-string": "6.13.8",
"react": "16.13.1",
"react-device-detect": "^1.15.0",
"react-dom": "16.13.1",
"react-final-form": "^6.5.2",
"react-final-form-listeners": "^1.0.2",
"react-ga": "3.3.0",
"react-hot-loader": "4.13.0",
"react-infinite-scroll-component": "^5.1.0",
"react-qr-reader": "^2.2.1",
"react-redux": "7.2.2",
"react-router-dom": "5.2.0",
"react-scripts": "^4.0.1",
"react-window": "^1.8.6",
"redux": "4.0.5",
"redux-actions": "^2.6.5",
"redux-thunk": "^2.3.0",
"reselect": "^4.0.0",
"semver": "^7.3.2",
"styled-components": "^5.2.1",
"web3": "1.2.11",
"web3-core": "^1.2.11",
"web3-eth-contract": "^1.2.11",
"web3-utils": "^1.2.11"
},
"devDependencies": {
"@rescripts/cli": "^0.0.15",
"@sentry/cli": "^1.62.0",
"@storybook/addon-actions": "^5.3.19",
"@storybook/addon-links": "^5.3.19",
"@storybook/addons": "^5.3.19",
"@storybook/preset-create-react-app": "^3.1.5",
"@storybook/react": "^5.3.19",
"@testing-library/jest-dom": "^5.11.6",
"@testing-library/react": "^11.2.2",
"@typechain/web3-v1": "^2.0.0",
"@types/history": "4.6.2",
"@types/jest": "^26.0.16",
"@types/lodash.get": "^4.4.6",
"@types/lodash.memoize": "^4.1.6",
"@types/node": "^14.14.10",
"@types/react": "^16.9.55",
"@types/react-dom": "^16.9.9",
"@types/react-redux": "^7.1.11",
"@types/react-router-dom": "^5.1.6",
"@types/redux-actions": "^2.6.1",
"@types/styled-components": "^5.1.4",
"@typescript-eslint/eslint-plugin": "^4.14.0",
"@typescript-eslint/parser": "^4.14.0",
"cross-env": "^7.0.3",
"dotenv": "^8.2.0",
"dotenv-expand": "^5.1.0",
"electron": "^9.4.0",
"electron-builder": "22.9.1",
"electron-notarize": "1.0.0",
"eslint": "^7.17.0",
"eslint-config-prettier": "^7.2.0",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-jsx-a11y": "^6.3.1",
"eslint-plugin-prettier": "^3.1.4",
"eslint-plugin-react": "^7.21.5",
"eslint-plugin-sort-destructure-keys": "^1.3.5",
"husky": "^4.3.0",
"lint-staged": "^10.5.2",
"patch-package": "^6.2.2",
"postinstall-postinstall": "^2.1.0",
"prettier": "^2.2.0",
"sass": "^1.32.0",
"typechain": "^4.0.0",
"typescript": "4.1.3",
"wait-on": "5.2.1"
}
}