@0xsequence/relayer 3.0.10 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
 
2
2
 
3
- > @0xsequence/relayer@3.0.10 build /home/taylan/development/sequence/sequence.js/packages/services/relayer
3
+ > @0xsequence/relayer@3.1.1 build /home/taylan/development/sequence/sequence.js/packages/services/relayer
4
4
  > tsc
5
5
 
@@ -1,4 +1,4 @@
1
1
 
2
- > @0xsequence/relayer@3.0.10 lint /home/taylan/development/sequence/sequence.js/packages/services/relayer
2
+ > @0xsequence/relayer@3.1.1 lint /home/taylan/development/sequence/sequence.js/packages/services/relayer
3
3
  > eslint . --max-warnings 0
4
4
 
@@ -1,4 +1,4 @@
1
1
 
2
- > @0xsequence/relayer@3.0.10 typecheck /home/taylan/development/sequence/sequence.js/packages/services/relayer
2
+ > @0xsequence/relayer@3.1.1 typecheck /home/taylan/development/sequence/sequence.js/packages/services/relayer
3
3
  > tsc --noEmit
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,39 @@
1
1
  # @0xsequence/relayer
2
2
 
3
+ ## 3.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - WDK fix
8
+ - Updated dependencies
9
+ - @0xsequence/wallet-primitives@3.0.12
10
+
11
+ ## 3.1.0
12
+
13
+ ### Minor Changes
14
+
15
+ - 55121af: Surface explicit sponsorship signal on `feeOptions` and an error marker on
16
+ `feeOptions` / `feeTokens`.
17
+ - `RpcRelayer.feeOptions` now returns `sponsored: boolean`, forwarded from the
18
+ server's `FeeOptionsReturn.sponsored`. The `Relayer` interface and all
19
+ bundled implementations (`RpcRelayer`, `SequenceRelayer`, `LocalRelayer`,
20
+ `EIP6963Relayer`, `PkRelayer`) carry the new field.
21
+ - When `feeOptions` swallows a transport / server error it now returns
22
+ `{ options: [], sponsored: false, failed: true }` (was `{ options: [] }`).
23
+ - When `feeTokens` swallows an error it now returns
24
+ `{ isFeeRequired: false, failed: true }` (was `{ isFeeRequired: false }`).
25
+
26
+ These changes are additive — existing consumers that ignore the new fields are
27
+ unaffected. Consumers that classified sponsorship by "no fee option attached"
28
+ should migrate to `sponsored === true` to distinguish a real subsidy from a
29
+ swallowed `/FeeOptions` error.
30
+
31
+ ### Patch Changes
32
+
33
+ - Fix for relayer sponsored fees
34
+ - Updated dependencies
35
+ - @0xsequence/wallet-primitives@3.0.11
36
+
3
37
  ## 3.0.10
4
38
 
5
39
  ### Patch Changes
@@ -11,10 +11,13 @@ export interface Relayer {
11
11
  isFeeRequired: boolean;
12
12
  tokens?: FeeToken[];
13
13
  paymentAddress?: Address.Address;
14
+ failed?: boolean;
14
15
  }>;
15
16
  feeOptions(wallet: Address.Address, chainId: number, to: Address.Address, calls: Payload.Call[], data?: Hex.Hex): Promise<{
16
17
  options: FeeOption[];
17
18
  quote?: FeeQuote;
19
+ sponsored: boolean;
20
+ failed?: boolean;
18
21
  }>;
