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

feat: paymaster #181

Merged
merged 71 commits into from
Dec 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
ccc440e
style: add solidity plugin to prettier config
hbriese Nov 30, 2023
ceaf21d
refactor(contracts): signing method verifier libraries
hbriese Dec 1, 2023
1021bad
feat(contracts): Paymaster
hbriese Dec 5, 2023
93a808a
feat(lib): paymaster utils
hbriese Dec 5, 2023
62cabc0
feat(account): Zallo paymaster support
hbriese Dec 5, 2023
a99412c
test(contracts): paymaster
hbriese Dec 5, 2023
8441430
feat(contracts): paymaster deploy script
hbriese Dec 5, 2023
1d8b44e
refactor(contracts,api): rename ambigous TxProposal txHash -> proposal
hbriese Dec 5, 2023
cb2bfee
feat(api): pyth prices service
hbriese Dec 7, 2023
8320310
feat(api): add PYTH usd price id property to tokens for price tracking
hbriese Dec 7, 2023
3ce27bc
refactor(lib): operations encoding
hbriese Dec 7, 2023
bf1e639
feat(api): use Zallo paymaster for transactions
hbriese Dec 7, 2023
95007aa
feat(api): issue fee discounts based on refund credit
hbriese Dec 8, 2023
61709b5
fix(contracts): pretty success message when contract is already verified
hbriese Dec 10, 2023
9909d6a
feat(contracts): withdraw from paymaster
hbriese Dec 11, 2023
9fcbca9
fix(contracts): executing transaction without paymaster input and imp…
hbriese Dec 11, 2023
35dc41b
test(contract): PaymasterManager tests
hbriese Dec 11, 2023
c9cc5d0
test(contracts): refactor deployment
hbriese Dec 11, 2023
a9e02db
feat(api): amounts formatted as decimals
hbriese Dec 12, 2023
d20149b
fix(api): graphql query generation
hbriese Dec 12, 2023
2ecc65d
refactor(app): decimal amounts
hbriese Dec 12, 2023
8ddb9e1
fix(lib): flatten token including chains the token isn't in
hbriese Dec 12, 2023
8bb8fad
feat(contracts): task to upload all selectors to openchain.xyz
hbriese Dec 13, 2023
3d5edae
feat(api): transaction executions as jobs
hbriese Dec 14, 2023
4d1ce56
fix(api): updating a price that hasn't been pushed on the chain yet
hbriese Dec 14, 2023
1d3eb4e
feat(api): distinct transaction fees
hbriese Dec 14, 2023
03b9762
refactor(api): bull -> bullmq
hbriese Dec 14, 2023
20ee314
fix(api): capturing sentry data outside of user request
hbriese Dec 14, 2023
a72c420
perf(api): subscribe to network block number
hbriese Dec 14, 2023
1214350
fix(api): downed network status
hbriese Dec 14, 2023
ba2824b
perf(api): improve startup time by delaying events worker processing
hbriese Dec 14, 2023
7327b28
refactor(api): network status detection
hbriese Dec 14, 2023
6f969c3
refactor(lib,api,app): remove isHex/asHex size argument
hbriese Dec 14, 2023
aca941c
refactor(api): log failed jobs and close worker earlier when shutting…
hbriese Dec 15, 2023
d6bcbd8
fix(api): price feed updates
hbriese Dec 15, 2023
bdfd22c
fix(api): inserting transfer events when not originating from transac…
hbriese Dec 15, 2023
ba5d2ef
feat(api): retain 1000 completed jobs per queue and use exponential b…
hbriese Dec 15, 2023
4abba6f
refactor(api): use local logging instances
hbriese Dec 15, 2023
24bdc5d
feat(app): show detailed transaction fees
hbriese Dec 15, 2023
fd81bbb
fix(app): sign additional paymaster data when approving transaction
hbriese Dec 15, 2023
ad600b8
fix(api): checking the freshness of price feeds not pushed on chain yet
hbriese Dec 18, 2023
911087c
fix(api): update transaction proposal hash when signed data changed
hbriese Dec 18, 2023
2f3caba
feat(api): support re-simulating proposal
hbriese Dec 18, 2023
a9c87f3
fix(api): filter invalid approvals when proposing transaction
hbriese Dec 18, 2023
6538dc5
refactor(api): remove gql client and codgen
hbriese Dec 18, 2023
b3d2b8a
doc(lib): notes on potential gas griefing attack
hbriese Dec 18, 2023
ffd11e4
refactor(api): reference proposals by id (uuid) rather than hash
hbriese Dec 18, 2023
e537f61
feat(lib): basic simulation of transaction prior to execution
hbriese Dec 19, 2023
1f36a30
feat(api): success and response simulation
hbriese Dec 19, 2023
f2f3888
feat(api): require successful simulation to execute
hbriese Dec 19, 2023
719f668
perf(api): process older events first, even when split
hbriese Dec 19, 2023
2a3b0d9
perf(api): track event logs per block ema
hbriese Dec 19, 2023
1f522bf
fix(app): missing link for app store and google play buttons
hbriese Dec 19, 2023
3296722
chore: update viem
hbriese Dec 19, 2023
37bd472
fix: patch viem to fix zksync eth_call when passing in customSIgnature
hbriese Dec 19, 2023
b14af70
fix(app): show fees as negative (for consistency)
hbriese Dec 20, 2023
4a90118
fix(api): execution sometimes occuring prior to price update
hbriese Dec 20, 2023
59effb8
fix(api): incorrect transaction proposal gas limit query
hbriese Dec 20, 2023
a11c484
refactor(api): separate mutex usage into either `runExclusive` or `ru…
hbriese Dec 20, 2023
eba8a08
perf(api): get or set user linking token without explicit locking
hbriese Dec 20, 2023
ac3e64e
chore(api): update deps
hbriese Dec 21, 2023
3ee1c03
feat(api): additional sentry integrations
hbriese Dec 21, 2023
78a07d6
fix(api): price freshness checking
hbriese Dec 21, 2023
a194beb
refactor(api): consolidate networks.for and networks.get
hbriese Dec 22, 2023
c8488e8
test(api): price feed updates
hbriese Dec 22, 2023
45112a6
test(api): paymaster tests
hbriese Dec 22, 2023
972c7df
fix(contracts): paymaster post transaciton gas cost
hbriese Dec 22, 2023
71fddde
chore(api): migrations
hbriese Dec 22, 2023
646a351
chore: remove unused environmental variables
hbriese Dec 22, 2023
8ba54ca
fix(dapps): missing package name
hbriese Dec 22, 2023
4f2d6ef
fix(api): remove uniswap gql url from config & fix tests
hbriese Dec 22, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .config/.prettierrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"plugins": ["prettier-plugin-solidity"],
"tabWidth": 2,
"printWidth": 100,
"singleQuote": true,
Expand Down
4 changes: 2 additions & 2 deletions .env.vault
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ DOTENV_VAULT_DEVELOPMENT="qaHKYhGFl0XqoWyc4X49IExxhaTyIGx7997D1ZdWXQAP+Rk3f3WAME
DOTENV_VAULT_DEVELOPMENT_VERSION=11

# production
DOTENV_VAULT_PRODUCTION="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"
DOTENV_VAULT_PRODUCTION_VERSION=55
DOTENV_VAULT_PRODUCTION="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"
DOTENV_VAULT_PRODUCTION_VERSION=57

#/----------------settings/metadata-----------------/
DOTENV_VAULT="vlt_bc359b28462917c6a6a31b5594a46e59b5d744d88d65497001c01e0fb250bfed"
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed .yarn/cache/arch-npm-2.2.0-34797684d8-e35dbc6d36.zip
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed .yarn/cache/ejs-npm-3.1.7-ac170c215c-a215b98bf5.zip
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed .yarn/cache/got-npm-11.8.6-89e7cd5d67-a30c74029d.zip
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed .yarn/cache/nopt-npm-6.0.0-5ea8050815-3c1128e07c.zip
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed .yarn/cache/qs-npm-6.9.7-3f3fa3ac7b-fb364b54bf.zip
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed .yarn/cache/tsx-npm-4.5.0-9d82585065-49576a8e20.zip
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added .yarn/cache/viem-patch-4beda9c657-e858f24e12.zip
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
39 changes: 39 additions & 0 deletions .yarn/patches/viem-npm-1.20.3-dc6ceec8be.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
diff --git a/_cjs/chains/zksync/formatters.js b/_cjs/chains/zksync/formatters.js
index 40a7c9e4048507b313c07711a50544ccafc5dce7..b492ed18858d879688d0f3b983d0c5345295be8b 100644
--- a/_cjs/chains/zksync/formatters.js
+++ b/_cjs/chains/zksync/formatters.js
@@ -116,7 +116,7 @@ exports.formattersZkSync = {
: {}),
...(args.factoryDeps ? { factoryDeps: args.factoryDeps } : {}),
...(args.customSignature
- ? { customSignature: args.customSignature }
+ ? { customSignature: Array.from((0, toBytes_js_1.hexToBytes)(args.customSignature)) }
: {}),
},
type: args.type === 'eip712' ? '0x71' : '0xff',
diff --git a/_esm/chains/zksync/formatters.js b/_esm/chains/zksync/formatters.js
index 53e33e3bbc21dd4f11bedaa1d0713896451b2b02..6cbaa32290d6489321edd02bd220469845ec604f 100644
--- a/_esm/chains/zksync/formatters.js
+++ b/_esm/chains/zksync/formatters.js
@@ -114,7 +114,7 @@ export const formattersZkSync = {
: {}),
...(args.factoryDeps ? { factoryDeps: args.factoryDeps } : {}),
...(args.customSignature
- ? { customSignature: args.customSignature }
+ ? { customSignature: Array.from(hexToBytes(args.customSignature)) }
: {}),
},
type: args.type === 'eip712' ? '0x71' : '0xff',
diff --git a/chains/zksync/formatters.ts b/chains/zksync/formatters.ts
index 8e00a9f39a160183576869b23522e36289a2024b..abc81011aa362c670468afc337986464bfd40a0c 100644
--- a/chains/zksync/formatters.ts
+++ b/chains/zksync/formatters.ts
@@ -135,7 +135,7 @@ export const formattersZkSync = {
: {}),
...(args.factoryDeps ? { factoryDeps: args.factoryDeps } : {}),
...(args.customSignature
- ? { customSignature: args.customSignature }
+ ? { customSignature: Array.from(hexToBytes(args.customSignature)) }
: {}),
},
type: args.type === 'eip712' ? '0x71' : '0xff',
23 changes: 0 additions & 23 deletions api/codegen.ts

This file was deleted.

58 changes: 41 additions & 17 deletions api/dbschema/default.esdl
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ module default {
required salt: Bytes32;
required isActive: bool;
photoUri: str;
required paymasterEthCredit: decimal { constraint min_value(0); default := 0; }
required property chain := as_chain(.address);
multi link policies := (select .<account[is Policy] filter .isEnabled);
multi link proposals := .<account[is Proposal];
Expand Down Expand Up @@ -73,10 +74,7 @@ module default {
required approver: Approver {
default := (<Approver>(global current_approver).id);
}
required createdAt: datetime {
readonly := true;
default := datetime_of_statement();
}
required createdAt: datetime { default := datetime_of_statement(); }

constraint exclusive on ((.proposal, .approver));

Expand All @@ -101,8 +99,15 @@ module default {
constraint exclusive on ((.proposal, .user));
}

scalar type ApprovalIssue extending enum<'HashMismatch', 'Expired'>;

type Approval extending ProposalResponse {
required signature: Bytes;
required signedHash: Bytes32; # { default := .proposal.hash; }
required property issues := <array<ApprovalIssue>>array_agg(
{ApprovalIssue.HashMismatch} if (.signedHash != .proposal.hash) else <ApprovalIssue>{}
);
required property invalid := len(.issues) > 0;
}

type Rejection extending ProposalResponse {}
Expand All @@ -118,9 +123,11 @@ module default {
constraint exclusive;
on source delete delete target;
}
required gasLimit: uint256 { default := 0n; }
required gasLimit: uint256 { default := 0; }
required feeToken: Token;
simulation: Simulation { constraint exclusive; }
required paymaster: Address;
required paymasterEthFee: decimal { constraint min_value(0); default := 0; }
simulation: Simulation { constraint exclusive; on target delete deferred restrict; }
multi link transactions := .<proposal[is Transaction];
link transaction := (select .transactions order by .submittedAt desc limit 1);
required property status := (
Expand All @@ -137,7 +144,13 @@ module default {
scalar type TransactionProposalStatus extending enum<'Pending', 'Executing', 'Successful', 'Failed'>;

type Simulation {
multi transfers: TransferDetails;
required success: bool;
required responses: array<Bytes>;
multi transfers: TransferDetails {
constraint exclusive;
on source delete delete target;
}
required timestamp: datetime { default := datetime_of_statement(); }
}

type MessageProposal extending Proposal {
Expand All @@ -149,7 +162,7 @@ module default {
type Event {
required transactionHash: Bytes32;
transaction: Transaction;
required block: bigint { constraint min_value(0n); }
required block: bigint { constraint min_value(0); }
required logIndex: uint32;
required timestamp: datetime { default := datetime_of_statement(); }
required property internal := exists .transaction;
Expand All @@ -162,8 +175,9 @@ module default {
required from: Address;
required to: Address;
required tokenAddress: UAddress;
required amount: bigint;
required amount: decimal;
required multi direction: TransferDirection;
required isFeeTransfer: bool { default := false; }
link token := (
assert_single((
with address := .tokenAddress
Expand Down Expand Up @@ -198,13 +212,16 @@ module default {
type Transaction {
required hash: Bytes32 { constraint exclusive; }
required proposal: TransactionProposal;
required gasPrice: uint256;
required submittedAt: datetime {
readonly := true;
default := datetime_of_statement();
}
required maxEthFeePerGas: decimal { constraint min_value(0); }
required ethDiscount: decimal { constraint min_value(0); default := 0; }
required ethPerFeeToken: decimal { constraint min_value(0); }
required usdPerFeeToken: decimal { constraint min_value(0); }
required property maxNetworkEthFee := .maxEthFeePerGas * .proposal.gasLimit;
required property maxEthFees := .maxNetworkEthFee + .proposal.paymasterEthFee - .ethDiscount;
required submittedAt: datetime { default := datetime_of_statement(); }
receipt: Receipt { constraint exclusive; }
multi link events := .<transaction[is Event];
multi link refunds := .<transaction[is Refund];

access policy members_can_select_insert
allow select, insert
Expand All @@ -215,15 +232,22 @@ module default {
required link transaction := assert_exists(.<receipt[is Transaction]);
required success: bool;
required responses: array<Bytes>;
required gasUsed: bigint { constraint min_value(0n); }
required fee: bigint { constraint min_value(0n); }
required block: bigint { constraint min_value(0n); }
required block: bigint { constraint min_value(0); }
required timestamp: datetime { default := datetime_of_statement(); }
required gasUsed: bigint { constraint min_value(0); }
required ethFeePerGas: decimal { constraint min_value(0); }
required property networkEthFee := .ethFeePerGas * .transaction.proposal.gasLimit;
required property ethFees := .networkEthFee + .transaction.proposal.paymasterEthFee - .transaction.ethDiscount;
multi link events := .transaction.events;
multi link transferEvents := .events[is Transfer];
multi link transferApprovalEvents := .events[is TransferApproval];
}

type Refund {
required link transaction: Transaction { constraint exclusive; }
required ethAmount: decimal { constraint min_value(0); }
}

type Contract {
required address: Address {
constraint exclusive;
Expand Down
Loading
Loading