Commit Graph

54 Commits

Author SHA1 Message Date
Bartłomiej Głownia
2904975fd3
feat(trading): highlight negative oracle statuses in market lists () 2023-05-18 13:22:54 +02:00
Maciek
246577f401
feat(trading): persist table column sizes () 2023-05-09 08:09:53 +02:00
Matthew Russell
72821dd183
chore(utils,react-helpers,data-provider): remove apollo deps from ui-toolkit () 2023-05-07 18:01:07 -07:00
m.ray
85e293f3ec
fix(liquidity): use LP order ID as ag-grid row ID () 2023-05-04 16:23:33 -07:00
m.ray
b1b9695998
fix(liquidity): rows duplicated wrong ag-grid row ID () 2023-05-04 17:23:52 +00:00
Matthew Russell
eefcc96149
fix(datagrid): prevent unmount of aggrid on theme change () 2023-05-03 09:45:14 +01:00
Bartłomiej Głownia
351a5aaf96
chore(trading): remove not used close position code and liquidity subscription () 2023-04-03 14:58:06 -07:00
Bartłomiej Głownia
8463d371ad
chore(trading): liquidity table DRY () 2023-04-03 15:02:43 +02:00
Maciek
2bfc3abd15
chore(trading): liquidity provision, change query for set flag live on true () 2023-03-31 14:20:44 +01:00
Maciek
c899da52c2
fix(trading): stabilize the liquidity provision table ()
Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
2023-03-31 11:41:16 +01:00
Bartłomiej Głownia
6705eb4398
feat(trading): calculate required margin base on open volume, active … ()
Co-authored-by: mattrussell36 <mattrussell36@users.noreply.github.com>
2023-03-09 10:03:50 +00:00
Matthew Russell
a796a38200
chore(datagrid,utils,react-helpers): rename token app, add utils, datagrid, i18n () 2023-02-28 10:56:29 -08:00
Bartłomiej Głownia
a5d53eee77
chore(trading): live update deal ticket market data () 2023-02-09 14:20:31 +00:00
Bartłomiej Głownia
00e319b3c6
chore: handle not found errors as correct response () 2023-01-27 18:35:45 -08:00
Ciaran McGhie
3ed3714e79
fix(): lp-dashboard grab market close from metadata () 2023-01-26 09:58:39 +00:00
Bartłomiej Głownia
1a6266e2ec
chore: fix data and no data message update issues in trading data grids () 2023-01-17 15:01:24 +00:00
m.ray
c70ec7676e
fix(): market id copy update ()
* fix(): market id copy update

* fix: enable cell text selection on ag-grid by default

* chore: fix partially filled order test

Co-authored-by: Rado <szpiechrados@gmail.com>
2023-01-17 13:59:34 +00:00
Bartłomiej Głownia
4608683bde
feat(2408): trading data grid snags ()
* feat: trading data grid snags

* feat: fix e2e tests, fix use order list data avoid rerender condition
2023-01-11 15:43:52 +01:00
m.ray
bbdc64582a
feat(): vega-pink across frontend-monorepo ()
* feat(): change red to vega pink

* feat(): change red to vega pink part 2

* fix: update vega.red to vega.pink

* feat: color the charts

* feat: color the charts

* feat: color the charts

* fix: use dark pink and green

* fix: use dark pink and green

* feat(): color long/short toggle and place order button

* fix: colors wick showing within candle

* fix: remove opacity from chart

* fix: use vega dark pink and green for vol cell

* fix: toggle and button colors

* feat(): toggle peer checked text white

* fix: add liquidity supplied gap-2 in tooltip data grid

* fix: add indicator temporarily

* chore: update colors

* chore: update from x-dark to vega-x

* fix: rename symbols

* chore: update sell candles to only use stroke as they are solidly filled

* fix: remove use state

* fix: remove network account types

Co-authored-by: Matthew Russell <mattrussell36@gmail.com>
2023-01-06 16:58:55 +00:00
m.ray
dabae31bfd
fix(): stake to ccy volume renaming ()
* fix(): stakeToCcyVolume param

* chore: fix for network params query error

Co-authored-by: Rado <szpiechrados@gmail.com>
2023-01-06 15:35:32 +00:00
Ciaran McGhie
8db3b01284
feat: add market close datetime to lp dashboard ()
* feat: add proposal data from governance to market liquidity provider