19
22
  relay(to: Address.Address, data: Hex.Hex, chainId: number, quote?: FeeQuote): Promise<{
20
23
  opHash: Hex.Hex;
@@ -1 +1 @@
1
- {"version":3,"file":"relayer.d.ts","sourceRoot":"","sources":["../../src/relayer/relayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAErE,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,SAAS,CAAA;IAEf,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IAEV,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEvE,SAAS,IAAI,OAAO,CAAC;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;KAAE,CAAC,CAAA;IAEvG,UAAU,CACR,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,OAAO,CAAC,OAAO,EACnB,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,EACrB,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAA;IAEtD,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAA;KAAE,CAAC,CAAA;IAE1G,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAElE,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC7E;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,OAAO,CAU9D"}
1
+ {"version":3,"file":"relayer.d.ts","sourceRoot":"","sources":["../../src/relayer/relayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAErE,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,SAAS,CAAA;IAEf,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IAEV,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEvE,SAAS,IAAI,OAAO,CAAC;QACnB,aAAa,EAAE,OAAO,CAAA;QACtB,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAA;QACnB,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;QAChC,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAC,CAAA;IAEF,UAAU,CACR,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,OAAO,CAAC,OAAO,EACnB,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,EACrB,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAE5F,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAA;KAAE,CAAC,CAAA;IAE1G,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAElE,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC7E;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,OAAO,CAU9D"}
@@ -20,10 +20,13 @@ export declare class RpcRelayer implements Relayer {
20
20
  isFeeRequired: boolean;
21
21
  tokens?: RpcFeeToken[];
22
22
  paymentAddress?: Address.Address;
23
+ failed?: boolean;
23
24
  }>;
24
25
  feeOptions(wallet: Address.Address, chainId: number, to: Address.Address, calls: Payload.Call[], data?: Hex.Hex): Promise<{
25
26
  options: FeeOption[];
26
27
  quote?: FeeQuote;
28
+ sponsored: boolean;
29
+ failed?: boolean;
27
30
  }>;
28
31
  sendMetaTxn(walletAddress: Address.Address, to: Address.Address, data: Hex.Hex, chainId: number, quote?: FeeQuote, preconditions?: TransactionPrecondition[]): Promise<{
29
32
  opHash: Hex.Hex;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/relayer/rpc-relayer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,QAAQ,IAAI,WAAW,EACvB,uBAAuB,EAExB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAe,MAAM,IAAI,CAAA;AAC9C,OAAO,EAAa,OAAO,EAAW,MAAM,+BAA+B,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAmB3E,OAAO,EAA0C,KAAK,EAAE,MAAM,MAAM,CAAA;AAGpE,MAAM,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAuCjF,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,KAAG,KAgB1C,CAAA;AAED,qBAAa,UAAW,YAAW,OAAO;IACxC,SAAgB,IAAI,aAAY;IAChC,SAAgB,IAAI,SAAQ;IAC5B,SAAgB,EAAE,EAAE,MAAM,CAAA;IAC1B,SAAgB,OAAO,EAAE,MAAM,CAAA;IAC/B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAQ;gBAE9B,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,EAAE,MAAM;IAqB3G,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlE,SAAS,IAAI,OAAO,CAAC;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;KAAE,CAAC;IAqB1G,UAAU,CACd,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,OAAO,CAAC,OAAO,EACnB,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,EACrB,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;KAAE,CAAC;IAuChD,WAAW,CACf,aAAa,EAAE,OAAO,CAAC,OAAO,EAC9B,EAAE,EAAE,OAAO,CAAC,OAAO,EACnB,IAAI,EAAE,GAAG,CAAC,GAAG,EACb,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,QAAQ,EAChB,aAAa,CAAC,EAAE,uBAAuB,EAAE,GACxC,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAA;KAAE,CAAC;IAyBzB,KAAK,CACT,EAAE,EAAE,OAAO,CAAC,OAAO,EACnB,IAAI,EAAE,GAAG,CAAC,GAAG,EACb,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,QAAQ,EAChB,aAAa,CAAC,EAAE,uBAAuB,EAAE,GACxC,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAA;KAAE,CAAC;IAyBzB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA2CnE,iBAAiB,CAAC,YAAY,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;IAoKhF,OAAO,CAAC,uBAAuB;CAMhC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/relayer/rpc-relayer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,QAAQ,IAAI,WAAW,EACvB,uBAAuB,EAExB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAe,MAAM,IAAI,CAAA;AAC9C,OAAO,EAAa,OAAO,EAAW,MAAM,+BAA+B,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAmB3E,OAAO,EAA0C,KAAK,EAAE,MAAM,MAAM,CAAA;AAGpE,MAAM,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAuCjF,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,KAAG,KAgB1C,CAAA;AAED,qBAAa,UAAW,YAAW,OAAO;IACxC,SAAgB,IAAI,aAAY;IAChC,SAAgB,IAAI,SAAQ;IAC5B,SAAgB,EAAE,EAAE,MAAM,CAAA;IAC1B,SAAgB,OAAO,EAAE,MAAM,CAAA;IAC/B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAQ;gBAE9B,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,EAAE,MAAM;IAqB3G,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlE,SAAS,IAAI,OAAO,CAAC;QACzB,aAAa,EAAE,OAAO,CAAA;QACtB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;QACtB,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;QAChC,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAC;IAqBI,UAAU,CACd,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,OAAO,CAAC,OAAO,EACnB,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,EACrB,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAuCtF,WAAW,CACf,aAAa,EAAE,OAAO,CAAC,OAAO,EAC9B,EAAE,EAAE,OAAO,CAAC,OAAO,EACnB,IAAI,EAAE,GAAG,CAAC,GAAG,EACb,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,QAAQ,EAChB,aAAa,CAAC,EAAE,uBAAuB,EAAE,GACxC,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAA;KAAE,CAAC;IAyBzB,KAAK,CACT,EAAE,EAAE,OAAO,CAAC,OAAO,EACnB,IAAI,EAAE,GAAG,CAAC,GAAG,EACb,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,QAAQ,EAChB,aAAa,CAAC,EAAE,uBAAuB,EAAE,GACxC,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAA;KAAE,CAAC;IAyBzB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA2CnE,iBAAiB,CAAC,YAAY,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;IAoKhF,OAAO,CAAC,uBAAuB;CAMhC"}
@@ -99,7 +99,7 @@ export class RpcRelayer {
99
99
  }
100
100
  catch (e) {
101
101
  console.warn('RpcRelayer.feeTokens failed:', e);
102
- return { isFeeRequired: false };
102
+ return { isFeeRequired: false, failed: true };
103
103
  }
104
104
  }
105
105
  async feeOptions(wallet, chainId, to, calls, data) {
@@ -127,11 +127,11 @@ export class RpcRelayer {
127
127
  value: option.value,
128
128
  gasLimit: option.gasLimit,
129
129
  }));
130
- return { options, quote };
130
+ return { options, quote, sponsored: result.sponsored };
131
131
  }
132
132
  catch (e) {
133
133
  console.warn('RpcRelayer.feeOptions failed:', e);
134
- return { options: [] };
134
+ return { options: [], sponsored: false, failed: true };
135
135
  }
136
136
  }
