From 1a91aa08f78bda00b8aee32ef42c4aa4f03718f5 Mon Sep 17 00:00:00 2001 From: Kristaps Grinbergs Date: Mon, 14 Sep 2026 13:47:35 +0300 Subject: [PATCH 1/2] feat: add FXRP calldata descriptors for AssetManager, FAsset, MintingTagManager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduces calldata descriptors for AssetManager, FAsset, and MintingTagManager for both Flare and Songbird, with test cases for each. PollingFoundation (unrelated governance contract) moved to its own PR. Also adds the coverage tests the registry's new selector-coverage check requires for two already-attested descriptors this PR does not otherwise touch, DistributionToDelegators-Flare and ValidatorRewardManager-Flare, keeping their expectations at "Flare Labs" since that's what their attestation covers. Executor Fee / Reservation Fee fields expect FLR/SGB rather than the ETH the Rust test runner prints today for chains 14/19; llbartekll/clear-signing#15 adds the missing native-currency entries that make it so. Not included: RewardManager-{Flare,Songbird}. Both are attested and render blank in the Sourcify runner (nested field groups are unsupported), and the index disallows a second descriptor at the same address, so there's no way to land a fix here — needs a maintainer decision on how to replace an attested-but-unrenderable descriptor. Co-Authored-By: Claude Sonnet 5 Co-Authored-By: Claude Opus 5.5 (1M context) --- .../calldata-AssetManager-FXRP-Flare.json | 139 ++++++++++++++++++ .../calldata-AssetManager-FXRP-Songbird.json | 139 ++++++++++++++++++ .../flare/calldata-FAsset-FXRP-Flare.json | 55 +++++++ .../flare/calldata-FAsset-FXRP-Songbird.json | 55 +++++++ ...calldata-MintingTagManager-FXRP-Flare.json | 49 ++++++ ...ldata-MintingTagManager-FXRP-Songbird.json | 53 +++++++ ...alldata-AssetManager-FXRP-Flare.tests.json | 81 ++++++++++ ...data-AssetManager-FXRP-Songbird.tests.json | 81 ++++++++++ ...-DistributionToDelegators-Flare.tests.json | 37 +++++ .../calldata-FAsset-FXRP-Flare.tests.json | 28 ++++ .../calldata-FAsset-FXRP-Songbird.tests.json | 28 ++++ ...ta-MintingTagManager-FXRP-Flare.tests.json | 45 ++++++ ...MintingTagManager-FXRP-Songbird.tests.json | 45 ++++++ ...ta-ValidatorRewardManager-Flare.tests.json | 33 +++++ 14 files changed, 868 insertions(+) create mode 100644 registry/flare/calldata-AssetManager-FXRP-Flare.json create mode 100644 registry/flare/calldata-AssetManager-FXRP-Songbird.json create mode 100644 registry/flare/calldata-FAsset-FXRP-Flare.json create mode 100644 registry/flare/calldata-FAsset-FXRP-Songbird.json create mode 100644 registry/flare/calldata-MintingTagManager-FXRP-Flare.json create mode 100644 registry/flare/calldata-MintingTagManager-FXRP-Songbird.json create mode 100644 registry/flare/testsv2/calldata-AssetManager-FXRP-Flare.tests.json create mode 100644 registry/flare/testsv2/calldata-AssetManager-FXRP-Songbird.tests.json create mode 100644 registry/flare/testsv2/calldata-DistributionToDelegators-Flare.tests.json create mode 100644 registry/flare/testsv2/calldata-FAsset-FXRP-Flare.tests.json create mode 100644 registry/flare/testsv2/calldata-FAsset-FXRP-Songbird.tests.json create mode 100644 registry/flare/testsv2/calldata-MintingTagManager-FXRP-Flare.tests.json create mode 100644 registry/flare/testsv2/calldata-MintingTagManager-FXRP-Songbird.tests.json create mode 100644 registry/flare/testsv2/calldata-ValidatorRewardManager-Flare.tests.json diff --git a/registry/flare/calldata-AssetManager-FXRP-Flare.json b/registry/flare/calldata-AssetManager-FXRP-Flare.json new file mode 100644 index 000000000..6ed758c54 --- /dev/null +++ b/registry/flare/calldata-AssetManager-FXRP-Flare.json @@ -0,0 +1,139 @@ +{ + "$schema": "../../specs/erc7730-v2.schema.json", + "context": { + "$id": "AssetManager-FXRP-Flare", + "contract": { "deployments": [{ "chainId": 14, "address": "0x2a3Fe068cD92178554cabcf7c95ADf49B4B0B6A8" }] } + }, + "metadata": { + "owner": "Flare Foundation", + "info": { "url": "https://flare.network/" }, + "contractName": "AssetManager-FXRP-Flare", + "constants": { "fxrp": "0xAd552A648C74D49E10027AB8a618A3ad4901c5bE" } + }, + "display": { + "formats": { + "redeemAmount(uint256 _amountUBA, string _redeemerUnderlyingAddressString, address _executor)": { + "intent": "redeem FXRP", + "fields": [ + { + "label": "Amount", + "format": "tokenAmount", + "params": { "token": "$.metadata.constants.fxrp" }, + "path": "#._amountUBA", + "visible": "always" + }, + { "label": "XRP Address", "format": "raw", "path": "#._redeemerUnderlyingAddressString", "visible": "always" }, + { + "label": "Executor", + "format": "addressName", + "params": { "types": ["eoa", "wallet"] }, + "path": "#._executor", + "visible": "always" + }, + { "label": "Executor Fee", "format": "amount", "path": "@.value", "visible": "optional" } + ] + }, + "redeemWithTag(uint256 _amountUBA, string _redeemerUnderlyingAddressString, address _executor, uint256 _destinationTag)": { + "intent": "redeem FXRP", + "fields": [ + { + "label": "Amount", + "format": "tokenAmount", + "params": { "token": "$.metadata.constants.fxrp" }, + "path": "#._amountUBA", + "visible": "always" + }, + { "label": "XRP Address", "format": "raw", "path": "#._redeemerUnderlyingAddressString", "visible": "always" }, + { + "label": "Executor", + "format": "addressName", + "params": { "types": ["eoa", "wallet"] }, + "path": "#._executor", + "visible": "always" + }, + { "label": "Dest Tag", "format": "raw", "path": "#._destinationTag", "visible": "always" }, + { "label": "Executor Fee", "format": "amount", "path": "@.value", "visible": "optional" } + ] + }, + "redemptionPaymentDefault((bytes32[] merkleProof, (bytes32 attestationType, bytes32 sourceId, uint64 votingRound, uint64 lowestUsedTimestamp, (uint64 minimalBlockNumber, uint64 deadlineBlockNumber, uint64 deadlineTimestamp, bytes32 destinationAddressHash, uint256 amount, bytes32 standardPaymentReference, bool checkSourceAddresses, bytes32 sourceAddressesRoot) requestBody, (uint64 minimalBlockTimestamp, uint64 firstOverflowBlockNumber, uint64 firstOverflowBlockTimestamp) responseBody) data) _proof, uint256 _redemptionRequestId)": { + "intent": "claim redemption default", + "fields": [ + { "label": "Request ID", "format": "raw", "path": "#._redemptionRequestId", "visible": "always" }, + { "label": "Amount", "format": "tokenAmount", "params": { "token": "$.metadata.constants.fxrp" }, "path": "#._proof.data.requestBody.amount" }, + { "label": "Deadline", "format": "date", "params": { "encoding": "timestamp" }, "path": "#._proof.data.requestBody.deadlineTimestamp" }, + { "label": "Merkle Proof", "path": "#._proof.merkleProof.[]", "visible": "never" }, + { "label": "Attestation Type", "path": "#._proof.data.attestationType", "visible": "never" }, + { "label": "Source Id", "path": "#._proof.data.sourceId", "visible": "never" }, + { "label": "Voting Round", "path": "#._proof.data.votingRound", "visible": "never" }, + { "label": "Lowest Used Ts", "path": "#._proof.data.lowestUsedTimestamp", "visible": "never" }, + { "label": "Min Block", "path": "#._proof.data.requestBody.minimalBlockNumber", "visible": "never" }, + { "label": "Deadline Block", "path": "#._proof.data.requestBody.deadlineBlockNumber", "visible": "never" }, + { "label": "Dest Hash", "path": "#._proof.data.requestBody.destinationAddressHash", "visible": "never" }, + { "label": "Payment Ref", "path": "#._proof.data.requestBody.standardPaymentReference", "visible": "never" }, + { "label": "Check Source", "path": "#._proof.data.requestBody.checkSourceAddresses", "visible": "never" }, + { "label": "Source Root", "path": "#._proof.data.requestBody.sourceAddressesRoot", "visible": "never" }, + { "label": "Min Block Ts", "path": "#._proof.data.responseBody.minimalBlockTimestamp", "visible": "never" }, + { "label": "Overflow Block", "path": "#._proof.data.responseBody.firstOverflowBlockNumber", "visible": "never" }, + { "label": "Overflow Ts", "path": "#._proof.data.responseBody.firstOverflowBlockTimestamp", "visible": "never" } + ] + }, + "executeDirectMinting((bytes32[] merkleProof, (bytes32 attestationType, bytes32 sourceId, uint64 votingRound, uint64 lowestUsedTimestamp, (bytes32 transactionId, address proofOwner) requestBody, (uint64 blockNumber, uint64 blockTimestamp, string sourceAddress, bytes32 sourceAddressHash, bytes32 receivingAddressHash, bytes32 intendedReceivingAddressHash, int256 spentAmount, int256 intendedSpentAmount, int256 receivedAmount, int256 intendedReceivedAmount, bool hasMemoData, bytes firstMemoData, bool hasDestinationTag, uint256 destinationTag, uint8 status) responseBody) data) _payment)": { + "intent": "execute minting", + "fields": [ + { "label": "Amount", "format": "tokenAmount", "params": { "token": "$.metadata.constants.fxrp" }, "path": "#._payment.data.responseBody.receivedAmount" }, + { "label": "XRPL Source", "format": "raw", "path": "#._payment.data.responseBody.sourceAddress" }, + { "label": "Dest Tag", "format": "raw", "path": "#._payment.data.responseBody.destinationTag" }, + { "label": "Executor Fee", "format": "amount", "path": "@.value", "visible": "optional" }, + { "label": "Merkle Proof", "path": "#._payment.merkleProof.[]", "visible": "never" }, + { "label": "Attestation Type", "path": "#._payment.data.attestationType", "visible": "never" }, + { "label": "Source Id", "path": "#._payment.data.sourceId", "visible": "never" }, + { "label": "Voting Round", "path": "#._payment.data.votingRound", "visible": "never" }, + { "label": "Lowest Used Ts", "path": "#._payment.data.lowestUsedTimestamp", "visible": "never" }, + { "label": "Tx Id", "path": "#._payment.data.requestBody.transactionId", "visible": "never" }, + { "label": "Proof Owner", "path": "#._payment.data.requestBody.proofOwner", "visible": "never" }, + { "label": "Block Number", "path": "#._payment.data.responseBody.blockNumber", "visible": "never" }, + { "label": "Block Timestamp", "path": "#._payment.data.responseBody.blockTimestamp", "visible": "never" }, + { "label": "Source Hash", "path": "#._payment.data.responseBody.sourceAddressHash", "visible": "never" }, + { "label": "Receiving Hash", "path": "#._payment.data.responseBody.receivingAddressHash", "visible": "never" }, + { "label": "Intended Recv", "path": "#._payment.data.responseBody.intendedReceivingAddressHash", "visible": "never" }, + { "label": "Spent Amount", "path": "#._payment.data.responseBody.spentAmount", "visible": "never" }, + { "label": "Intended Spent", "path": "#._payment.data.responseBody.intendedSpentAmount", "visible": "never" }, + { "label": "Intended Recv Amt", "path": "#._payment.data.responseBody.intendedReceivedAmount", "visible": "never" }, + { "label": "Has Memo", "path": "#._payment.data.responseBody.hasMemoData", "visible": "never" }, + { "label": "Memo Data", "path": "#._payment.data.responseBody.firstMemoData", "visible": "never" }, + { "label": "Has Dest Tag", "path": "#._payment.data.responseBody.hasDestinationTag", "visible": "never" }, + { "label": "Status", "path": "#._payment.data.responseBody.status", "visible": "never" } + ] + }, + "executeDirectMintingWithData((bytes32[] merkleProof, (bytes32 attestationType, bytes32 sourceId, uint64 votingRound, uint64 lowestUsedTimestamp, (bytes32 transactionId, address proofOwner) requestBody, (uint64 blockNumber, uint64 blockTimestamp, string sourceAddress, bytes32 sourceAddressHash, bytes32 receivingAddressHash, bytes32 intendedReceivingAddressHash, int256 spentAmount, int256 intendedSpentAmount, int256 receivedAmount, int256 intendedReceivedAmount, bool hasMemoData, bytes firstMemoData, bool hasDestinationTag, uint256 destinationTag, uint8 status) responseBody) data) _payment, bytes _data)": { + "intent": "execute minting", + "fields": [ + { "label": "Amount", "format": "tokenAmount", "params": { "token": "$.metadata.constants.fxrp" }, "path": "#._payment.data.responseBody.receivedAmount" }, + { "label": "XRPL Source", "format": "raw", "path": "#._payment.data.responseBody.sourceAddress" }, + { "label": "Dest Tag", "format": "raw", "path": "#._payment.data.responseBody.destinationTag" }, + { "label": "Executor Fee", "format": "amount", "path": "@.value", "visible": "optional" }, + { "label": "User Op", "format": "raw", "path": "#._data" }, + { "label": "Merkle Proof", "path": "#._payment.merkleProof.[]", "visible": "never" }, + { "label": "Attestation Type", "path": "#._payment.data.attestationType", "visible": "never" }, + { "label": "Source Id", "path": "#._payment.data.sourceId", "visible": "never" }, + { "label": "Voting Round", "path": "#._payment.data.votingRound", "visible": "never" }, + { "label": "Lowest Used Ts", "path": "#._payment.data.lowestUsedTimestamp", "visible": "never" }, + { "label": "Tx Id", "path": "#._payment.data.requestBody.transactionId", "visible": "never" }, + { "label": "Proof Owner", "path": "#._payment.data.requestBody.proofOwner", "visible": "never" }, + { "label": "Block Number", "path": "#._payment.data.responseBody.blockNumber", "visible": "never" }, + { "label": "Block Timestamp", "path": "#._payment.data.responseBody.blockTimestamp", "visible": "never" }, + { "label": "Source Hash", "path": "#._payment.data.responseBody.sourceAddressHash", "visible": "never" }, + { "label": "Receiving Hash", "path": "#._payment.data.responseBody.receivingAddressHash", "visible": "never" }, + { "label": "Intended Recv", "path": "#._payment.data.responseBody.intendedReceivingAddressHash", "visible": "never" }, + { "label": "Spent Amount", "path": "#._payment.data.responseBody.spentAmount", "visible": "never" }, + { "label": "Intended Spent", "path": "#._payment.data.responseBody.intendedSpentAmount", "visible": "never" }, + { "label": "Intended Recv Amt", "path": "#._payment.data.responseBody.intendedReceivedAmount", "visible": "never" }, + { "label": "Has Memo", "path": "#._payment.data.responseBody.hasMemoData", "visible": "never" }, + { "label": "Memo Data", "path": "#._payment.data.responseBody.firstMemoData", "visible": "never" }, + { "label": "Has Dest Tag", "path": "#._payment.data.responseBody.hasDestinationTag", "visible": "never" }, + { "label": "Status", "path": "#._payment.data.responseBody.status", "visible": "never" } + ] + } + } + } +} diff --git a/registry/flare/calldata-AssetManager-FXRP-Songbird.json b/registry/flare/calldata-AssetManager-FXRP-Songbird.json new file mode 100644 index 000000000..41b626879 --- /dev/null +++ b/registry/flare/calldata-AssetManager-FXRP-Songbird.json @@ -0,0 +1,139 @@ +{ + "$schema": "../../specs/erc7730-v2.schema.json", + "context": { + "$id": "AssetManager-FXRP-Songbird", + "contract": { "deployments": [{ "chainId": 19, "address": "0x299d678f67e7ADD4efdf295Ebe0E92FCb4f75C4c" }] } + }, + "metadata": { + "owner": "Flare Foundation", + "info": { "url": "https://flare.network/" }, + "contractName": "AssetManager-FXRP-Songbird", + "constants": { "fxrp": "0xF9a84f4ec903F4EaB117A9c1098BeC078BA7027d" } + }, + "display": { + "formats": { + "redeemAmount(uint256 _amountUBA, string _redeemerUnderlyingAddressString, address _executor)": { + "intent": "redeem FXRP", + "fields": [ + { + "label": "Amount", + "format": "tokenAmount", + "params": { "token": "$.metadata.constants.fxrp" }, + "path": "#._amountUBA", + "visible": "always" + }, + { "label": "XRP Address", "format": "raw", "path": "#._redeemerUnderlyingAddressString", "visible": "always" }, + { + "label": "Executor", + "format": "addressName", + "params": { "types": ["eoa", "wallet"] }, + "path": "#._executor", + "visible": "always" + }, + { "label": "Executor Fee", "format": "amount", "path": "@.value", "visible": "optional" } + ] + }, + "redeemWithTag(uint256 _amountUBA, string _redeemerUnderlyingAddressString, address _executor, uint256 _destinationTag)": { + "intent": "redeem FXRP", + "fields": [ + { + "label": "Amount", + "format": "tokenAmount", + "params": { "token": "$.metadata.constants.fxrp" }, + "path": "#._amountUBA", + "visible": "always" + }, + { "label": "XRP Address", "format": "raw", "path": "#._redeemerUnderlyingAddressString", "visible": "always" }, + { + "label": "Executor", + "format": "addressName", + "params": { "types": ["eoa", "wallet"] }, + "path": "#._executor", + "visible": "always" + }, + { "label": "Dest Tag", "format": "raw", "path": "#._destinationTag", "visible": "always" }, + { "label": "Executor Fee", "format": "amount", "path": "@.value", "visible": "optional" } + ] + }, + "redemptionPaymentDefault((bytes32[] merkleProof, (bytes32 attestationType, bytes32 sourceId, uint64 votingRound, uint64 lowestUsedTimestamp, (uint64 minimalBlockNumber, uint64 deadlineBlockNumber, uint64 deadlineTimestamp, bytes32 destinationAddressHash, uint256 amount, bytes32 standardPaymentReference, bool checkSourceAddresses, bytes32 sourceAddressesRoot) requestBody, (uint64 minimalBlockTimestamp, uint64 firstOverflowBlockNumber, uint64 firstOverflowBlockTimestamp) responseBody) data) _proof, uint256 _redemptionRequestId)": { + "intent": "claim redemption default", + "fields": [ + { "label": "Request ID", "format": "raw", "path": "#._redemptionRequestId", "visible": "always" }, + { "label": "Amount", "format": "tokenAmount", "params": { "token": "$.metadata.constants.fxrp" }, "path": "#._proof.data.requestBody.amount" }, + { "label": "Deadline", "format": "date", "params": { "encoding": "timestamp" }, "path": "#._proof.data.requestBody.deadlineTimestamp" }, + { "label": "Merkle Proof", "path": "#._proof.merkleProof.[]", "visible": "never" }, + { "label": "Attestation Type", "path": "#._proof.data.attestationType", "visible": "never" }, + { "label": "Source Id", "path": "#._proof.data.sourceId", "visible": "never" }, + { "label": "Voting Round", "path": "#._proof.data.votingRound", "visible": "never" }, + { "label": "Lowest Used Ts", "path": "#._proof.data.lowestUsedTimestamp", "visible": "never" }, + { "label": "Min Block", "path": "#._proof.data.requestBody.minimalBlockNumber", "visible": "never" }, + { "label": "Deadline Block", "path": "#._proof.data.requestBody.deadlineBlockNumber", "visible": "never" }, + { "label": "Dest Hash", "path": "#._proof.data.requestBody.destinationAddressHash", "visible": "never" }, + { "label": "Payment Ref", "path": "#._proof.data.requestBody.standardPaymentReference", "visible": "never" }, + { "label": "Check Source", "path": "#._proof.data.requestBody.checkSourceAddresses", "visible": "never" }, + { "label": "Source Root", "path": "#._proof.data.requestBody.sourceAddressesRoot", "visible": "never" }, + { "label": "Min Block Ts", "path": "#._proof.data.responseBody.minimalBlockTimestamp", "visible": "never" }, + { "label": "Overflow Block", "path": "#._proof.data.responseBody.firstOverflowBlockNumber", "visible": "never" }, + { "label": "Overflow Ts", "path": "#._proof.data.responseBody.firstOverflowBlockTimestamp", "visible": "never" } + ] + }, + "executeDirectMinting((bytes32[] merkleProof, (bytes32 attestationType, bytes32 sourceId, uint64 votingRound, uint64 lowestUsedTimestamp, (bytes32 transactionId, address proofOwner) requestBody, (uint64 blockNumber, uint64 blockTimestamp, string sourceAddress, bytes32 sourceAddressHash, bytes32 receivingAddressHash, bytes32 intendedReceivingAddressHash, int256 spentAmount, int256 intendedSpentAmount, int256 receivedAmount, int256 intendedReceivedAmount, bool hasMemoData, bytes firstMemoData, bool hasDestinationTag, uint256 destinationTag, uint8 status) responseBody) data) _payment)": { + "intent": "execute minting", + "fields": [ + { "label": "Amount", "format": "tokenAmount", "params": { "token": "$.metadata.constants.fxrp" }, "path": "#._payment.data.responseBody.receivedAmount" }, + { "label": "XRPL Source", "format": "raw", "path": "#._payment.data.responseBody.sourceAddress" }, + { "label": "Dest Tag", "format": "raw", "path": "#._payment.data.responseBody.destinationTag" }, + { "label": "Executor Fee", "format": "amount", "path": "@.value", "visible": "optional" }, + { "label": "Merkle Proof", "path": "#._payment.merkleProof.[]", "visible": "never" }, + { "label": "Attestation Type", "path": "#._payment.data.attestationType", "visible": "never" }, + { "label": "Source Id", "path": "#._payment.data.sourceId", "visible": "never" }, + { "label": "Voting Round", "path": "#._payment.data.votingRound", "visible": "never" }, + { "label": "Lowest Used Ts", "path": "#._payment.data.lowestUsedTimestamp", "visible": "never" }, + { "label": "Tx Id", "path": "#._payment.data.requestBody.transactionId", "visible": "never" }, + { "label": "Proof Owner", "path": "#._payment.data.requestBody.proofOwner", "visible": "never" }, + { "label": "Block Number", "path": "#._payment.data.responseBody.blockNumber", "visible": "never" }, + { "label": "Block Timestamp", "path": "#._payment.data.responseBody.blockTimestamp", "visible": "never" }, + { "label": "Source Hash", "path": "#._payment.data.responseBody.sourceAddressHash", "visible": "never" }, + { "label": "Receiving Hash", "path": "#._payment.data.responseBody.receivingAddressHash", "visible": "never" }, + { "label": "Intended Recv", "path": "#._payment.data.responseBody.intendedReceivingAddressHash", "visible": "never" }, + { "label": "Spent Amount", "path": "#._payment.data.responseBody.spentAmount", "visible": "never" }, + { "label": "Intended Spent", "path": "#._payment.data.responseBody.intendedSpentAmount", "visible": "never" }, + { "label": "Intended Recv Amt", "path": "#._payment.data.responseBody.intendedReceivedAmount", "visible": "never" }, + { "label": "Has Memo", "path": "#._payment.data.responseBody.hasMemoData", "visible": "never" }, + { "label": "Memo Data", "path": "#._payment.data.responseBody.firstMemoData", "visible": "never" }, + { "label": "Has Dest Tag", "path": "#._payment.data.responseBody.hasDestinationTag", "visible": "never" }, + { "label": "Status", "path": "#._payment.data.responseBody.status", "visible": "never" } + ] + }, + "executeDirectMintingWithData((bytes32[] merkleProof, (bytes32 attestationType, bytes32 sourceId, uint64 votingRound, uint64 lowestUsedTimestamp, (bytes32 transactionId, address proofOwner) requestBody, (uint64 blockNumber, uint64 blockTimestamp, string sourceAddress, bytes32 sourceAddressHash, bytes32 receivingAddressHash, bytes32 intendedReceivingAddressHash, int256 spentAmount, int256 intendedSpentAmount, int256 receivedAmount, int256 intendedReceivedAmount, bool hasMemoData, bytes firstMemoData, bool hasDestinationTag, uint256 destinationTag, uint8 status) responseBody) data) _payment, bytes _data)": { + "intent": "execute minting", + "fields": [ + { "label": "Amount", "format": "tokenAmount", "params": { "token": "$.metadata.constants.fxrp" }, "path": "#._payment.data.responseBody.receivedAmount" }, + { "label": "XRPL Source", "format": "raw", "path": "#._payment.data.responseBody.sourceAddress" }, + { "label": "Dest Tag", "format": "raw", "path": "#._payment.data.responseBody.destinationTag" }, + { "label": "Executor Fee", "format": "amount", "path": "@.value", "visible": "optional" }, + { "label": "User Op", "format": "raw", "path": "#._data" }, + { "label": "Merkle Proof", "path": "#._payment.merkleProof.[]", "visible": "never" }, + { "label": "Attestation Type", "path": "#._payment.data.attestationType", "visible": "never" }, + { "label": "Source Id", "path": "#._payment.data.sourceId", "visible": "never" }, + { "label": "Voting Round", "path": "#._payment.data.votingRound", "visible": "never" }, + { "label": "Lowest Used Ts", "path": "#._payment.data.lowestUsedTimestamp", "visible": "never" }, + { "label": "Tx Id", "path": "#._payment.data.requestBody.transactionId", "visible": "never" }, + { "label": "Proof Owner", "path": "#._payment.data.requestBody.proofOwner", "visible": "never" }, + { "label": "Block Number", "path": "#._payment.data.responseBody.blockNumber", "visible": "never" }, + { "label": "Block Timestamp", "path": "#._payment.data.responseBody.blockTimestamp", "visible": "never" }, + { "label": "Source Hash", "path": "#._payment.data.responseBody.sourceAddressHash", "visible": "never" }, + { "label": "Receiving Hash", "path": "#._payment.data.responseBody.receivingAddressHash", "visible": "never" }, + { "label": "Intended Recv", "path": "#._payment.data.responseBody.intendedReceivingAddressHash", "visible": "never" }, + { "label": "Spent Amount", "path": "#._payment.data.responseBody.spentAmount", "visible": "never" }, + { "label": "Intended Spent", "path": "#._payment.data.responseBody.intendedSpentAmount", "visible": "never" }, + { "label": "Intended Recv Amt", "path": "#._payment.data.responseBody.intendedReceivedAmount", "visible": "never" }, + { "label": "Has Memo", "path": "#._payment.data.responseBody.hasMemoData", "visible": "never" }, + { "label": "Memo Data", "path": "#._payment.data.responseBody.firstMemoData", "visible": "never" }, + { "label": "Has Dest Tag", "path": "#._payment.data.responseBody.hasDestinationTag", "visible": "never" }, + { "label": "Status", "path": "#._payment.data.responseBody.status", "visible": "never" } + ] + } + } + } +} diff --git a/registry/flare/calldata-FAsset-FXRP-Flare.json b/registry/flare/calldata-FAsset-FXRP-Flare.json new file mode 100644 index 000000000..09851cc82 --- /dev/null +++ b/registry/flare/calldata-FAsset-FXRP-Flare.json @@ -0,0 +1,55 @@ +{ + "$schema": "../../specs/erc7730-v2.schema.json", + "context": { + "$id": "FAsset-FXRP-Flare", + "contract": { "deployments": [{ "chainId": 14, "address": "0xAd552A648C74D49E10027AB8a618A3ad4901c5bE" }] } + }, + "metadata": { + "owner": "Flare Foundation", + "info": { "url": "https://flare.network/" }, + "contractName": "FAsset-FXRP-Flare", + "constants": { "fxrp": "0xAd552A648C74D49E10027AB8a618A3ad4901c5bE" } + }, + "display": { + "formats": { + "transfer(address to, uint256 amount)": { + "intent": "Send FXRP", + "fields": [ + { + "label": "Amount", + "format": "tokenAmount", + "params": { "token": "$.metadata.constants.fxrp" }, + "path": "#.amount", + "visible": "always" + }, + { + "label": "To", + "format": "addressName", + "params": { "types": ["eoa"], "sources": ["local", "ens"] }, + "path": "#.to", + "visible": "always" + } + ] + }, + "approve(address spender, uint256 amount)": { + "intent": "Approve FXRP", + "fields": [ + { + "label": "Spender", + "format": "addressName", + "params": { "types": ["eoa", "contract"] }, + "path": "#.spender", + "visible": "always" + }, + { + "label": "Amount", + "format": "tokenAmount", + "params": { "token": "$.metadata.constants.fxrp", "threshold": "0x8000000000000000000000000000000000000000000000000000000000000000" }, + "path": "#.amount", + "visible": "always" + } + ] + } + } + } +} diff --git a/registry/flare/calldata-FAsset-FXRP-Songbird.json b/registry/flare/calldata-FAsset-FXRP-Songbird.json new file mode 100644 index 000000000..4656a2ede --- /dev/null +++ b/registry/flare/calldata-FAsset-FXRP-Songbird.json @@ -0,0 +1,55 @@ +{ + "$schema": "../../specs/erc7730-v2.schema.json", + "context": { + "$id": "FAsset-FXRP-Songbird", + "contract": { "deployments": [{ "chainId": 19, "address": "0xF9a84f4ec903F4EaB117A9c1098BeC078BA7027d" }] } + }, + "metadata": { + "owner": "Flare Foundation", + "info": { "url": "https://flare.network/" }, + "contractName": "FAsset-FXRP-Songbird", + "constants": { "fxrp": "0xF9a84f4ec903F4EaB117A9c1098BeC078BA7027d" } + }, + "display": { + "formats": { + "transfer(address to, uint256 amount)": { + "intent": "Send FXRP", + "fields": [ + { + "label": "Amount", + "format": "tokenAmount", + "params": { "token": "$.metadata.constants.fxrp" }, + "path": "#.amount", + "visible": "always" + }, + { + "label": "To", + "format": "addressName", + "params": { "types": ["eoa"], "sources": ["local", "ens"] }, + "path": "#.to", + "visible": "always" + } + ] + }, + "approve(address spender, uint256 amount)": { + "intent": "Approve FXRP", + "fields": [ + { + "label": "Spender", + "format": "addressName", + "params": { "types": ["eoa", "contract"] }, + "path": "#.spender", + "visible": "always" + }, + { + "label": "Amount", + "format": "tokenAmount", + "params": { "token": "$.metadata.constants.fxrp", "threshold": "0x8000000000000000000000000000000000000000000000000000000000000000" }, + "path": "#.amount", + "visible": "always" + } + ] + } + } + } +} diff --git a/registry/flare/calldata-MintingTagManager-FXRP-Flare.json b/registry/flare/calldata-MintingTagManager-FXRP-Flare.json new file mode 100644 index 000000000..38622c29b --- /dev/null +++ b/registry/flare/calldata-MintingTagManager-FXRP-Flare.json @@ -0,0 +1,49 @@ +{ + "$schema": "../../specs/erc7730-v2.schema.json", + "context": { + "$id": "MintingTagManager-FXRP-Flare", + "contract": { "deployments": [{ "chainId": 14, "address": "0xb426B5aE61c23Ff1b901A8ad1F1A3921D1E9D2f1" }] } + }, + "metadata": { "owner": "Flare Foundation", "info": { "url": "https://flare.network/" }, "contractName": "MintingTagManager-FXRP-Flare" }, + "display": { + "formats": { + "reserve()": { + "intent": "reserve minting tag", + "fields": [{ "label": "Reservation Fee", "format": "amount", "path": "@.value", "visible": "always" }] + }, + "setMintingRecipient(uint256 _mintingTag, address _recipient)": { + "intent": "set mint recipient", + "fields": [ + { "label": "Tag Id", "format": "raw", "path": "#._mintingTag", "visible": "always" }, + { + "label": "Recipient", + "format": "addressName", + "params": { "types": ["eoa", "wallet"] }, + "path": "#._recipient", + "visible": "always" + } + ] + }, + "setAllowedExecutor(uint256 _mintingTag, address _executor)": { + "intent": "set mint executor", + "fields": [ + { "label": "Tag Id", "format": "raw", "path": "#._mintingTag", "visible": "always" }, + { + "label": "Executor", + "format": "addressName", + "params": { "types": ["eoa", "wallet"] }, + "path": "#._executor", + "visible": "always" + } + ] + }, + "transfer(address _to, uint256 _mintingTag)": { + "intent": "transfer minting tag", + "fields": [ + { "label": "To", "format": "addressName", "params": { "types": ["eoa", "wallet"] }, "path": "#._to", "visible": "always" }, + { "label": "Tag Id", "format": "raw", "path": "#._mintingTag", "visible": "always" } + ] + } + } + } +} diff --git a/registry/flare/calldata-MintingTagManager-FXRP-Songbird.json b/registry/flare/calldata-MintingTagManager-FXRP-Songbird.json new file mode 100644 index 000000000..c268ad0b9 --- /dev/null +++ b/registry/flare/calldata-MintingTagManager-FXRP-Songbird.json @@ -0,0 +1,53 @@ +{ + "$schema": "../../specs/erc7730-v2.schema.json", + "context": { + "$id": "MintingTagManager-FXRP-Songbird", + "contract": { "deployments": [{ "chainId": 19, "address": "0x09E139A95edD67509AEA040BF4b722Ec103D21f4" }] } + }, + "metadata": { + "owner": "Flare Foundation", + "info": { "url": "https://flare.network/" }, + "contractName": "MintingTagManager-FXRP-Songbird" + }, + "display": { + "formats": { + "reserve()": { + "intent": "reserve minting tag", + "fields": [{ "label": "Reservation Fee", "format": "amount", "path": "@.value", "visible": "always" }] + }, + "setMintingRecipient(uint256 _mintingTag, address _recipient)": { + "intent": "set mint recipient", + "fields": [ + { "label": "Tag Id", "format": "raw", "path": "#._mintingTag", "visible": "always" }, + { + "label": "Recipient", + "format": "addressName", + "params": { "types": ["eoa", "wallet"] }, + "path": "#._recipient", + "visible": "always" + } + ] + }, + "setAllowedExecutor(uint256 _mintingTag, address _executor)": { + "intent": "set mint executor", + "fields": [ + { "label": "Tag Id", "format": "raw", "path": "#._mintingTag", "visible": "always" }, + { + "label": "Executor", + "format": "addressName", + "params": { "types": ["eoa", "wallet"] }, + "path": "#._executor", + "visible": "always" + } + ] + }, + "transfer(address _to, uint256 _mintingTag)": { + "intent": "transfer minting tag", + "fields": [ + { "label": "To", "format": "addressName", "params": { "types": ["eoa", "wallet"] }, "path": "#._to", "visible": "always" }, + { "label": "Tag Id", "format": "raw", "path": "#._mintingTag", "visible": "always" } + ] + } + } + } +} diff --git a/registry/flare/testsv2/calldata-AssetManager-FXRP-Flare.tests.json b/registry/flare/testsv2/calldata-AssetManager-FXRP-Flare.tests.json new file mode 100644 index 000000000..d13727acb --- /dev/null +++ b/registry/flare/testsv2/calldata-AssetManager-FXRP-Flare.tests.json @@ -0,0 +1,81 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-AssetManager-FXRP-Flare.json", + "dataProvider": { + "tokens": { "0xAd552A648C74D49E10027AB8a618A3ad4901c5bE": { "symbol": "FXRP", "decimals": 6, "name": "FXRP" } }, + "addressNames": { "0x5555555555555555555555555555555555555555": "Executor" } + }, + "tests": [ + { + "description": "Redeem 10 FXRP by amount - chain 14", + "rawTx": "0x02f8ed0e01840f2f16ee8411807b358307a120942a3fe068cd92178554cabcf7c95adf49b4b0b6a880b8c401e261f6000000000000000000000000000000000000000000000000000000000098968000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002272505431536a7132594772424d5474745834475a486a4b75396479667a6270415965000000000000000000000000000000000000000000000000000000000000c0", + "expected": { + "intent": "redeem FXRP", + "owner": "Flare Foundation", + "fields": [ + { "label": "Amount", "value": "10 FXRP" }, + { "label": "XRP Address", "value": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe" }, + { "label": "Executor", "value": "0x0000000000000000000000000000000000000000" }, + { "label": "Executor Fee", "value": "0 FLR" } + ] + } + }, + { + "description": "Redeem 10 FXRP with destination tag - chain 14", + "rawTx": "0x02f901170e02850f224d4a008543fc8e68008307a120942a3fe068cd92178554cabcf7c95adf49b4b0b6a8880de0b6b3a7640000b8e4c95cecbf000000000000000000000000000000000000000000000000000000000098968000000000000000000000000000000000000000000000000000000000000000800000000000000000000000005555555555555555555555555555555555555555000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002272505431536a7132594772424d5474745834475a486a4b75396479667a6270415965000000000000000000000000000000000000000000000000000000000000c0", + "expected": { + "intent": "redeem FXRP", + "owner": "Flare Foundation", + "fields": [ + { "label": "Amount", "value": "10 FXRP" }, + { "label": "XRP Address", "value": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe" }, + { "label": "Executor", "value": "Executor" }, + { "label": "Dest Tag", "value": "42" }, + { "label": "Executor Fee", "value": "1 FLR" } + ] + } + }, + { + "description": "Redemption payment default - chain 14", + "rawTx": "0x02f902d00e03850f224d4a008543fc8e68008307a120942a3fe068cd92178554cabcf7c95adf49b4b0b6a880b902a437fbae9100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000020011111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222000000000000000000000000000000000000000000000000000000000001e24000000000000000000000000000000000000000000000000000000000684ee18000000000000000000000000000000000000000000000000000000000053ec60000000000000000000000000000000000000000000000000000000000053ec66400000000000000000000000000000000000000000000000000000000684eef903333333333333333333333333333333333333333333333333333333333333333000000000000000000000000000000000000000000000000000000000098968044444444444444444444444444444444444444444444444444444444444444440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000684ee18000000000000000000000000000000000000000000000000000000000053ec66500000000000000000000000000000000000000000000000000000000684eef910000000000000000000000000000000000000000000000000000000000000002aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbc0", + "expected": { + "intent": "claim redemption default", + "owner": "Flare Foundation", + "fields": [ + { "label": "Request ID", "value": "777" }, + { "label": "Amount", "value": "10 FXRP" }, + { "label": "Deadline", "value": "2025-06-15 16:06:40Z" } + ] + } + }, + { + "description": "Execute direct minting - chain 14", + "rawTx": "0x02f904180e04850f224d4a008543fc8e68008307a120942a3fe068cd92178554cabcf7c95adf49b4b0b6a88806f05b59d3b20000b903e478d0299e0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc55555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666000000000000000000000000000000000000000000000000000000000001e24100000000000000000000000000000000000000000000000000000000684ee1807777777777777777777777777777777777777777777777777777777777777777000000000000000000000000555555555555555555555555555555555555555500000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000053ec6c800000000000000000000000000000000000000000000000000000000684efda000000000000000000000000000000000000000000000000000000000000001e08888888888888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999990000000000000000000000000000000000000000000000000000000000989680000000000000000000000000000000000000000000000000000000000098968000000000000000000000000000000000000000000000000000000000009896800000000000000000000000000000000000000000000000000000000000989680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002272505431536a7132594772424d5474745834475a486a4b75396479667a62704159650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "expected": { + "intent": "execute minting", + "owner": "Flare Foundation", + "fields": [ + { "label": "Amount", "value": "10 FXRP" }, + { "label": "XRPL Source", "value": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe" }, + { "label": "Dest Tag", "value": "42" }, + { "label": "Executor Fee", "value": "0.5 FLR" } + ] + } + }, + { + "description": "Execute direct minting with data - chain 14", + "rawTx": "0x02f904780e05850f224d4a008543fc8e68008307a120942a3fe068cd92178554cabcf7c95adf49b4b0b6a88806f05b59d3b20000b90444a7556da600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc55555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666000000000000000000000000000000000000000000000000000000000001e24100000000000000000000000000000000000000000000000000000000684ee1807777777777777777777777777777777777777777777777777777777777777777000000000000000000000000555555555555555555555555555555555555555500000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000053ec6c800000000000000000000000000000000000000000000000000000000684efda000000000000000000000000000000000000000000000000000000000000001e08888888888888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999990000000000000000000000000000000000000000000000000000000000989680000000000000000000000000000000000000000000000000000000000098968000000000000000000000000000000000000000000000000000000000009896800000000000000000000000000000000000000000000000000000000000989680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002272505431536a7132594772424d5474745834475a486a4b75396479667a627041596500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004deadbeef00000000000000000000000000000000000000000000000000000000c0", + "expected": { + "intent": "execute minting", + "owner": "Flare Foundation", + "fields": [ + { "label": "Amount", "value": "10 FXRP" }, + { "label": "XRPL Source", "value": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe" }, + { "label": "Dest Tag", "value": "42" }, + { "label": "Executor Fee", "value": "0.5 FLR" }, + { "label": "User Op", "value": "0xdeadbeef" } + ] + } + } + ] +} diff --git a/registry/flare/testsv2/calldata-AssetManager-FXRP-Songbird.tests.json b/registry/flare/testsv2/calldata-AssetManager-FXRP-Songbird.tests.json new file mode 100644 index 000000000..5c92baf69 --- /dev/null +++ b/registry/flare/testsv2/calldata-AssetManager-FXRP-Songbird.tests.json @@ -0,0 +1,81 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-AssetManager-FXRP-Songbird.json", + "dataProvider": { + "tokens": { "0xF9a84f4ec903F4EaB117A9c1098BeC078BA7027d": { "symbol": "FXRP", "decimals": 6, "name": "FXRP" } }, + "addressNames": { "0x5555555555555555555555555555555555555555": "Executor" } + }, + "tests": [ + { + "description": "Redeem 10 FXRP by amount - chain 19", + "rawTx": "0x02f8ed1301840f2f16ee8411807b358307a12094299d678f67e7add4efdf295ebe0e92fcb4f75c4c80b8c401e261f6000000000000000000000000000000000000000000000000000000000098968000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002272505431536a7132594772424d5474745834475a486a4b75396479667a6270415965000000000000000000000000000000000000000000000000000000000000c0", + "expected": { + "intent": "redeem FXRP", + "owner": "Flare Foundation", + "fields": [ + { "label": "Amount", "value": "10 FXRP" }, + { "label": "XRP Address", "value": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe" }, + { "label": "Executor", "value": "0x0000000000000000000000000000000000000000" }, + { "label": "Executor Fee", "value": "0 SGB" } + ] + } + }, + { + "description": "Redeem 10 FXRP with destination tag - chain 19", + "rawTx": "0x02f901171302850f224d4a008543fc8e68008307a12094299d678f67e7add4efdf295ebe0e92fcb4f75c4c880de0b6b3a7640000b8e4c95cecbf000000000000000000000000000000000000000000000000000000000098968000000000000000000000000000000000000000000000000000000000000000800000000000000000000000005555555555555555555555555555555555555555000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002272505431536a7132594772424d5474745834475a486a4b75396479667a6270415965000000000000000000000000000000000000000000000000000000000000c0", + "expected": { + "intent": "redeem FXRP", + "owner": "Flare Foundation", + "fields": [ + { "label": "Amount", "value": "10 FXRP" }, + { "label": "XRP Address", "value": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe" }, + { "label": "Executor", "value": "Executor" }, + { "label": "Dest Tag", "value": "42" }, + { "label": "Executor Fee", "value": "1 SGB" } + ] + } + }, + { + "description": "Redemption payment default - chain 19", + "rawTx": "0x02f902d01303850f224d4a008543fc8e68008307a12094299d678f67e7add4efdf295ebe0e92fcb4f75c4c80b902a437fbae9100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000020011111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222000000000000000000000000000000000000000000000000000000000001e24000000000000000000000000000000000000000000000000000000000684ee18000000000000000000000000000000000000000000000000000000000053ec60000000000000000000000000000000000000000000000000000000000053ec66400000000000000000000000000000000000000000000000000000000684eef903333333333333333333333333333333333333333333333333333333333333333000000000000000000000000000000000000000000000000000000000098968044444444444444444444444444444444444444444444444444444444444444440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000684ee18000000000000000000000000000000000000000000000000000000000053ec66500000000000000000000000000000000000000000000000000000000684eef910000000000000000000000000000000000000000000000000000000000000002aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbc0", + "expected": { + "intent": "claim redemption default", + "owner": "Flare Foundation", + "fields": [ + { "label": "Request ID", "value": "777" }, + { "label": "Amount", "value": "10 FXRP" }, + { "label": "Deadline", "value": "2025-06-15 16:06:40Z" } + ] + } + }, + { + "description": "Execute direct minting - chain 19", + "rawTx": "0x02f904181304850f224d4a008543fc8e68008307a12094299d678f67e7add4efdf295ebe0e92fcb4f75c4c8806f05b59d3b20000b903e478d0299e0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc55555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666000000000000000000000000000000000000000000000000000000000001e24100000000000000000000000000000000000000000000000000000000684ee1807777777777777777777777777777777777777777777777777777777777777777000000000000000000000000555555555555555555555555555555555555555500000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000053ec6c800000000000000000000000000000000000000000000000000000000684efda000000000000000000000000000000000000000000000000000000000000001e08888888888888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999990000000000000000000000000000000000000000000000000000000000989680000000000000000000000000000000000000000000000000000000000098968000000000000000000000000000000000000000000000000000000000009896800000000000000000000000000000000000000000000000000000000000989680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002272505431536a7132594772424d5474745834475a486a4b75396479667a62704159650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "expected": { + "intent": "execute minting", + "owner": "Flare Foundation", + "fields": [ + { "label": "Amount", "value": "10 FXRP" }, + { "label": "XRPL Source", "value": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe" }, + { "label": "Dest Tag", "value": "42" }, + { "label": "Executor Fee", "value": "0.5 SGB" } + ] + } + }, + { + "description": "Execute direct minting with data - chain 19", + "rawTx": "0x02f904781305850f224d4a008543fc8e68008307a12094299d678f67e7add4efdf295ebe0e92fcb4f75c4c8806f05b59d3b20000b90444a7556da600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc55555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666000000000000000000000000000000000000000000000000000000000001e24100000000000000000000000000000000000000000000000000000000684ee1807777777777777777777777777777777777777777777777777777777777777777000000000000000000000000555555555555555555555555555555555555555500000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000053ec6c800000000000000000000000000000000000000000000000000000000684efda000000000000000000000000000000000000000000000000000000000000001e08888888888888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999990000000000000000000000000000000000000000000000000000000000989680000000000000000000000000000000000000000000000000000000000098968000000000000000000000000000000000000000000000000000000000009896800000000000000000000000000000000000000000000000000000000000989680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002272505431536a7132594772424d5474745834475a486a4b75396479667a627041596500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004deadbeef00000000000000000000000000000000000000000000000000000000c0", + "expected": { + "intent": "execute minting", + "owner": "Flare Foundation", + "fields": [ + { "label": "Amount", "value": "10 FXRP" }, + { "label": "XRPL Source", "value": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe" }, + { "label": "Dest Tag", "value": "42" }, + { "label": "Executor Fee", "value": "0.5 SGB" }, + { "label": "User Op", "value": "0xdeadbeef" } + ] + } + } + ] +} diff --git a/registry/flare/testsv2/calldata-DistributionToDelegators-Flare.tests.json b/registry/flare/testsv2/calldata-DistributionToDelegators-Flare.tests.json new file mode 100644 index 000000000..ea98c1037 --- /dev/null +++ b/registry/flare/testsv2/calldata-DistributionToDelegators-Flare.tests.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-DistributionToDelegators-Flare.json", + "dataProvider": { + "addressNames": { "0x1111111111111111111111111111111111111111": "Reward Owner", "0x2222222222222222222222222222222222222222": "Recipient" } + }, + "tests": [ + { + "description": "Claim month 12 wrapped - chain 14", + "rawTx": "0x02f8ad0e01840f2f16ee8411807b358307a120949c7a4c83842b29bb4a082b0e689cb9474bd938d080b884b2c1219200000000000000000000000011111111111111111111111111111111111111110000000000000000000000002222222222222222222222222222222222222222000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001c0", + "expected": { + "intent": "claim rewards", + "owner": "Flare Labs", + "fields": [ + { "label": "Reward Owner", "value": "Reward Owner" }, + { "label": "Recipient", "value": "Recipient" }, + { "label": "Month", "value": "12" }, + { "label": "Wrap", "value": "true" } + ] + } + }, + { + "description": "Batch claim month 12 - chain 14", + "rawTx": "0x02f8ad0e02840f2f16ee8411807b358307a120949c7a4c83842b29bb4a082b0e689cb9474bd938d080b8848dc305fa0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000001111111111111111111111111111111111111111c0", + "expected": { + "intent": "batch claims rewards", + "owner": "Flare Labs", + "fields": [{ "label": "Reward Owner", "value": "Reward Owner" }, { "label": "Month", "value": "12" }] + } + }, + { + "description": "Opt out of airdrop - chain 14", + "rawTx": "0x02f88d0e03840f2f16ee8411807b358307a120949c7a4c83842b29bb4a082b0e689cb9474bd938d080b864220c1c16000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001111111111111111111111111111111111111111c0", + "expected": { "intent": "opt out of airdrop", "owner": "Flare Labs", "fields": [{ "label": "Opt Out Address", "value": "Reward Owner" }] } + } + ] +} diff --git a/registry/flare/testsv2/calldata-FAsset-FXRP-Flare.tests.json b/registry/flare/testsv2/calldata-FAsset-FXRP-Flare.tests.json new file mode 100644 index 000000000..f44911768 --- /dev/null +++ b/registry/flare/testsv2/calldata-FAsset-FXRP-Flare.tests.json @@ -0,0 +1,28 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-FAsset-FXRP-Flare.json", + "dataProvider": { + "tokens": { "0xAd552A648C74D49E10027AB8a618A3ad4901c5bE": { "symbol": "FXRP", "decimals": 6, "name": "FXRP" } }, + "addressNames": { "0x1111111111111111111111111111111111111111": "Recipient", "0x2a3Fe068cD92178554cabcf7c95ADf49B4B0B6A8": "AssetManager" } + }, + "tests": [ + { + "description": "Send 1 FXRP - chain 14", + "rawTx": "0x02f86d0e01840f2f16ee8411807b358307a12094ad552a648c74d49e10027ab8a618a3ad4901c5be80b844a9059cbb000000000000000000000000111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000f4240c0", + "expected": { + "intent": "Send FXRP", + "owner": "Flare Foundation", + "fields": [{ "label": "Amount", "value": "1 FXRP" }, { "label": "To", "value": "Recipient" }] + } + }, + { + "description": "Approve 10 FXRP for AssetManager - chain 14", + "rawTx": "0x02f86d0e02840f2f16ee8411807b358307a12094ad552a648c74d49e10027ab8a618a3ad4901c5be80b844095ea7b30000000000000000000000002a3fe068cd92178554cabcf7c95adf49b4b0b6a80000000000000000000000000000000000000000000000000000000000989680c0", + "expected": { + "intent": "Approve FXRP", + "owner": "Flare Foundation", + "fields": [{ "label": "Spender", "value": "AssetManager" }, { "label": "Amount", "value": "10 FXRP" }] + } + } + ] +} diff --git a/registry/flare/testsv2/calldata-FAsset-FXRP-Songbird.tests.json b/registry/flare/testsv2/calldata-FAsset-FXRP-Songbird.tests.json new file mode 100644 index 000000000..44a3d43ed --- /dev/null +++ b/registry/flare/testsv2/calldata-FAsset-FXRP-Songbird.tests.json @@ -0,0 +1,28 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-FAsset-FXRP-Songbird.json", + "dataProvider": { + "tokens": { "0xF9a84f4ec903F4EaB117A9c1098BeC078BA7027d": { "symbol": "FXRP", "decimals": 6, "name": "FXRP" } }, + "addressNames": { "0x1111111111111111111111111111111111111111": "Recipient", "0x299d678f67e7ADD4efdf295Ebe0E92FCb4f75C4c": "AssetManager" } + }, + "tests": [ + { + "description": "Send 1 FXRP - chain 19", + "rawTx": "0x02f86d1301840f2f16ee8411807b358307a12094f9a84f4ec903f4eab117a9c1098bec078ba7027d80b844a9059cbb000000000000000000000000111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000f4240c0", + "expected": { + "intent": "Send FXRP", + "owner": "Flare Foundation", + "fields": [{ "label": "Amount", "value": "1 FXRP" }, { "label": "To", "value": "Recipient" }] + } + }, + { + "description": "Approve 10 FXRP for AssetManager - chain 19", + "rawTx": "0x02f86d1302840f2f16ee8411807b358307a12094f9a84f4ec903f4eab117a9c1098bec078ba7027d80b844095ea7b3000000000000000000000000299d678f67e7add4efdf295ebe0e92fcb4f75c4c0000000000000000000000000000000000000000000000000000000000989680c0", + "expected": { + "intent": "Approve FXRP", + "owner": "Flare Foundation", + "fields": [{ "label": "Spender", "value": "AssetManager" }, { "label": "Amount", "value": "10 FXRP" }] + } + } + ] +} diff --git a/registry/flare/testsv2/calldata-MintingTagManager-FXRP-Flare.tests.json b/registry/flare/testsv2/calldata-MintingTagManager-FXRP-Flare.tests.json new file mode 100644 index 000000000..7a640b0d9 --- /dev/null +++ b/registry/flare/testsv2/calldata-MintingTagManager-FXRP-Flare.tests.json @@ -0,0 +1,45 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-MintingTagManager-FXRP-Flare.json", + "dataProvider": { + "addressNames": { + "0x1111111111111111111111111111111111111111": "Recipient", + "0x2222222222222222222222222222222222222222": "Executor", + "0x3333333333333333333333333333333333333333": "New Owner" + } + }, + "tests": [ + { + "description": "Reserve minting tag - chain 14", + "rawTx": "0x02f40e01840f2f16ee8411807b35830493e094b426b5ae61c23ff1b901a8ad1f1a3921d1e9d2f1880de0b6b3a764000084cd3293dec0", + "expected": { "intent": "reserve minting tag", "owner": "Flare Foundation", "fields": [{ "label": "Reservation Fee", "value": "1 FLR" }] } + }, + { + "description": "Set mint recipient for tag 1 - chain 14", + "rawTx": "0x02f86d0e02840f2f16ee8411807b358307a12094b426b5ae61c23ff1b901a8ad1f1a3921d1e9d2f180b844e8bfafa600000000000000000000000000000000000000000000000000000000000000010000000000000000000000001111111111111111111111111111111111111111c0", + "expected": { + "intent": "set mint recipient", + "owner": "Flare Foundation", + "fields": [{ "label": "Tag Id", "value": "1" }, { "label": "Recipient", "value": "Recipient" }] + } + }, + { + "description": "Set mint executor for tag 1 - chain 14", + "rawTx": "0x02f86f0e03850f224d4a008543fc8e68008307a12094b426b5ae61c23ff1b901a8ad1f1a3921d1e9d2f180b844778f598c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000002222222222222222222222222222222222222222c0", + "expected": { + "intent": "set mint executor", + "owner": "Flare Foundation", + "fields": [{ "label": "Tag Id", "value": "1" }, { "label": "Executor", "value": "Executor" }] + } + }, + { + "description": "Transfer minting tag 1 - chain 14", + "rawTx": "0x02f86f0e04850f224d4a008543fc8e68008307a12094b426b5ae61c23ff1b901a8ad1f1a3921d1e9d2f180b844a9059cbb00000000000000000000000033333333333333333333333333333333333333330000000000000000000000000000000000000000000000000000000000000001c0", + "expected": { + "intent": "transfer minting tag", + "owner": "Flare Foundation", + "fields": [{ "label": "To", "value": "New Owner" }, { "label": "Tag Id", "value": "1" }] + } + } + ] +} diff --git a/registry/flare/testsv2/calldata-MintingTagManager-FXRP-Songbird.tests.json b/registry/flare/testsv2/calldata-MintingTagManager-FXRP-Songbird.tests.json new file mode 100644 index 000000000..d7cd1d3e4 --- /dev/null +++ b/registry/flare/testsv2/calldata-MintingTagManager-FXRP-Songbird.tests.json @@ -0,0 +1,45 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-MintingTagManager-FXRP-Songbird.json", + "dataProvider": { + "addressNames": { + "0x1111111111111111111111111111111111111111": "Recipient", + "0x2222222222222222222222222222222222222222": "Executor", + "0x3333333333333333333333333333333333333333": "New Owner" + } + }, + "tests": [ + { + "description": "Reserve minting tag - chain 19", + "rawTx": "0x02f41301840f2f16ee8411807b35830493e09409e139a95edd67509aea040bf4b722ec103d21f4880de0b6b3a764000084cd3293dec0", + "expected": { "intent": "reserve minting tag", "owner": "Flare Foundation", "fields": [{ "label": "Reservation Fee", "value": "1 SGB" }] } + }, + { + "description": "Set mint recipient for tag 1 - chain 19", + "rawTx": "0x02f86d1302840f2f16ee8411807b358307a1209409e139a95edd67509aea040bf4b722ec103d21f480b844e8bfafa600000000000000000000000000000000000000000000000000000000000000010000000000000000000000001111111111111111111111111111111111111111c0", + "expected": { + "intent": "set mint recipient", + "owner": "Flare Foundation", + "fields": [{ "label": "Tag Id", "value": "1" }, { "label": "Recipient", "value": "Recipient" }] + } + }, + { + "description": "Set mint executor for tag 1 - chain 19", + "rawTx": "0x02f86f1303850f224d4a008543fc8e68008307a1209409e139a95edd67509aea040bf4b722ec103d21f480b844778f598c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000002222222222222222222222222222222222222222c0", + "expected": { + "intent": "set mint executor", + "owner": "Flare Foundation", + "fields": [{ "label": "Tag Id", "value": "1" }, { "label": "Executor", "value": "Executor" }] + } + }, + { + "description": "Transfer minting tag 1 - chain 19", + "rawTx": "0x02f86f1304850f224d4a008543fc8e68008307a1209409e139a95edd67509aea040bf4b722ec103d21f480b844a9059cbb00000000000000000000000033333333333333333333333333333333333333330000000000000000000000000000000000000000000000000000000000000001c0", + "expected": { + "intent": "transfer minting tag", + "owner": "Flare Foundation", + "fields": [{ "label": "To", "value": "New Owner" }, { "label": "Tag Id", "value": "1" }] + } + } + ] +} diff --git a/registry/flare/testsv2/calldata-ValidatorRewardManager-Flare.tests.json b/registry/flare/testsv2/calldata-ValidatorRewardManager-Flare.tests.json new file mode 100644 index 000000000..1f1025939 --- /dev/null +++ b/registry/flare/testsv2/calldata-ValidatorRewardManager-Flare.tests.json @@ -0,0 +1,33 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-ValidatorRewardManager-Flare.json", + "dataProvider": { + "addressNames": { "0x1111111111111111111111111111111111111111": "Reward Owner", "0x2222222222222222222222222222222222222222": "Recipient" } + }, + "tests": [ + { + "description": "Claim 1 FLR wrapped - chain 14", + "rawTx": "0x02f8ad0e01840f2f16ee8411807b358307a12094c0cf3aaf93bd978c5bc662564aa73e331f2ec0b580b884b2c12192000000000000000000000000111111111111111111111111111111111111111100000000000000000000000022222222222222222222222222222222222222220000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000001c0", + "expected": { + "intent": "Claim/Wrap Reward", + "owner": "Flare Labs", + "fields": [ + { "label": "Reward Owner", "value": "Reward Owner" }, + { "label": "Recipient", "value": "Recipient" }, + { "label": "Reward Amount", "value": "1 FLR" }, + { "label": "Wrap", "value": "true" } + ] + } + }, + { + "description": "Set claim executor - chain 14", + "rawTx": "0x02f88d0e02840f2f16ee8411807b358307a12094c0cf3aaf93bd978c5bc662564aa73e331f2ec0b580b8649119c494000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001111111111111111111111111111111111111111c0", + "expected": { "intent": "set executors", "owner": "Flare Labs", "fields": [{ "label": "Executor", "value": "Reward Owner" }] } + }, + { + "description": "Set allowed claim recipient - chain 14", + "rawTx": "0x02f88d0e03840f2f16ee8411807b358307a12094c0cf3aaf93bd978c5bc662564aa73e331f2ec0b580b864d2a4ac61000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000002222222222222222222222222222222222222222c0", + "expected": { "intent": "set recipients", "owner": "Flare Labs", "fields": [{ "label": "Recipient", "value": "Recipient" }] } + } + ] +} From 97766f5d920fe2195361ebeae35d9e6b7d822d39 Mon Sep 17 00:00:00 2001 From: Kristaps Grinbergs Date: Mon, 28 Sep 2026 10:47:17 +0300 Subject: [PATCH 2/2] ci: re-run checks after verifying FXRP contracts on Sourcify Co-Authored-By: Claude Opus 5.5 (1M context)