Skip to content

Commit

Permalink
Add Support for CIP66 in @celo/* (#264)
Browse files Browse the repository at this point in the history
* Improve test setup for L2 / anvil (#253)

* set the experimental module always when running tests in cli.

* change setupL2 to only need web3 as that is all it uses and we always have web3 where as sometimes we wee needing to create a kit just to pass it to this function
move node experimental setup to the package so its always run and no weird esoteric knowldge is needed to run tests

* kit not required

---------

Co-authored-by: Leszek Stachowski <[email protected]>

* FeeCurrencyDirectory support (#236)

* CLI network commands anvil / L2  (#255)

* dd anvil /l2 test for network commands
remove displaying balance of tokens
remove epoch info when in L2 context

* add changesets

* update snap

* Anvil Migrate: Fed Attestate (#259)

* default to sending v4 of sign typed data
switch federated attestations to anvil,

* doc around

* Add FeeCurrencyDirectoryWrapper config to network:parameters command (#260)

* feat: cip66 wip

* chore: snapshots oops

* fix: dont estimate in @celo/connect

* test: modulo 6 🤪

* refactor: less magic strings

* docs: regenerate docs

* handle large numbers for recovery values

* get the exchange rate from the fcd wrapper
allow bigint

* Improve test setup for L2 / anvil (#253)

* set the experimental module always when running tests in cli.

* change setupL2 to only need web3 as that is all it uses and we always have web3 where as sometimes we wee needing to create a kit just to pass it to this function
move node experimental setup to the package so its always run and no weird esoteric knowldge is needed to run tests

* kit not required

---------

Co-authored-by: Leszek Stachowski <[email protected]>

* FeeCurrencyDirectory support (#236)

* CLI network commands anvil / L2  (#255)

* dd anvil /l2 test for network commands
remove displaying balance of tokens
remove epoch info when in L2 context

* add changesets

* update snap

* Anvil Migrate: Fed Attestate (#259)

* default to sending v4 of sign typed data
switch federated attestations to anvil,

* doc around

* Add FeeCurrencyDirectoryWrapper config to network:parameters command (#260)

* Migrate governance tests to anvil (#263)

* test scaffold

* i think ill need to merge in the l2 stuff before i cant continue

* when a numeric is converted to string if the base is not specified it might try sci notation which is not convertable to big int

* fix tests by adding a mock for isCel2 and being sure to only call newKitFromWeb3 once per instances of web3.

* docs

* add changeset

* estimate gas if it is blank.

all fee's returned should have same format

* Bump up dependencies and move setupL2 (#268)

* sneakily convert to anvil

* fix calculation

* fix slippage padding

* docs

* more of this

* cs

* Revert "cs"

This reverts commit 00c1238.

* Contracts, Params and Deprecations notices (#269)

* mark methods for getting epoch from kit as deprecated,

have separate sets of arrays for contract configs to be shown via networkConfig method

* add change set

* fix that poor name

* use  setupL2

* fix: tests not awaited

* fix: tests not awaited

* fix: snapshots and add new estimation test

* chore: update docs

* fix: tests

* chore: add changeset

* chore: update hw-app-eth

* chore: update changeset

---------

Co-authored-by: Aaron DeRuvo <[email protected]>
Co-authored-by: Leszek Stachowski <[email protected]>
  • Loading branch information
3 people authored Jul 4, 2024
1 parent c38ff3b commit 59f4b42
Show file tree
Hide file tree
Showing 40 changed files with 1,180 additions and 270 deletions.
11 changes: 11 additions & 0 deletions .changeset/cuddly-rivers-scream.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
'@celo/wallet-ledger': minor
'@celo/wallet-local': minor
'@celo/wallet-base': minor
'@celo/wallet-rpc': minor
'@celo/contractkit': minor
'@celo/connect': minor
'@celo/celocli': minor
---

Add support for serializing, sending, parsing and deserializing cip66 transactions. This tx type is preffered over cip64 when paying for gas with tokens. Like eip1559 maxFeePerGass and maxPriorityFeePerGas are denominated in CELO. To create an cip66 transaction with Contractkit call the `kit.populateMaxFeeInToken` method with your transaction and then send it.
28 changes: 14 additions & 14 deletions docs/sdk/connect/interfaces/types.CIP64TXProperties.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ FeeMarketAndAccessListTXProperties.accessList

#### Defined in

[packages/sdk/connect/src/types.ts:71](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L71)
[packages/sdk/connect/src/types.ts:74](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L74)

___

Expand All @@ -51,7 +51,7 @@ ___

#### Defined in

[packages/sdk/connect/src/types.ts:79](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L79)
[packages/sdk/connect/src/types.ts:88](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L88)

___

Expand All @@ -65,7 +65,7 @@ FeeMarketAndAccessListTXProperties.gas

#### Defined in

[packages/sdk/connect/src/types.ts:57](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L57)
[packages/sdk/connect/src/types.ts:60](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L60)

___

Expand All @@ -79,7 +79,7 @@ FeeMarketAndAccessListTXProperties.hash

#### Defined in

[packages/sdk/connect/src/types.ts:64](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L64)
[packages/sdk/connect/src/types.ts:67](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L67)

___

Expand All @@ -93,7 +93,7 @@ FeeMarketAndAccessListTXProperties.input

#### Defined in

[packages/sdk/connect/src/types.ts:60](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L60)
[packages/sdk/connect/src/types.ts:63](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L63)

___

Expand All @@ -107,7 +107,7 @@ FeeMarketAndAccessListTXProperties.maxFeePerGas

#### Defined in

[packages/sdk/connect/src/types.ts:69](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L69)
[packages/sdk/connect/src/types.ts:72](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L72)

___

Expand All @@ -121,7 +121,7 @@ FeeMarketAndAccessListTXProperties.maxPriorityFeePerGas

#### Defined in

[packages/sdk/connect/src/types.ts:70](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L70)
[packages/sdk/connect/src/types.ts:73](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L73)

___

Expand All @@ -135,7 +135,7 @@ FeeMarketAndAccessListTXProperties.nonce

#### Defined in

[packages/sdk/connect/src/types.ts:56](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L56)
[packages/sdk/connect/src/types.ts:59](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L59)

___

Expand All @@ -149,7 +149,7 @@ FeeMarketAndAccessListTXProperties.r

#### Defined in

[packages/sdk/connect/src/types.ts:61](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L61)
[packages/sdk/connect/src/types.ts:64](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L64)

___

Expand All @@ -163,7 +163,7 @@ FeeMarketAndAccessListTXProperties.s

#### Defined in

[packages/sdk/connect/src/types.ts:62](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L62)
[packages/sdk/connect/src/types.ts:65](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L65)

___

Expand All @@ -177,7 +177,7 @@ FeeMarketAndAccessListTXProperties.to

#### Defined in

[packages/sdk/connect/src/types.ts:58](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L58)
[packages/sdk/connect/src/types.ts:61](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L61)

___

Expand All @@ -191,7 +191,7 @@ FeeMarketAndAccessListTXProperties.type

#### Defined in

[packages/sdk/connect/src/types.ts:80](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L80)
[packages/sdk/connect/src/types.ts:89](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L89)

___

Expand All @@ -205,7 +205,7 @@ FeeMarketAndAccessListTXProperties.v

#### Defined in

[packages/sdk/connect/src/types.ts:63](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L63)
[packages/sdk/connect/src/types.ts:66](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L66)

___

Expand All @@ -219,4 +219,4 @@ FeeMarketAndAccessListTXProperties.value

#### Defined in

[packages/sdk/connect/src/types.ts:59](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L59)
[packages/sdk/connect/src/types.ts:62](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L62)
233 changes: 233 additions & 0 deletions docs/sdk/connect/interfaces/types.CIP66TXProperties.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,233 @@
[@celo/connect](../README.md) / [Exports](../modules.md) / [types](../modules/types.md) / CIP66TXProperties

# Interface: CIP66TXProperties

[types](../modules/types.md).CIP66TXProperties

## Hierarchy

- `FeeMarketAndAccessListTXProperties`

**`CIP66TXProperties`**

## Table of contents

### Properties

- [accessList](types.CIP66TXProperties.md#accesslist)
- [feeCurrency](types.CIP66TXProperties.md#feecurrency)
- [gas](types.CIP66TXProperties.md#gas)
- [hash](types.CIP66TXProperties.md#hash)
- [input](types.CIP66TXProperties.md#input)
- [maxFeeInFeeCurrency](types.CIP66TXProperties.md#maxfeeinfeecurrency)
- [maxFeePerGas](types.CIP66TXProperties.md#maxfeepergas)
- [maxPriorityFeePerGas](types.CIP66TXProperties.md#maxpriorityfeepergas)
- [nonce](types.CIP66TXProperties.md#nonce)
- [r](types.CIP66TXProperties.md#r)
- [s](types.CIP66TXProperties.md#s)
- [to](types.CIP66TXProperties.md#to)
- [type](types.CIP66TXProperties.md#type)
- [v](types.CIP66TXProperties.md#v)
- [value](types.CIP66TXProperties.md#value)

## Properties

### accessList

`Optional` **accessList**: `AccessList`

#### Inherited from

FeeMarketAndAccessListTXProperties.accessList

#### Defined in

[packages/sdk/connect/src/types.ts:74](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L74)

___

### feeCurrency

**feeCurrency**: `string`

#### Defined in

[packages/sdk/connect/src/types.ts:82](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L82)

___

### gas

**gas**: `string`

#### Inherited from

FeeMarketAndAccessListTXProperties.gas

#### Defined in

[packages/sdk/connect/src/types.ts:60](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L60)

___

### hash

**hash**: `string`

#### Inherited from

FeeMarketAndAccessListTXProperties.hash

#### Defined in

[packages/sdk/connect/src/types.ts:67](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L67)

___

### input

**input**: `string`

#### Inherited from

FeeMarketAndAccessListTXProperties.input

#### Defined in

[packages/sdk/connect/src/types.ts:63](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L63)

___

### maxFeeInFeeCurrency

**maxFeeInFeeCurrency**: `string`

#### Defined in

[packages/sdk/connect/src/types.ts:83](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L83)

___

### maxFeePerGas

**maxFeePerGas**: `string`

#### Inherited from

FeeMarketAndAccessListTXProperties.maxFeePerGas

#### Defined in

[packages/sdk/connect/src/types.ts:72](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L72)

___

### maxPriorityFeePerGas

**maxPriorityFeePerGas**: `string`

#### Inherited from

FeeMarketAndAccessListTXProperties.maxPriorityFeePerGas

#### Defined in

[packages/sdk/connect/src/types.ts:73](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L73)

___

### nonce

**nonce**: `string`

#### Inherited from

FeeMarketAndAccessListTXProperties.nonce

#### Defined in

[packages/sdk/connect/src/types.ts:59](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L59)

___

### r

**r**: `string`

#### Inherited from

FeeMarketAndAccessListTXProperties.r

#### Defined in

[packages/sdk/connect/src/types.ts:64](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L64)

___

### s

**s**: `string`

#### Inherited from

FeeMarketAndAccessListTXProperties.s

#### Defined in

[packages/sdk/connect/src/types.ts:65](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L65)

___

### to

**to**: `string`

#### Inherited from

FeeMarketAndAccessListTXProperties.to

#### Defined in

[packages/sdk/connect/src/types.ts:61](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L61)

___

### type

**type**: ``"cip66"``

#### Overrides

FeeMarketAndAccessListTXProperties.type

#### Defined in

[packages/sdk/connect/src/types.ts:84](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L84)

___

### v

**v**: `string`

#### Inherited from

FeeMarketAndAccessListTXProperties.v

#### Defined in

[packages/sdk/connect/src/types.ts:66](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L66)

___

### value

**value**: `string`

#### Inherited from

FeeMarketAndAccessListTXProperties.value

#### Defined in

[packages/sdk/connect/src/types.ts:62](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L62)
13 changes: 12 additions & 1 deletion docs/sdk/connect/interfaces/types.CeloParams.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
### Properties

- [feeCurrency](types.CeloParams.md#feecurrency)
- [maxFeeInFeeCurrency](types.CeloParams.md#maxfeeinfeecurrency)

## Properties

Expand All @@ -18,4 +19,14 @@

#### Defined in

[packages/sdk/connect/src/types.ts:14](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L14)
[packages/sdk/connect/src/types.ts:15](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L15)

___

### maxFeeInFeeCurrency

`Optional` **maxFeeInFeeCurrency**: `string` \| `bigint` \| `BN`

#### Defined in

[packages/sdk/connect/src/types.ts:16](https://github.com/celo-org/developer-tooling/blob/master/packages/sdk/connect/src/types.ts#L16)
Loading

0 comments on commit 59f4b42

Please sign in to comment.