137
137
  async sendMetaTxn(walletAddress, to, data, chainId, quote, preconditions) {
@@ -15,10 +15,13 @@ export declare class EIP6963Relayer implements Relayer {
15
15
  isFeeRequired: boolean;
16
16
  tokens?: FeeToken[];
17
17
  paymentAddress?: Address.Address;
18
+ failed?: boolean;
18
19
  }>;
19
20
  feeOptions(wallet: Address.Address, chainId: number, to: Address.Address, calls: Payload.Call[]): Promise<{
20
21
  options: FeeOption[];
21
22
  quote?: FeeQuote;
23
+ sponsored: boolean;
24
+ failed?: boolean;
22
25
  }>;
23
26
  relay(to: Address.Address, data: Hex.Hex, chainId: number, _?: FeeQuote): Promise<{
24
27
  opHash: Hex.Hex;
@@ -1 +1 @@
1
- {"version":3,"file":"eip6963.d.ts","sourceRoot":"","sources":["../../../src/relayer/standard/eip6963.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,MAAM,CAAA;AAE9E,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAEjF,qBAAa,cAAe,YAAW,OAAO;IAC5C,SAAgB,IAAI,aAAY;IAChC,SAAgB,IAAI,aAAY;IAChC,SAAgB,EAAE,EAAE,MAAM,CAAA;IAC1B,SAAgB,IAAI,EAAE,mBAAmB,CAAA;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAE1B,MAAM,EAAE,qBAAqB;IAOzC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvE,SAAS,IAAI,OAAO,CAAC;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;KAAE,CAAC;IAIvG,UAAU,CACR,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,OAAO,CAAC,OAAO,EACnB,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,GACpB,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;KAAE,CAAC;IAIhD,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAA;KAAE,CAAC;IAI5G,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI5D,iBAAiB,CAAC,YAAY,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;CAGjF;AAKD,wBAAgB,eAAe,yBAK9B;AAID,wBAAgB,WAAW,IAAI,cAAc,EAAE,CAW9C"}
1
+ {"version":3,"file":"eip6963.d.ts","sourceRoot":"","sources":["../../../src/relayer/standard/eip6963.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,MAAM,CAAA;AAE9E,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAEjF,qBAAa,cAAe,YAAW,OAAO;IAC5C,SAAgB,IAAI,aAAY;IAChC,SAAgB,IAAI,aAAY;IAChC,SAAgB,EAAE,EAAE,MAAM,CAAA;IAC1B,SAAgB,IAAI,EAAE,mBAAmB,CAAA;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAE1B,MAAM,EAAE,qBAAqB;IAOzC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvE,SAAS,IAAI,OAAO,CAAC;QACnB,aAAa,EAAE,OAAO,CAAA;QACtB,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAA;QACnB,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;QAChC,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAC;IAIF,UAAU,CACR,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,OAAO,CAAC,OAAO,EACnB,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,GACpB,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAItF,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAA;KAAE,CAAC;IAI5G,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI5D,iBAAiB,CAAC,YAAY,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;CAGjF;AAKD,wBAAgB,eAAe,yBAK9B;AAID,wBAAgB,WAAW,IAAI,cAAc,EAAE,CAW9C"}
@@ -29,10 +29,13 @@ export declare class LocalRelayer implements Relayer {
29
29
  isFeeRequired: boolean;
30
30
  tokens?: FeeToken[];
31
31
  paymentAddress?: Address.Address;
32
+ failed?: boolean;
32
33
  }>;
33
34
  feeOptions(_wallet: Address.Address, _chainId: number, _to: Address.Address, _calls: Payload.Call[]): Promise<{
34
35
  options: FeeOption[];
35
36
  quote?: FeeQuote;
37
+ sponsored: boolean;
38
+ failed?: boolean;
36
39
  }>;
37
40
  relay(to: Address.Address, data: Hex.Hex, chainId: number, quote?: FeeQuote, preconditions?: TransactionPrecondition[], checkInterval?: number): Promise<{
38
41
  opHash: Hex.Hex;
@@ -1 +1 @@
1
- {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../../src/relayer/standard/local.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../../src/relayer/standard/local.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ export class LocalRelayer {
29
29
  });
30
30
  }
31
31
  feeOptions(_wallet, _chainId, _to, _calls) {
32
- return Promise.resolve({ options: [] });
32
+ return Promise.resolve({ options: [], sponsored: false });
33
33
  }
34
34
  async relay(to, data, chainId, quote, preconditions, checkInterval = 5000) {
35
35
  // Helper function to check all preconditions
@@ -14,10 +14,13 @@ export declare class PkRelayer implements Relayer {
14
14
  isFeeRequired: boolean;
15
15
  tokens?: FeeToken[];
16
16
  paymentAddress?: Address.Address;
17
+ failed?: boolean;
17
18
  }>;
18
19
  feeOptions(wallet: Address.Address, chainId: number, to: Address.Address, calls: Payload.Call[]): Promise<{
19
20
  options: FeeOption[];
20
21
  quote?: FeeQuote;
22
+ sponsored: boolean;
23
+ failed?: boolean;
21
24
  }>;
22
25
  relay(to: Address.Address, data: Hex.Hex, chainId: number, _?: FeeQuote): Promise<{
23
26
  opHash: Hex.Hex;
@@ -1 +1 @@
1
- {"version":3,"file":"pk-relayer.d.ts","sourceRoot":"","sources":["../../../src/relayer/standard/pk-relayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAA6D,MAAM,IAAI,CAAA;AAEtG,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAExD,qBAAa,SAAU,YAAW,OAAO;IAQrC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAP3B,SAAgB,IAAI,aAAY;IAChC,SAAgB,IAAI,QAAO;IAC3B,SAAgB,EAAE,QAAO;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAGpC,UAAU,EAAE,GAAG,CAAC,GAAG,EACF,QAAQ,EAAE,QAAQ,CAAC,QAAQ;IA0FxC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK9E,SAAS,IAAI,OAAO,CAAC;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;KAAE,CAAC;IAIvG,UAAU,CACR,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,OAAO,CAAC,OAAO,EACnB,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,GACpB,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;KAAE,CAAC;IAIhD,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAA;KAAE,CAAC;IAQ5G,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI5D,iBAAiB,CAAC,aAAa,EAAE,YAAY,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;CAIpF"}
1
+ {"version":3,"file":"pk-relayer.d.ts","sourceRoot":"","sources":["../../../src/relayer/standard/pk-relayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAA6D,MAAM,IAAI,CAAA;AAEtG,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAExD,qBAAa,SAAU,YAAW,OAAO;IAQrC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAP3B,SAAgB,IAAI,aAAY;IAChC,SAAgB,IAAI,QAAO;IAC3B,SAAgB,EAAE,QAAO;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAGpC,UAAU,EAAE,GAAG,CAAC,GAAG,EACF,QAAQ,EAAE,QAAQ,CAAC,QAAQ;IA0FxC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK9E,SAAS,IAAI,OAAO,CAAC;QACnB,aAAa,EAAE,OAAO,CAAA;QACtB,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAA;QACnB,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;QAChC,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAC;IAIF,UAAU,CACR,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,OAAO,CAAC,OAAO,EACnB,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,GACpB,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAItF,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAA;KAAE,CAAC;IAQ5G,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI5D,iBAAiB,CAAC,aAAa,EAAE,YAAY,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;CAIpF"}
@@ -13,10 +13,13 @@ export declare class SequenceRelayer implements Relayer {
13
13
  isFeeRequired: boolean;
14
14
  tokens?: FeeToken[];
15
15
  paymentAddress?: Address.Address;
16
+ failed?: boolean;
16
17
  }>;
17
18
  feeOptions(wallet: Address.Address, _chainId: number, to: Address.Address, calls: Payload.Call[], transactionData?: Hex.Hex): Promise<{
18
19
  options: FeeOption[];
19
20
  quote?: FeeQuote;
21
+ sponsored: boolean;
22
+ failed?: boolean;
20
23
  }>;
21
24
  checkPrecondition(_precondition: TransactionPrecondition): Promise<boolean>;
22
25
  relay(to: Address.Address, data: Hex.Hex, _chainId: number, quote?: FeeQuote): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../../../src/relayer/standard/sequence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,uBAAuB,EAAsB,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AACnH,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AACvD,OAAO,EAAe,OAAO,EAAS,GAAG,EAAE,MAAM,IAAI,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC3E,qBAAa,eAAgB,YAAW,OAAO;IAC7C,SAAgB,IAAI,aAAY;IAChC,SAAgB,IAAI,cAAa;IACjC,QAAQ,CAAC,EAAE,cAAa;IAExB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,IAAI,EAAE,MAAM;IAIlB,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzE,SAAS,IAAI,OAAO,CAAC;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;KAAE,CAAC;IAgBvG,UAAU,CACd,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,OAAO,CAAC,OAAO,EACnB,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,EACrB,eAAe,CAAC,EAAE,GAAG,CAAC,GAAG,GACxB,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;KAAE,CAAC;IAchD,iBAAiB,CAAC,aAAa,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3E,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAA;KAAE,CAAC;IAW3G,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAuC1E"}
1
+ {"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../../../src/relayer/standard/sequence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,uBAAuB,EAAsB,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AACnH,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AACvD,OAAO,EAAe,OAAO,EAAS,GAAG,EAAE,MAAM,IAAI,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC3E,qBAAa,eAAgB,YAAW,OAAO;IAC7C,SAAgB,IAAI,aAAY;IAChC,SAAgB,IAAI,cAAa;IACjC,QAAQ,CAAC,EAAE,cAAa;IAExB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,IAAI,EAAE,MAAM;IAIlB,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzE,SAAS,IAAI,OAAO,CAAC;QACzB,aAAa,EAAE,OAAO,CAAA;QACtB,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAA;QACnB,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;QAChC,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAC;IAgBI,UAAU,CACd,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,OAAO,CAAC,OAAO,EACnB,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,EACrB,eAAe,CAAC,EAAE,GAAG,CAAC,GAAG,GACxB,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAetF,iBAAiB,CAAC,aAAa,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3E,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAA;KAAE,CAAC;IAW3G,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAuC1E"}
@@ -32,10 +32,11 @@ export class SequenceRelayer {
32
32
  const payload = Payload.encode({ type: 'call', space: 0n, nonce: 0n, calls }, to);
33
33
  const signature = '0x0001'; // TODO: use a stub signature
34
34
  const data = transactionData ?? AbiFunction.encodeData(execute, [Bytes.toHex(payload), signature]);
35
- const { options, quote } = await this.service.feeOptions({ wallet, to, data });
35
+ const { options, quote, sponsored } = await this.service.feeOptions({ wallet, to, data });
36
36
  return {
37
37
  options,
38
38
  quote: quote ? { _tag: 'FeeQuote', _quote: quote } : undefined,
39
+ sponsored,
39
40
  };
40
41
  }
41
42
  async checkPrecondition(_precondition) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xsequence/relayer",
3
- "version": "3.0.10",
3
+ "version": "3.1.1",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -26,7 +26,7 @@
26
26
  "mipd": "^0.0.7",
27
27
  "ox": "^0.9.17",
28
28
  "viem": "^2.40.3",
29
- "@0xsequence/wallet-primitives": "^3.0.10"
29
+ "@0xsequence/wallet-primitives": "^3.0.12"
30
30
  },
31
31
  "scripts": {
32
32
  "build": "tsc",
@@ -11,7 +11,12 @@ export interface Relayer {
11
11
 
12
12
  isAvailable(wallet: Address.Address, chainId: number): Promise<boolean>
13
13
 
14
- feeTokens(): Promise<{ isFeeRequired: boolean; tokens?: FeeToken[]; paymentAddress?: Address.Address }>
14
+ feeTokens(): Promise<{
15
+ isFeeRequired: boolean
16
+ tokens?: FeeToken[]
17
+ paymentAddress?: Address.Address
18
+ failed?: boolean
19
+ }>
15
20
 
16
21
  feeOptions(
17
22
  wallet: Address.Address,
@@ -19,7 +24,7 @@ export interface Relayer {
19
24
  to: Address.Address,
20
25
  calls: Payload.Call[],
21
26
  data?: Hex.Hex,
22
- ): Promise<{ options: FeeOption[]; quote?: FeeQuote }>
27
+ ): Promise<{ options: FeeOption[]; quote?: FeeQuote; sponsored: boolean; failed?: boolean }>
23
28
 
24
29
  relay(to: Address.Address, data: Hex.Hex, chainId: number, quote?: FeeQuote): Promise<{ opHash: Hex.Hex }>
25
30
 
@@ -123,7 +123,12 @@ export class RpcRelayer implements Relayer {
123
123
  return Promise.resolve(this.chainId === chainId)
124
124
  }
125
125
 
126
- async feeTokens(): Promise<{ isFeeRequired: boolean; tokens?: RpcFeeToken[]; paymentAddress?: Address.Address }> {
126
+ async feeTokens(): Promise<{
127
+ isFeeRequired: boolean
128
+ tokens?: RpcFeeToken[]
129
+ paymentAddress?: Address.Address
130
+ failed?: boolean
131
+ }> {
127
132
  try {
128
133
  const { isFeeRequired, tokens, paymentAddress } = await this.client.feeTokens()
129
134
  if (isFeeRequired) {
@@ -140,7 +145,7 @@ export class RpcRelayer implements Relayer {
140
145
  }
141
146
  } catch (e) {
142
147
  console.warn('RpcRelayer.feeTokens failed:', e)
143
- return { isFeeRequired: false }
148
+ return { isFeeRequired: false, failed: true }
144
149
  }
145
150
  }
146
151
 
@@ -150,7 +155,7 @@ export class RpcRelayer implements Relayer {
150
155
  to: Address.Address,
151
156
  calls: Payload.Call[],
152
157
  data?: Hex.Hex,
153
- ): Promise<{ options: FeeOption[]; quote?: FeeQuote }> {
158
+ ): Promise<{ options: FeeOption[]; quote?: FeeQuote; sponsored: boolean; failed?: boolean }> {
154
159
  // IMPORTANT:
155
160
  // The relayer FeeOptions endpoint simulates `eth_call(to, data)`.
156
161
  // Callers that already built a wallet transaction should pass its `to` and `data`.
@@ -182,10 +187,10 @@ export class RpcRelayer implements Relayer {
182
187
  gasLimit: option.gasLimit,
183
188
  }))
184
189
 
185
- return { options, quote }
190
+ return { options, quote, sponsored: result.sponsored }
186
191
  } catch (e) {
187
192
  console.warn('RpcRelayer.feeOptions failed:', e)
188
- return { options: [] }
193
+ return { options: [], sponsored: false, failed: true }
189
194
  }
190
195
  }
191
196
 
@@ -23,7 +23,12 @@ export class EIP6963Relayer implements Relayer {
23
23
  return this.relayer.isAvailable(wallet, chainId)
24
24
  }
25
25
 
26
- feeTokens(): Promise<{ isFeeRequired: boolean; tokens?: FeeToken[]; paymentAddress?: Address.Address }> {
26
+ feeTokens(): Promise<{
27
+ isFeeRequired: boolean
28
+ tokens?: FeeToken[]
29
+ paymentAddress?: Address.Address
30
+ failed?: boolean
31
+ }> {
27
32
  return this.relayer.feeTokens()
28
33
  }
29
34
 
@@ -32,7 +37,7 @@ export class EIP6963Relayer implements Relayer {
32
37
  chainId: number,
33
38
  to: Address.Address,
34
39
  calls: Payload.Call[],
35
- ): Promise<{ options: FeeOption[]; quote?: FeeQuote }> {
40
+ ): Promise<{ options: FeeOption[]; quote?: FeeQuote; sponsored: boolean; failed?: boolean }> {
36
41
  return this.relayer.feeOptions(wallet, chainId, to, calls)
37
42
  }
38
43
 
@@ -56,7 +56,12 @@ export class LocalRelayer implements Relayer {
56
56
  return new LocalRelayer(new EIP1193ProviderAdapter(provider))
57
57
  }
58
58
 
59
- feeTokens(): Promise<{ isFeeRequired: boolean; tokens?: FeeToken[]; paymentAddress?: Address.Address }> {
59
+ feeTokens(): Promise<{
60
+ isFeeRequired: boolean
61
+ tokens?: FeeToken[]
62
+ paymentAddress?: Address.Address
63
+ failed?: boolean
64
+ }> {
60
65
  return Promise.resolve({
61
66
  isFeeRequired: false,
62
67
  })
@@ -67,8 +72,8 @@ export class LocalRelayer implements Relayer {
67
72
  _chainId: number,
68
73
  _to: Address.Address,
69
74
  _calls: Payload.Call[],
70
- ): Promise<{ options: FeeOption[]; quote?: FeeQuote }> {
71
- return Promise.resolve({ options: [] })
75
+ ): Promise<{ options: FeeOption[]; quote?: FeeQuote; sponsored: boolean; failed?: boolean }> {
76
+ return Promise.resolve({ options: [], sponsored: false })
72
77
  }
73
78
 
74
79
  async relay(
@@ -107,7 +107,12 @@ export class PkRelayer implements Relayer {
107
107
  return providerChainId === chainId
108
108
  }
109
109
 
110
- feeTokens(): Promise<{ isFeeRequired: boolean; tokens?: FeeToken[]; paymentAddress?: Address.Address }> {
110
+ feeTokens(): Promise<{
111
+ isFeeRequired: boolean
112
+ tokens?: FeeToken[]
113
+ paymentAddress?: Address.Address
114
+ failed?: boolean
115
+ }> {
111
116
  return this.relayer.feeTokens()
112
117
  }
113
118
 
@@ -116,7 +121,7 @@ export class PkRelayer implements Relayer {
116
121
  chainId: number,
117
122
  to: Address.Address,
118
123
  calls: Payload.Call[],
119
- ): Promise<{ options: FeeOption[]; quote?: FeeQuote }> {
124
+ ): Promise<{ options: FeeOption[]; quote?: FeeQuote; sponsored: boolean; failed?: boolean }> {
120
125
  return this.relayer.feeOptions(wallet, chainId, to, calls)
121
126
  }
122
127
 
@@ -17,7 +17,12 @@ export class SequenceRelayer implements Relayer {
17
17
  return true
18
18
  }
19
19
 
20
- async feeTokens(): Promise<{ isFeeRequired: boolean; tokens?: FeeToken[]; paymentAddress?: Address.Address }> {
20
+ async feeTokens(): Promise<{
21
+ isFeeRequired: boolean
22
+ tokens?: FeeToken[]
23
+ paymentAddress?: Address.Address
24
+ failed?: boolean
25
+ }> {
21
26
  const { isFeeRequired, tokens, paymentAddress } = await this.service.feeTokens()
22
27
  if (isFeeRequired) {
23
28
  Address.assert(paymentAddress)
@@ -39,17 +44,18 @@ export class SequenceRelayer implements Relayer {
39
44
  to: Address.Address,
40
45
  calls: Payload.Call[],
41
46
  transactionData?: Hex.Hex,
42
- ): Promise<{ options: FeeOption[]; quote?: FeeQuote }> {
47
+ ): Promise<{ options: FeeOption[]; quote?: FeeQuote; sponsored: boolean; failed?: boolean }> {
43
48
  const execute = AbiFunction.from('function execute(bytes calldata _payload, bytes calldata _signature)')
44
49
  const payload = Payload.encode({ type: 'call', space: 0n, nonce: 0n, calls }, to)
45
50
  const signature = '0x0001' // TODO: use a stub signature
46
51
  const data = transactionData ?? AbiFunction.encodeData(execute, [Bytes.toHex(payload), signature])
47
52
 
48
- const { options, quote } = await this.service.feeOptions({ wallet, to, data })
53
+ const { options, quote, sponsored } = await this.service.feeOptions({ wallet, to, data })
49
54
 
50
55
  return {
51
56
  options,
52
57
  quote: quote ? { _tag: 'FeeQuote', _quote: quote } : undefined,
58
+ sponsored,
53
59
  }
54
60
  }
55
61
 
@@ -294,6 +294,7 @@ describe('Relayer', () => {
294
294
  vi.mocked(mockRelayer.feeOptions).mockResolvedValue({
295
295
  options: [],
296
296
  quote: undefined,
297
+ sponsored: false,
297
298
  })
298
299
  vi.mocked(mockRelayer.relay).mockResolvedValue({
299
300
  opHash: TEST_OP_HASH,
@@ -375,6 +376,60 @@ describe('Relayer', () => {
375
376
  data: expectedData,
376
377
  })
377
378
  })
379
+
380
+ it('should propagate sponsored:true from the server', async () => {
381
+ const fetchImpl = vi.fn(
382
+ async () => new Response(JSON.stringify({ options: [], sponsored: true }), { status: 200 }),
383
+ )
384
+ const relayer = new Relayer.RpcRelayer('https://relayer.test', TEST_CHAIN_ID, 'https://rpc.test', fetchImpl)
385
+
386
+ const result = await relayer.feeOptions(TEST_WALLET_ADDRESS, TEST_CHAIN_ID, TEST_TO_ADDRESS, [mockCall])
387
+
388
+ expect(result.sponsored).toBe(true)
389
+ expect(result.options).toEqual([])
390
+ expect(result.failed).toBeUndefined()
391
+ })
392
+
393
+ it('should propagate sponsored:false from the server', async () => {
394
+ const fetchImpl = vi.fn(
395
+ async () => new Response(JSON.stringify({ options: [], sponsored: false }), { status: 200 }),
396
+ )
397
+ const relayer = new Relayer.RpcRelayer('https://relayer.test', TEST_CHAIN_ID, 'https://rpc.test', fetchImpl)
398
+
399
+ const result = await relayer.feeOptions(TEST_WALLET_ADDRESS, TEST_CHAIN_ID, TEST_TO_ADDRESS, [mockCall])
400
+
401
+ expect(result.sponsored).toBe(false)
402
+ expect(result.failed).toBeUndefined()
403
+ })
404
+
405
+ it('should return sponsored:false and failed:true when the server errors', async () => {
406
+ const warn = vi.spyOn(console, 'warn').mockImplementation(() => {})
407
+ const fetchImpl = vi.fn(
408
+ async () =>
409
+ new Response(JSON.stringify({ error: 'Aborted', code: 1005, msg: 'simulation failed' }), { status: 400 }),
410
+ )
411
+ const relayer = new Relayer.RpcRelayer('https://relayer.test', TEST_CHAIN_ID, 'https://rpc.test', fetchImpl)
412
+
413
+ const result = await relayer.feeOptions(TEST_WALLET_ADDRESS, TEST_CHAIN_ID, TEST_TO_ADDRESS, [mockCall])
414
+
415
+ expect(result).toEqual({ options: [], sponsored: false, failed: true })
416
+ expect(warn).toHaveBeenCalled()
417
+ warn.mockRestore()
418
+ })
419
+ })
420
+
421
+ describe('RpcRelayer.feeTokens', () => {
422
+ it('should return failed:true when the server errors', async () => {
423
+ const warn = vi.spyOn(console, 'warn').mockImplementation(() => {})
424
+ const fetchImpl = vi.fn(async () => new Response('boom', { status: 500 }))
425
+ const relayer = new Relayer.RpcRelayer('https://relayer.test', TEST_CHAIN_ID, 'https://rpc.test', fetchImpl)
426
+
427
+ const result = await relayer.feeTokens()
428
+
429
+ expect(result).toEqual({ isFeeRequired: false, failed: true })
430
+ expect(warn).toHaveBeenCalled()
431
+ warn.mockRestore()
432
+ })
378
433
  })
379
434
 
380
435
  describe('Type compatibility', () => {