We need data from this API to be able to tell when a market will close,
and when opening auctions will end.

* feat: add closing time to lp-dashboard market list page

Adds a 'closing time' column to the market list page on the dashboard.
2023-01-05 15:28:30 +00:00
Matthew Russell
35de756120
fix(): use accounts nested under LP provision ()
* fix: use accounts nested under lp provision

* fix: add getLiquidityProvision test

Co-authored-by: Madalina Raicu <madalina@raygroup.uk>
2023-01-05 13:09:45 +00:00
m.ray
1e98ecbd21
feat(): liquidity supplied info in market header ()
* feat(): market liquidity supplied in trade market header

* feat(): calculate LP status

* fix: add LP view link

* fix: add LP view link

* feat(): show liquidity supplied percentage

* feat(): show liquidity supplied percentage

* fix: liquidity-utils test needs big number

* feat(): liquidity status marker

* feat(): liquidity indicator

* feat(): update props lp

* fix: use market data directly

* feat(): move data grid in react-helpers

* feat(): move data grid in react-helpers

* fix: indicator commented

* chore: remove unnecessary styles

* test: update test name

Co-authored-by: Matthew Russell <mattrussell36@gmail.com>
2022-12-28 09:37:19 -08:00
m.ray
61457bc24d
fix(): liquidity provisions table has incorrect supplied values ()
* fix(): lp table supplied calculate bond account balance fixed

* fix(): unit tests in accounts-data-provider.spec.ts

* fix(): unit tests in accounts.mock.ts
2022-12-27 14:10:09 +00:00
m.ray
e49ad9da6a
feat(): orders and fills on trading page to be market specific ()
* feat(): make orders and fills tabs market specific in trade grid

* feat(): fix order navigation and show orders for this market only checkbox

* fix(): fills container should not require market

* feat(): add marketId as hook dependency

* fix: use data-testid in trading orders

* fix(): default to false
2022-12-14 12:59:59 +00:00
Ciaran McGhie
c217741924
chore: improve typing in markets list page on the lpdashboard ()
* chore: add some missing properties to the Market type

* chore: improve typing of value formatters in market list page

Replacing ValueFormatterParams with VegaValueFormatterParams<T, Y> in a
bunch of places. Doing this also highlighted we weren't dealing with a
bunch of undefined cases, so we now have fallback formatting for those.

Co-authored-by: Madalina Raicu <madalina@raygroup.uk>
2022-12-12 11:46:33 +00:00
botond
2211abbd72
chore: cleanup type gen ()
* chore: remove apollo type gen and clean up types lib

* fix: format

* fix: tests

* fix: format

* fix: hammer token types til sh*t turns green

* fix: format

* fix: apparently format again

* fix: lint

* fix: build-specs

* fix: format

* chore: regen types

* chore: regenerate types again

* fix: format
2022-12-08 21:13:30 +00:00
m.ray
de8e543bf4
fix(): remove user's pubkey from LP query ()
* fix(): remove user's pubkey from LP query

* fix(): add LP partyID in account events

* fix(): add LP partyID in account events

* fix(): handle NotFound GraphQL errors in async renderer

* fix(): data provider filter apollo graphQL not found error

* fix(): update apollo-client to not report not found error link

* fix(): fix log on not found error link

* fix(): fix set error in data provider

* fix(): extensions type access via index signature

* fix: accounts-data-provider.spec.ts had missing partyId

* fix: revert not found error commit

* fix: revert and set error in data prov
2022-11-25 14:38:02 +00:00
m.ray
41646086e4
chore(): update number formatters across frontend-monorepo ()
* chore: update stagnet3 urls

* chore(): remove normalized number formatter functions and update getNumberFormat

* fix(): fix unit tests on all formatters

* fix(): fix some cypress tests

* fix: fix  trading-accounts.cy.ts

* fix: update staking and wallet teardown tests

* chore: add e2e run-all command

* fix: wallet-eth test

* fix: fix tests in explorer and token

* fix: fix common.functions.js

* fix: fix common.functions.js in explorer

* fix(): fix common.functions.js in explorer

* fix(): fix common.functions.js in explorer

* fix(): fix common.functions.js in explorer

