+ Is signal received: {isSignalReceivedMessage}
+
diff --git a/packages/app/src/domain/chain.ts b/packages/app/src/domain/chain.ts
index cfff033..3298675 100644
--- a/packages/app/src/domain/chain.ts
+++ b/packages/app/src/domain/chain.ts
@@ -1,46 +1,46 @@
import type { Chain } from "@wagmi/core";
export const base = {
- id: 84531,
- name: "Base",
- network: "Base Goerli",
- nativeCurrency: {
- decimals: 18,
- name: "Ether",
- symbol: "ETH",
+ id: 84531,
+ name: "Base",
+ network: "Base Goerli",
+ nativeCurrency: {
+ name: "Ether",
+ symbol: "ETH",
+ decimals: 18,
+ },
+ rpcUrls: {
+ public: {
+ http: ["https://goerli.base.org"],
},
- rpcUrls: {
- public: {
- http: ["https://goerli.base.org"],
- },
- default: {
- http: ["https://goerli.base.org"],
- },
+ default: {
+ http: ["https://goerli.base.org"],
},
- } as const satisfies Chain;
+ },
+} as const satisfies Chain;
export const taiko = {
- id: 167001,
+ id: 167002,
name: "Taiko",
- network: "Askja (Alpha-2)",
+ network: "askja",
nativeCurrency: {
- decimals: 18,
- name: "Ether",
+ name: "Taiko Ether",
symbol: "ETH",
+ decimals: 18,
},
rpcUrls: {
public: {
- http: ["https://l2rpc.a2.taiko.xyz"],
+ http: ["https://l2rpc.hackathon.taiko.xyz"],
},
default: {
- http: ["https://l2rpc.a2.taiko.xyz"],
+ http: ["https://l2rpc.hackathon.taiko.xyz"],
},
},
blockExplorers: {
default: {
name: "L2 Explorer",
- url: "https://l2explorer.a2.taiko.xyz",
+ url: "https://l2explorer.hackathon.taiko.xyz",
},
},
+ testnet: true,
} as const satisfies Chain;
-
diff --git a/packages/app/src/domain/sepoliaBlock.ts b/packages/app/src/domain/sepoliaBlock.ts
new file mode 100644
index 0000000..932916b
--- /dev/null
+++ b/packages/app/src/domain/sepoliaBlock.ts
@@ -0,0 +1,19 @@
+export type BlockHeader = {
+ parentHash: string;
+ ommersHash: string;
+ beneficiary: string;
+ stateRoot: string;
+ transactionsRoot: string;
+ receiptsRoot: string;
+ logsBloom: string[];
+ difficulty: number;
+ height: number;
+ gasLimit: number;
+ gasUsed: number;
+ timestamp: number;
+ extraData: string;
+ mixHash: string;
+ nonce: number;
+ baseFeePerGas: number;
+ withdrawalsRoot: string;
+};
diff --git a/packages/app/src/generated.ts b/packages/app/src/generated.ts
index 9cab2eb..dc459e1 100644
--- a/packages/app/src/generated.ts
+++ b/packages/app/src/generated.ts
@@ -1,11 +1,193 @@
-// Generated by @wagmi/cli@0.1.11 on 3/6/2023 at 3:08:56 AM
+// Generated by @wagmi/cli@0.1.11 on 3/9/2023 at 7:59:29 PM
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// SignalService
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+/**
+ * [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0xe40D5bedD2f3d9F288CC12c69463bC43c77488d6)
+ */
+export const signalServiceABI = [
+ {
+ stateMutability: 'view',
+ type: 'function',
+ inputs: [],
+ name: 'addressManager',
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
+ },
+ {
+ stateMutability: 'pure',
+ type: 'function',
+ inputs: [
+ { name: 'app', internalType: 'address', type: 'address' },
+ { name: 'signal', internalType: 'bytes32', type: 'bytes32' },
+ ],
+ name: 'getSignalSlot',
+ outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
+ },
+ {
+ stateMutability: 'nonpayable',
+ type: 'function',
+ inputs: [{ name: '_addressManager', internalType: 'address', type: 'address' }],
+ name: 'init',
+ outputs: [],
+ },
+ {
+ stateMutability: 'view',
+ type: 'function',
+ inputs: [
+ { name: 'srcChainId', internalType: 'uint256', type: 'uint256' },
+ { name: 'app', internalType: 'address', type: 'address' },
+ { name: 'signal', internalType: 'bytes32', type: 'bytes32' },
+ { name: 'proof', internalType: 'bytes', type: 'bytes' },
+ ],
+ name: 'isSignalReceived',
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
+ },
+ {
+ stateMutability: 'view',
+ type: 'function',
+ inputs: [
+ { name: 'app', internalType: 'address', type: 'address' },
+ { name: 'signal', internalType: 'bytes32', type: 'bytes32' },
+ ],
+ name: 'isSignalSent',
+ outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
+ },
+ {
+ stateMutability: 'view',
+ type: 'function',
+ inputs: [],
+ name: 'owner',
+ outputs: [{ name: '', internalType: 'address', type: 'address' }],
+ },
+ {
+ stateMutability: 'nonpayable',
+ type: 'function',
+ inputs: [],
+ name: 'renounceOwnership',
+ outputs: [],
+ },
+ {
+ stateMutability: 'view',
+ type: 'function',
+ inputs: [
+ { name: 'name', internalType: 'string', type: 'string' },
+ { name: 'allowZeroAddress', internalType: 'bool', type: 'bool' },
+ ],
+ name: 'resolve',
+ outputs: [{ name: '', internalType: 'address payable', type: 'address' }],
+ },
+ {
+ stateMutability: 'view',
+ type: 'function',
+ inputs: [
+ { name: 'chainId', internalType: 'uint256', type: 'uint256' },
+ { name: 'name', internalType: 'string', type: 'string' },
+ { name: 'allowZeroAddress', internalType: 'bool', type: 'bool' },
+ ],
+ name: 'resolve',
+ outputs: [{ name: '', internalType: 'address payable', type: 'address' }],
+ },
+ {
+ stateMutability: 'nonpayable',
+ type: 'function',
+ inputs: [{ name: 'signal', internalType: 'bytes32', type: 'bytes32' }],
+ name: 'sendSignal',
+ outputs: [{ name: 'storageSlot', internalType: 'bytes32', type: 'bytes32' }],
+ },
+ {
+ stateMutability: 'nonpayable',
+ type: 'function',
+ inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
+ name: 'transferOwnership',
+ outputs: [],
+ },
+ {
+ type: 'event',
+ anonymous: false,
+ inputs: [{ name: 'version', type: 'uint8', indexed: false }],
+ name: 'Initialized',
+ },
+ {
+ type: 'event',
+ anonymous: false,
+ inputs: [
+ { name: 'previousOwner', type: 'address', indexed: true },
+ { name: 'newOwner', type: 'address', indexed: true },
+ ],
+ name: 'OwnershipTransferred',
+ },
+ { type: 'error', inputs: [], name: 'B_NULL_APP_ADDR' },
+ { type: 'error', inputs: [], name: 'B_WRONG_CHAIN_ID' },
+ { type: 'error', inputs: [], name: 'B_ZERO_SIGNAL' },
+ { type: 'error', inputs: [], name: 'RESOLVER_DENIED' },
+ { type: 'error', inputs: [], name: 'RESOLVER_INVALID_ADDR' },
+] as const
+
+/**
+ * [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0xe40D5bedD2f3d9F288CC12c69463bC43c77488d6)
+ */
+export const signalServiceAddress = {
+ 167002: '0x191E3D5a00d54799D7da6c04d56b19938304c312',
+ 11155111: '0xe40D5bedD2f3d9F288CC12c69463bC43c77488d6',
+} as const
+
+/**
+ * [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0xe40D5bedD2f3d9F288CC12c69463bC43c77488d6)
+ */
+export const signalServiceConfig = { address: signalServiceAddress, abi: signalServiceABI } as const
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// TaikoL2
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+/**
+ *
+ */
+export const taikoL2ABI = [
+ {
+ type: 'event',
+ anonymous: false,
+ inputs: [
+ { name: 'srcHeight', internalType: 'uint256', type: 'uint256', indexed: true },
+ { name: 'srcHash', internalType: 'bytes32', type: 'bytes32', indexed: false },
+ ],
+ name: 'HeaderSynced',
+ },
+ {
+ stateMutability: 'view',
+ type: 'function',
+ inputs: [],
+ name: 'getLatestSyncedHeader',
+ outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
+ },
+ {
+ stateMutability: 'view',
+ type: 'function',
+ inputs: [{ name: 'number', internalType: 'uint256', type: 'uint256' }],
+ name: 'getSyncedHeader',
+ outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
+ },
+] as const
+
+/**
+ *
+ */
+export const taikoL2Address = {
+ 167002: '0x0000777700000000000000000000000000000001',
+} as const
+
+/**
+ *
+ */
+export const taikoL2Config = { address: taikoL2Address, abi: taikoL2ABI } as const
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Foo
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
- * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x70D5705a0A623be9fbB1903a045AC3C2E0C23F59)
* -
* - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x726819252e346278869d178084dA2cE10ac8A56D)
*/
@@ -27,18 +209,16 @@ export const fooABI = [
] as const
/**
- * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x70D5705a0A623be9fbB1903a045AC3C2E0C23F59)
* -
* - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x726819252e346278869d178084dA2cE10ac8A56D)
*/
export const fooAddress = {
- 5: '0x70D5705a0A623be9fbB1903a045AC3C2E0C23F59',
31337: '0x726819252e346278869d178084dA2cE10ac8A56D',
+ 167002: '0x70D5705a0A623be9fbB1903a045AC3C2E0C23F59',
11155111: '0x726819252e346278869d178084dA2cE10ac8A56D',
} as const
/**
- * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x70D5705a0A623be9fbB1903a045AC3C2E0C23F59)
* -
* - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x726819252e346278869d178084dA2cE10ac8A56D)
*/
diff --git a/packages/app/src/routes/+layout.svelte b/packages/app/src/routes/+layout.svelte
index 11c56f2..81c8dba 100644
--- a/packages/app/src/routes/+layout.svelte
+++ b/packages/app/src/routes/+layout.svelte
@@ -1,28 +1,38 @@
@@ -32,15 +42,10 @@