## Description
This PR sets up [Ampli
](https://www.docs.developers.amplitude.com/data/sdks/javascript/ampli/#overview)and
initializes the Amplitude SDK on the initial load of Sui Wallet. Ampli
is Amplitude's codegen tool, so we can create a tracking plan in
Amplitude and then automatically generate type-safe logging functions in
our codebase which prevents us from A). making mistakes and B). creating
some manual logging abstraction. By default, this doesn't automatically
track any events like page views; we'll start working on the
instrumentation plan after this.
As part of this PR, we're introducing a new workflow:
```
// To sync the event schema from Amplitude to the Explorer:
pnpm pull-amplitude
// To access the general Ampli CLI:
pnpm ampli
```
## Test Plan
- Generally, I think it's going to be important to add tests here...
maybe in a follow-up though since that'll take some time
- Tested that refreshing the wallet before creating a wallet creates a
new device ID & doesn't store cookies
- Tested that we use memory before creation and then everything is
properly copied over after creation
- Tested that the device ID persists between refreshes and reloads when
using cookie storage
- Tested that logging out wipes out and resets your device ID (NOTE:
this doesn't clear your Amplitude cookies)
- Tested that the wallet still uses cookies after being locked since the
wallet is still initialized
---
If your changes are not user-facing and not a breaking change, you can
skip the following section. Otherwise, please indicate what changed, and
then add to the Release Notes section as highlighted during the release
process.
### Type of Change (Check all that apply)
- [ ] protocol change
- [ ] user-visible impact
- [ ] breaking change for a client SDKs
- [ ] breaking change for FNs (FN binary must upgrade)
- [ ] breaking change for validators or node operators (must upgrade
binaries)
- [ ] breaking change for on-chain data layout
- [ ] necessitate either a data wipe or data migration
### Release notes
N/A