Co-authored-by: Matthew Russell <mattrussell36@gmail.com>
2022-11-22 18:14:16 +00:00
m.ray
6dffe9c019
chore(): rename market valuation entry and change tooltips on LP table ()
* chore(): rename market valuation entry and change tooltips on LP table

* chore(): rename to Market valuation at entry
2022-11-21 11:30:38 +01:00
Matthew Russell
19d0df8b1e
chore: convert type mappings to objects with typed keys based on schema () 2022-11-17 19:19:11 +00:00
Art
a3df65952d
feat: toast component (1677) () 2022-11-15 15:26:13 +01:00
Edd
e598cd1247
chore: update explorer to use v2 queries ()
* fix: migrate queries to latest apis
* fix: remove oracles section for now
* fix: dive in to fields correctly
* fix: update queries
* fix: fragment for stats fields
* fix: rename triple underscore generated
* chore: refactor types that have moved
* chore(explorer): disable e2e test that asserts json structure
2022-11-15 12:31:25 +00:00
m.ray
ffa33634a9
fix(): console liquidity tab keeps adding duplicate rows ()
* fix: create custom ID for liquidity provision entries

* fix:  rename is LP fragment

* fix(): normalize numbers in lp table and rename isLpFragment
2022-11-14 21:17:26 +00:00
Bartłomiej Głownia
0c93023998
fix: remove useDataProviderHook updateOnInit ()
* fix: fix useDataProviderHook updateOnInit

* chore: remove updateOnInit - always execute initial update in useDataProviderHook

* chore: remove useless variables param in useDataProvider update and insert callbacks

* chore: remove console.log
2022-11-14 16:08:12 +01:00
Matthew Russell
71e8235faf
chore(): updates to accomodate changes to datasource apis ()
* chore: updates to accomodate change to datasource apis

* chore: update types for proposal submission

* chore: update queries to work with latest core changes
2022-11-08 17:05:48 -08:00
malinantonsson
0d69ffb4a8
feat(): liquidity provision dashboard details ()
* feat: generate new nx application

* feat: add env variables & render a headline

* feat: add cypress projectId and delete unused files

* feat: render LP grid

* feat: create liquidity provision lib

* feat: liquidity provision calculate volume

* feat: add volume change, generate types

* feat: add EnvironmentProvider

* feat: add LP health bar

* feat: liquidity provision health

* feat: liquidity provider dashboard healthbars

* feat: liquidity provider dashnoard - add auction trigger

* feat: liquidity provider dashboard - display multiple fees

* feat: liquidity provision provider refactor

* feat: liquidity provision provider refactor

* feat: liquidity provision dashboard - add router

* feat: liquidity provision open details in new window

* feat: liquidity provision details page

* feat: liquidity provision details volume

* feat: liquidity provision formatting

* feat: move market candle providers

* feat: liquidity provision styles

* feat: add liquidity provision status

* feat: liquidity provision details

* feat: liquidity move colors

* feat: liquidty provision details

* feat: fix merge

* Feat/lp health bar redesign ()

* feat: liquidity provision details page

* feat: liquidity provision details

* feat: liquidity health bar redesign

* feat: fix merge

* feat: health bar redesign

* feat: add vega colors
2022-11-08 17:43:35 +00:00
Dexter Edwards
da99e731fa
Chore/1925 network params ()
* chore: remove network parameters query from token that was unused

* chore: begin migrating network parameters queries

* chore: more network parameter query migrations

* chore: more network params query migrations

* test: fix tests

* test: fix tests in web3 provider

* test: fix remaining tests

* test: fix e2e test build

* chore: move generic params helper into react helpers

* chore: missed migration

* chore: more migrations

* test: fix test

* test: final test migrations

* fix: e2e test mock

* chore: update type

* chore: update helper script

* test: fix query

* test: fix reduce logic

* test: fix query aliasing
2022-11-07 14:57:35 +00:00
botond
b3a8176297
chore: migrate network stats and clean up liquidity lib ()
* chore: migrate network stats and clean up liquidity lib

* fix: format

* fix: test imports

* fix: format

* fix: market info expiry format tests

* fix: format again

