Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release: V0.1.0 #159

Merged
merged 24 commits into from
Aug 22, 2024
Merged

Release: V0.1.0 #159

merged 24 commits into from
Aug 22, 2024

Conversation

alex-stone
Copy link
Contributor

@alex-stone alex-stone commented Aug 21, 2024

What changed? Why?

[0.1.0] - 2024-08-22

  • Add support for listing historical balances for a wallet, defaulting to the
    historical_balances function for wallet: listing historical balances for default address of the wallet.
  • Expose all networks as constants, e.g. Coinbase::Network::ETHEREUM_MAINNET
  • Add support for managing Webhooks.
  • Add support for listing smart contract events.
  • Add support for Dedicated ETH Staking for wallet addresses

Breaking Changes

  • All method signatures that took a network_id now take a network that can be either a network constant (e.g. Coinbase::Network::BASE_MAINNET) or a network ID (e.g. :base_mainnet)

Added

  • Add to_address_id method to Transaction class
  • Remove "pending" status from staking operation status

#148
#140
#154
#149
#156
#136
#150
#153
#138
#158
#155
#161
#157

Qualified Impact

chaoyaji-cb and others added 15 commits August 14, 2024 16:53
### What changed? Why?
Add wallet level function for get historical balances: fetch historical
balances for default address.



#### Qualified Impact
<!-- Please evaluate what components could be affected and what the
impact would be if there was an
error. How would this error be resolved, e.g. rollback a deploy, push a
new fix, disable a feature
flag, etc... -->
Expose to_address_id method on Transaction class
### What changed? Why?
Previously when creating MPC wallet's we were accidentally appending 2
identical wallet addresses to the cached addresses.

This makes it so that when we're initially creating the wallet, we just
do a full model reload instead of using the local cache.


#### Qualified Impact
<!-- Please evaluate what components could be affected and what the
impact would be if there was an
error. How would this error be resolved, e.g. rollback a deploy, push a
new fix, disable a feature
flag, etc... -->
### What changed? Why?
This refactors the Wallet class to use explicit delegators for
forwarding to the default address so we do not need to redefine
arguments in two places and potentially have them become out of sync.

#### Qualified Impact
<!-- Please evaluate what components could be affected and what the
impact would be if there was an
error. How would this error be resolved, e.g. rollback a deploy, push a
new fix, disable a feature
flag, etc... -->
### What changed? Why?
This makes it so that the SDK passes the address index when deriving
and registering addresses so that we can have a strong guarantee
that the addresses are listed in address index order.

#### Qualified Impact
<!-- Please evaluate what components could be affected and what the
impact would be if there was an
error. How would this error be resolved, e.g. rollback a deploy, push a
new fix, disable a feature
flag, etc... -->
### What changed? Why?
This removes the user concept as we do not support multiple users and it
is confusing when reasoning about resource ownership.

#### Qualified Impact
<!-- Please evaluate what components could be affected and what the
impact would be if there was an
error. How would this error be resolved, e.g. rollback a deploy, push a
new fix, disable a feature
flag, etc... -->
### What changed? Why?
This dynamically constructs network constants based on the network
enum from our generated CDP service OpenAPI spec.

This will construct the `Coinbase::Network::ALL` constant that
enumerates the network objects.

For each network this will also construct network constants like:
`Coinbase::Network::BASE_SEPOLIA`

This will enable us to use these constants in place of network IDs,
for example:

```
Coinbase::Wallet.create(network: Coinbase::Network::BASE_MAINNET)
```

#### Qualified Impact
<!-- Please evaluate what components could be affected and what the
impact would be if there was an
error. How would this error be resolved, e.g. rollback a deploy, push a
new fix, disable a feature
flag, etc... -->
### What changed? Why?
This injects the correlation context as request headers including the
SDK version and language. This will better help assess what client SDK
versions our developers are using so we can proactively reach out to
developers on older versions.

#### Qualified Impact
<!-- Please evaluate what components could be affected and what the
impact would be if there was an
error. How would this error be resolved, e.g. rollback a deploy, push a
new fix, disable a feature
flag, etc... -->
@cb-heimdall
Copy link

cb-heimdall commented Aug 21, 2024

✅ Heimdall Review Status

Requirement Status More Info
Reviews 2/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

@alex-stone alex-stone marked this pull request as ready for review August 22, 2024 19:24
@alex-stone alex-stone changed the title V0.1.0 Release: V0.1.0 Aug 22, 2024
jinghanx and others added 9 commits August 22, 2024 13:37
### What changed? Why?
This bumps the client to use the new `WalletStakeApi` client as well as
updates the changelog in anticipation of 0.1.0

#### Qualified Impact
<!-- Please evaluate what components could be affected and what the
impact would be if there was an
error. How would this error be resolved, e.g. rollback a deploy, push a
new fix, disable a feature
flag, etc... -->
### What changed? Why?

This PR is a quick follow up to
#157 and helps cleanup
some of the unnecessary mocking in the prev PR.


#### Qualified Impact
<!-- Please evaluate what components could be affected and what the
impact would be if there was an
error. How would this error be resolved, e.g. rollback a deploy, push a
new fix, disable a feature
flag, etc... -->
- add webhook api to ruby sdk
- [HistoricalBalances] add wallet level function (#148)
- Expose to_address_id method on Transaction class
- network id symbol
- test cases
- [chore] Fix MPC wallet address initailization (#154)
- fix conversion price
- Refactor Wallet class to use delegators (#136)
- Pass address index when registering address (#150)
- Remove the user concept (#153)
- Add dynamic network constants (#138)
- Inject correlation context headers (#158)
- contract event ruby
- update
- Bump client and update changelog for v0.1.0 release (#161)
- revert wallet level historical balances

### What changed? Why?


#### Qualified Impact
<!-- Please evaluate what components could be affected and what the
impact would be if there was an
error. How would this error be resolved, e.g. rollback a deploy, push a
new fix, disable a feature
flag, etc... -->
@alex-stone
Copy link
Contributor Author

💇 @jazz-cb @John-peterson-coinbase

Changes

  • Fixed commits that weren't signed

@alex-stone alex-stone merged commit 408e36a into master Aug 22, 2024
10 checks passed
@alex-stone alex-stone deleted the v0.1.0 branch August 22, 2024 20:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

9 participants