* fix: build
2022-10-28 12:48:42 +01:00
Art
633c2ae526
chore: updated order rejection reason mapping, types regen (1808) () 2022-10-25 11:07:54 +01:00
Bartłomiej Głownia
17f93c2b7e
chore: add build-spec targets and execute on affected apps and libs on CI ()
* chore: add build-spec targets and execute on affected apps and libs on CI

* chore: fix market-depth and react-helpers specs typings

* chore: fix ui-toolkit specs typings

* chore: fix trades specs typings

* chore: fix orders specs typings

* chore: fix deposits specs typings

* chore: fix deal-ticket specs typings

* feat: fix tsc on specs check

* feat: fix tsc on specs check

* feat: fix tsc on specs check

* feat: fix tsc on specs check

* feat: fix tsc on specs check - fix token app

* feat: fix tsc on specs check - fix positions lib

* feat: fix tsc on specs check - fix environment lib

* chore: fix failling build-spec in positions lib

Co-authored-by: maciek <maciek@vegaprotocol.io>
2022-10-25 09:41:16 +02:00
m.ray
4d20151abd
feat: 1537 LP view data provider subscriptions after 0.58 release ()
* fix:  add lp provider sub

* fix: change LP title & update party.id

* fix:  fix obligation and supplied

* fix:  add min width on accounts

* fix:  consistent null check

* fix:  update lp data providers

* fix:  add acounts data provider but requires party id

* feat:  LP data provider -  marketID & query or subscribe for accounts - partyId

* fix:  remove log and fix build

* fix:  fix build console lite and lp dashboard

* fix:  fix tsconfig lp dahsboard

* fix:  use interval to poll LP data - sub not working yet
2022-10-24 20:42:53 +01:00
malinantonsson
3b41e9f2f8
Feat/lp dashboard markets ()
* feat: generate new nx application

* feat: add env variables & render a headline

* feat: add cypress projectId and delete unused files

* feat: liquidity  market list

* feat: render LP grid

* feat: create liquidity provision lib

* feat: liquidity provision calculate volume

* feat: add volume change, generate types

* feat: add EnvironmentProvider

* feat: add LP health bar

* feat: liquidity provision health

* feat: liquidity provider dashboard healthbars

* feat: liquidity provider dashnoard - add auction trigger

* feat: liquidity provider dashboard - display multiple fees

* feat: liquidity provision provider refactor

* feat: liquidity provision provider refactor

* feat: liquidity utils tests

* feat: add benefits and links to docs

* feat: liquidiity provision styles

* feat: fix liquidity provision e2e tests

* feat: liquidity target

* feat: liquidity provision dashboard
2022-10-18 09:58:44 +02:00
m.ray
f743828cb5
feat: 991 deal ticket should show estimated crossing price for market orders when market is in auction ()
* feat:  move order validation back in deal ticket, add tooltip

* fix: align view full market list link styling

* feat:  move tooltip add for monitoring liq auction

* feat:  order validation messages, LP table sortable, padding sparkline, warning instead of errro

* feat:  check only in monitoring auction to add tooltips, re-use isMarketInAuction

* fix:  fix import for isMarketInAuction

* fix:  console-lite imports

* fix: formatting in console-lite deal-ticket-steps.tsx

* fix: add market depth

* fix: add market depth and fix generate orders

* fix: revert market list and generate orders

* fix: fix trading-e2e build

* feat:  in monitoring auction don't show a price input color update based on intent

* fix:  update docs links to docs.vega.xyz in tooltips
2022-10-03 09:41:34 +01:00
m.ray
907a4e256e
feat(): collateral table, add breakdown ()
* feat:  show progress bar, margin accounts, no used/deposited

* feat:  add collateral tables

* fix:  add deposit asset type and fix tests

* feat:  show deposited value, avaliable and percentage used

* fix:  add styling fixes

* fix:  add deposit new asset button

* fix:  remove disabledSelect
to fix withdraw and deposit dialogs

* fix:  remove global reward from incoming - needs to be party specific

* fix:  integration tests

* fix:  default select deposit & withdraw

* fix:  default select deposit & withdraw

* fix:  pass asset id as default value

* fix:   use only bigint no bignumber, remove NaN check

* fix:   update deposit-form.spec.tsx

* fix: revert update on account fields

* feat: add storybook set up

* chore: ignore apollo errors - to be reverted after API will be fixed

* fix: container moved, progress bar in helpers

* fix:  UI tweaks around accounts container

* feat:  added useDepositAsset and useWithdrawAsset

* fix:  fix progress bar in accounts and positions

* feat:  add storybook

* fix:  added tooltip and updated filtering

* chore:  add get account data test

* fix:  fix lint and type in account story

* fix:   update data provider

* fix:  fix get account data dry & lp link

* fix:  fix breakdown table test

* fix:  account data provider test

* fix:  remove deposit new asset button - subscription does not display a
sset data

* fix:  add defaultValue in select otherwise default is not set up

* feat:  update data provider update method and tables

* fix:  fix accounts tests

* fix:  remove unused getRows

* fix: add decimals

* fix:  fix imports

* fix: update ids

* Update apps/trading/pages/liquidity/[marketId].page.tsx

* fix:  accounts update method check delta

* fix:  use vega value formatters and cell renderers

* fix:  fix imports

* fix:  handle new account else block comment

* fix: accounts and breakdown tables

* fix(): account data provider improvments

* fix:  fix formatters null check and add param

* fix:  fix withdraw test and mock the hook

* fix:  fix console lite grid select market test

* fix: console lite build

* fix: revert withdraw limits

* fix: remove redundant waitFor use vega cell renderer

* fix: breakdown display only use accounts

* fix: breakdown display only use accounts

* fix: updated accounts table

* fix: move update inside try useWithdrawAsset

* fix: update trading-accounts test

* fix: portfolio-page.test.ts

Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
2022-09-29 17:40:44 -07:00
Matthew Russell
c4468d507b
fix: classname mismatch warning by setting dark class for nav ()
* fix: classname mismatch warning, tidy unnecessary classes to accomodate dark nav

* chore: lint

* fix: lp test console error and fix

* fix: remove fixed bg from console-lite theme switcher
2022-09-26 23:18:41 -07:00
Bartłomiej Głownia
191e73335e
chore: fixes for 0.56 release ()
* chore: use new GQL candle fields

* Revert "chore: downgrade to 0.55 ()"

This reverts commit cc7a4f2ddd.

* chore: update queries to be compatible with 0.56

* fix: update positions data provider to use only marketId field, omit new position insertion for now

* fix: regen types after merging candles query update

* chore: remove unused generated files

* chore: check for null markets connection

* fix: import errors

* chore: export types from market-list, disable unrelated failing tests

Co-authored-by: johnwalley <john@walley.org.uk>
Co-authored-by: Matthew Russell <mattrussell36@gmail.com>
2022-09-26 17:40:08 -07:00
botond
87f7efd960
Chore/migrate to new types ()
* fix: candle type paths

* chore: migrate deal-ticket

* chore: migrate deposits

* fix: format

* chore: migrate environment

* fix: format

* chore: migrate fills

* fix: format

* chore: fix build errors

* fix: format

* fix: lint

* fix: env tests

* fix: add missing query variable

* fix: format

* fix: change vega_url because n11 is down

* fix: deal ticket query name

* chore: extend event type

* fix: incorrect e2e test
2022-09-26 11:35:45 +01:00
Sam Keen
4ef8218267
Feat/800 better proposal ux round 1 ()
* Feat/800: Configured routes for different proposal types

* Feat/800: Refactored propose.tsx to be a hub for the new proposal routes

* Feat/800: Link style tweak for proposals guide

* Feat/927: Hydrating the new proposal forms

* chore: fix typings for shared components

* Feat/927: Proposal forms built with reusable components

* Feat/800: Updated network params, added new method to get param keys as well as values, updated generated types

* Feat/800: Updated and built more reusable proposal form components

* Feat/800: Removed old catchall file of reusable proposal form components

* Feat/800: Added utils for vote deadline and enactment timestamps

* Feat/800: Readded necessary 'color-scheme-dark' class for dark-theme date and datetime inputs

* Feat/800: Tweak to icon positioning on the dialog component

* Feat/800: Regenerated types for network params

* Feat/800: Added iso8601-duration package for working with API vote deadline and enactment data

* Feat/800: Reworked the proposal forms

* Feat/800: Couple of translation additions

* Feat/800: Another translation addition

* Feat/800: Raw proposal test (tests as per old proposal form test)

* Feat/800: Some basic proposal form tests

* Feat/800: Fixing small types error in test

* Feat/800: Updating simple proposal form tests

* Feat/800: Set up env-specific proposal docs links

* Feat/800: Deadlines to the bottom of proposal forms

* Feat/800: Another type error from API changes fixed

* Feat/800: Added the spam protection min tokens network param to proposal forms requests, and the min requirements now displays the larger value of spam protection or min proposer balance

* Feat/800: Network param value change now a textarea

* Feat/800: Improved way to pass docs url

* Feat/800: Added useful explorer links to proposal forms

* Feat/800: Show current value of selected network param in proposal form

* Feat/800: Removed wallet-confirmation buffer, suspect it is not necessary

* Feat/800: Condense vote and enactment ui into single component for simpler state management, memoised some stuff

* Feat/800: Set a default select option for the market selector

* Feat/800: For network params that aren't JSON, display the network param current value in a readonly text input rather than the syntax highlighter

* Feat/800: Corrected network param form network params

* Feat/800: Timestamp functions for closing, enactment and validation, with tests

* Feat/800: More translations

* Feat/800: Added validation options to proposal-form-vote-and-enactment-deadline.tsx, generally improved the component and added tests

* Feat/800: Improved workings of proposal-form-min-requirements.tsx and wrote tests

* Feat/800: Tests for the other reusable form components

* Feat/800: Improved tests for the proposal forms

* Feat/800: Corrected mistake in get-enactment-timestamp.ts

* Feat/800: Fixed type issues that were preventing spotting an error

* Feat/800: Added some extra docs links

* Feat/800: Using renamed Dialog passed in from useProposalSubmit

* refactor: network params to return an object

* fix: update net param form, remove old net params obj

* fix: check for params before rendering

* Feat/800: Rename and simplify isJson based off PR comment

* Feat/800: Small tweaks to timestamp helpers based on PR comments

* Feat/800: Removed proposal-docs-link.tsx

* Feat/800: Used bignumber for min-requirements calculation

* Feat/800: Update tests to work with merged network params branch

* Feat/800: Removed unnecessary translations splitting

* Feat/800: Removed unwanted test

* Feat/800: Removed unwanted tests

* Feat/800: Consistent arrow functions

* Feat/800: Sorted links

* Feat/800: Removed unnecessary typecasting

* Feat/800: Refactored routing

* Feat/800: Refactored mocking of proposal forms to use MockedProvider

* Feat/800: Correct response from the raw proposal submission test

* Feat/800: Removed console.logs added for debugging

* Feat/800: Result of running 'nx format:write'

* Feat/800: Cleaning up lint warnings

* Update apps/token/.env.stagnet3

Co-authored-by: Dexter Edwards <dexter.edwards93@gmail.com>

* Feat/800: Added extra test for docs link in the proposal-form-terms component

* Feat/800: Removed stray console.log

* Feat/800: Added basic render test for proposal-form-terms and cleaned up a bit

* Feat/800: Added tests for the correct form components for the different forms

* Feat/800: Split up the proposal-form-vote-and-enactment-deadline components inside the file to make things a bit more readable

* Feat/800: router config webpack chunk name tweak

* Feat/800: Lint issue fixed

* Feat/800: Fixed timing issue with get-[deadline]-timestamp tests

* Feat/800: Setting a system time in proposal-form-vote-and-enactment-deadline.spec.tsx that doesn't get affected by British Summer Time

* Feat/800: Skipping a cypress test as the newProposalButton no longer takes a user directly to a proposal form. Leaving it in the codebase as the test is very likely to be updated.

* Feat/800: Adding comment on why I've skipped a cypress test

Co-authored-by: Dexter <dexter@vega.xyz>
Co-authored-by: Matthew Russell <mattrussell36@gmail.com>
Co-authored-by: Dexter Edwards <dexter.edwards93@gmail.com>
2022-09-23 11:10:13 +01:00
m.ray
c59aa19bd2
fix: liquidity provisions view not working after API update ()
* chore: ignore apollo errors - to be reverted after API will be fixed

* fix: partyID should not be enforced in market liquidity query

* Update apps/trading/components/page-query-container/page-query-container.tsx

* Update libs/react-helpers/src/lib/generic-data-provider.ts

* fix: remove partyId from the query to avoid any confusion

Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
2022-09-21 08:26:18 -07:00