diff --git a/.github/workflows/propose-safe-multisig-tx.yml b/.github/workflows/propose-safe-multisig-tx.yml index 4f6d87f..4d48001 100644 --- a/.github/workflows/propose-safe-multisig-tx.yml +++ b/.github/workflows/propose-safe-multisig-tx.yml @@ -2,10 +2,6 @@ name: 'Propose Safe Multisig Transaction' on: workflow_call: inputs: - rpc-url: - description: 'RPC URL for the blockchain network' - required: true - type: string safe-address: description: 'Address of the Safe contract' required: true @@ -29,6 +25,9 @@ on: default: false type: boolean secrets: + rpc-url: + description: 'RPC URL for the blockchain network' + required: true safe-proposer-private-key: description: 'Private key of the proposer wallet' required: true @@ -73,7 +72,7 @@ jobs: run: npm run propose working-directory: ./propose-safe-multisig-tx env: - RPC_URL: ${{ inputs.rpc-url }} + RPC_URL: ${{ secrets.rpc-url }} SAFE_ADDRESS: ${{ inputs.safe-address }} TRANSACTION_TO: ${{ inputs.transaction-to }} TRANSACTION_VALUE: ${{ inputs.transaction-value }} diff --git a/propose-safe-multisig-tx/README.md b/propose-safe-multisig-tx/README.md index eb52334..d4b6069 100644 --- a/propose-safe-multisig-tx/README.md +++ b/propose-safe-multisig-tx/README.md @@ -8,11 +8,11 @@ This reusable GitHub Actions workflow automates the process of proposing transac | **Input** | **Description** | **Required** | **Default** | | ------------------------ | ------------------------------------------------------------- | ------------ | ----------------------------------- | -| **rpc-url** | RPC URL for the blockchain network | Yes | - | | **safe-address** | Address of the Safe contract | Yes | - | | **transaction-to** | Target address for the transaction | Yes | - | | **transaction-value** | Value to send in the transaction (in wei) | No | `0` | | **transaction-data** | Transaction data/calldata | Yes | - | +| **rpc-url** | RPC URL for the blockchain network | Yes (Secret) | - | | **safe-proposer-private-key** | Private key of the proposer wallet | Yes (Secret) | - | | **safe-api-key** | Safe API key for transaction service | Yes (Secret) | - | @@ -38,10 +38,10 @@ This reusable GitHub Actions workflow automates the process of proposing transac upgrade: uses: ./.github/workflows/propose-safe-multisig-tx.yml secrets: + rpc-url: ${{ secrets.RPC_URL }} safe-proposer-private-key: ${{ secrets.SAFE_PROPOSER_PRIVATE_KEY }} safe-api-key: ${{ secrets.SAFE_API_KEY }} with: - rpc-url: 'https://...' safe-address: '0xab...' transaction-to: '0xcd...' transaction-value: '0' @@ -50,6 +50,7 @@ This reusable GitHub Actions workflow automates the process of proposing transac 2. **Configure Secrets** Ensure that the required secrets are added to your repository's settings: + - `RPC_URL`: The RPC URL for the blockchain network - `SAFE_PROPOSER_PRIVATE_KEY`: The private key of the wallet that will propose the transaction - `SAFE_API_KEY`: Your Safe API key for the transaction service diff --git a/propose-safe-multisig-tx/package-lock.json b/propose-safe-multisig-tx/package-lock.json index c619ed8..a3ad5b7 100644 --- a/propose-safe-multisig-tx/package-lock.json +++ b/propose-safe-multisig-tx/package-lock.json @@ -8,52 +8,52 @@ "name": "propose-safe-multisig-tx-github-action", "version": "1.0.0", "dependencies": { - "@actions/core": "^1.10.1", - "@safe-global/api-kit": "^4.0.0", - "@safe-global/protocol-kit": "^6.1.1", - "@safe-global/types-kit": "^3.0.0", - "dotenv": "^16.3.1", + "@actions/core": "^3.0.1", + "@safe-global/api-kit": "^5.0.1", + "@safe-global/protocol-kit": "^8.0.1", + "@safe-global/types-kit": "^4.0.1", + "dotenv": "^17.4.2", "viem": "^2.21.0", - "zod": "^3.22.4" + "zod": "^4.4.3" }, "devDependencies": { - "@types/node": "^24.7.0", - "typescript": "^5.0.0" + "@types/node": "^26.0.0", + "typescript": "^6.0.3" } }, "node_modules/@actions/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz", - "integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-3.0.1.tgz", + "integrity": "sha512-a6d/Nwahm9fliVGRhdhofo40HjHQasUPusmc7vBfyky+7Z+P2A1J68zyFVaNcEclc/Se+eO595oAr5nwEIoIUA==", "license": "MIT", "dependencies": { - "@actions/exec": "^1.1.1", - "@actions/http-client": "^2.0.1" + "@actions/exec": "^3.0.0", + "@actions/http-client": "^4.0.0" } }, "node_modules/@actions/exec": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", - "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-3.0.0.tgz", + "integrity": "sha512-6xH/puSoNBXb72VPlZVm7vQ+svQpFyA96qdDBvhB8eNZOE8LtPf9L4oAsfzK/crCL8YZ+19fKYVnM63Sl+Xzlw==", "license": "MIT", "dependencies": { - "@actions/io": "^1.0.1" + "@actions/io": "^3.0.2" } }, "node_modules/@actions/http-client": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.3.tgz", - "integrity": "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-4.0.1.tgz", + "integrity": "sha512-+Nvd1ImaOZBSoPbsUtEhv+1z99H12xzncCkz0a3RuehINE81FZSe2QTj3uvAPTcJX/SCzUQHQ0D1GrPMbrPitg==", "license": "MIT", "dependencies": { "tunnel": "^0.0.6", - "undici": "^5.25.4" + "undici": "^6.23.0" } }, "node_modules/@actions/io": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz", - "integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@actions/io/-/io-3.0.2.tgz", + "integrity": "sha512-nRBchcMM+QK1pdjO7/idu86rbJI5YHUKCvKs0KxnSYbVe3F51UfGxuZX4Qy/fWlp6l7gWFwIkrOzN+oUK03kfw==", "license": "MIT" }, "node_modules/@adraffy/ens-normalize": { @@ -62,15 +62,6 @@ "integrity": "sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==", "license": "MIT" }, - "node_modules/@fastify/busboy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", - "license": "MIT", - "engines": { - "node": ">=14" - } - }, "node_modules/@noble/ciphers": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", @@ -111,41 +102,51 @@ } }, "node_modules/@peculiar/asn1-schema": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.5.0.tgz", - "integrity": "sha512-YM/nFfskFJSlHqv59ed6dZlLZqtZQwjRVJ4bBAiWV08Oc+1rSd5lDZcBEx0lGDHfSoH3UziI2pXt2UM33KerPQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.8.0.tgz", + "integrity": "sha512-7YT0U/ze0tF2QOBbE15gKZwy5tvgGyLRiRHLzhlbOpf7BT032oBSd0haZqXn5W6l26WLlu3dyxzjM+2638/z2Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@peculiar/utils/-/utils-2.0.3.tgz", + "integrity": "sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==", "license": "MIT", "optional": true, "dependencies": { - "asn1js": "^3.0.6", - "pvtsutils": "^1.3.6", "tslib": "^2.8.1" } }, "node_modules/@safe-global/api-kit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@safe-global/api-kit/-/api-kit-4.0.0.tgz", - "integrity": "sha512-xtLLi6OXguLw8cLoYnzCxqmirzRK4sSORxaiBDXdxJfBXIZLLKvYwQyDjsPL+2W4jKlJVcSLCw5EfolJahNMYg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@safe-global/api-kit/-/api-kit-5.0.1.tgz", + "integrity": "sha512-nbkSjrRTZh+LlD7e0A4fujKgLZnU5262e1iYTWsGx4ft6oo5kTAxc5pY0icls5PjmZI0UkMhYIv5izeBP7bcWg==", "license": "MIT", "dependencies": { - "@safe-global/protocol-kit": "^6.1.0", - "@safe-global/types-kit": "^3.0.0", + "@safe-global/protocol-kit": "^8.0.1", + "@safe-global/types-kit": "^4.0.1", "node-fetch": "^2.7.0", - "viem": "^2.21.8" + "viem": "^2.52.2" } }, "node_modules/@safe-global/protocol-kit": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@safe-global/protocol-kit/-/protocol-kit-6.1.1.tgz", - "integrity": "sha512-SlRosKB52h1CV2gMlKG4UOvh2j4tXuzz1GZ/yQ1HD0Zvm5azUlaytFwKzHun9xNVvfe+vvSNHUEGX2Umy+rQ9A==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@safe-global/protocol-kit/-/protocol-kit-8.0.1.tgz", + "integrity": "sha512-clKJ4V3gDEQ8zUEulMfNh91v2isUL4TjjTrcTLOXhhQ7VPDx1+vYdVmxUT4dNM7yAZ0VrQRlKjfJrbJavYe6Lg==", "license": "MIT", "dependencies": { - "@safe-global/safe-deployments": "^1.37.42", - "@safe-global/safe-modules-deployments": "^2.2.14", - "@safe-global/types-kit": "^3.0.0", - "abitype": "^1.0.2", - "semver": "^7.7.2", - "viem": "^2.21.8" + "@safe-global/safe-deployments": "^1.37.57", + "@safe-global/safe-modules-deployments": "^3.0.4", + "@safe-global/types-kit": "^4.0.1", + "abitype": "^1.2.3", + "semver": "^7.8.0", + "viem": "^2.52.2" }, "optionalDependencies": { "@noble/curves": "^1.6.0", @@ -153,27 +154,31 @@ } }, "node_modules/@safe-global/safe-deployments": { - "version": "1.37.45", - "resolved": "https://registry.npmjs.org/@safe-global/safe-deployments/-/safe-deployments-1.37.45.tgz", - "integrity": "sha512-HLH8nJSVbDlx/p3Yzhspyz9q9pITSGvw2UqlmXfAyrz6VSM8zc9xUWlBeqaUEzvmgon9YUgfstUMz2MElRUCfQ==", + "version": "1.37.57", + "resolved": "https://registry.npmjs.org/@safe-global/safe-deployments/-/safe-deployments-1.37.57.tgz", + "integrity": "sha512-Wt6/ewNbibalOAe90ZOg7F4AQTgs52xcw7ZYuw3iGY8+UIbwsFUT5Bp9A1HOrTm2c5aB1hLt7GOTbdy5G2ulAA==", "license": "MIT", "dependencies": { "semver": "^7.6.2" + }, + "engines": { + "node": ">=22.0.0", + "pnpm": ">=10.16.0" } }, "node_modules/@safe-global/safe-modules-deployments": { - "version": "2.2.17", - "resolved": "https://registry.npmjs.org/@safe-global/safe-modules-deployments/-/safe-modules-deployments-2.2.17.tgz", - "integrity": "sha512-G5VivmG0+UlTnaJgWJvkkFSQlhMzSXT40IoOTv2A134EtHoq9cs8BsCjXUErKb96KVmDguj6ku5oJmiLp6raNQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@safe-global/safe-modules-deployments/-/safe-modules-deployments-3.0.5.tgz", + "integrity": "sha512-MycyPiwAwjitVSWnO3nFyfCTXei07RosuACprMVpc0at0gKX1bRIaazWpdLwFSI1FUA6+0o1LbQPGNWjMqq9Zg==", "license": "MIT" }, "node_modules/@safe-global/types-kit": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@safe-global/types-kit/-/types-kit-3.0.0.tgz", - "integrity": "sha512-AZWIlR5MguDPdGiOj7BB4JQPY2afqmWQww1mu8m8Oi16HHBW99G01kFOu4NEHBwEU1cgwWOMY19hsI5KyL4W2w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@safe-global/types-kit/-/types-kit-4.0.1.tgz", + "integrity": "sha512-zmIYyAH9mcBcqHszPgcfNjOJYuPSvWCcc/f8zeznh7N1HSA7jEoFErO06O4QDfwAAS4aEyoyjhPyfHbVYRheZg==", "license": "MIT", "dependencies": { - "abitype": "^1.0.2" + "abitype": "^1.2.3" } }, "node_modules/@scure/base": { @@ -213,19 +218,19 @@ } }, "node_modules/@types/node": { - "version": "24.7.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.7.0.tgz", - "integrity": "sha512-IbKooQVqUBrlzWTi79E8Fw78l8k1RNtlDDNWsFZs7XonuQSJ8oNYfEeclhprUldXISRMLzBpILuKgPlIxm+/Yw==", + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.0.0.tgz", + "integrity": "sha512-vf2YFi1iY9lHGwNJMs01biZFbKJkrZR1T6/MlzjhJLPdntOHLhTrDSnSVcdtvjihi4VQNlrFRIxLsDBlQpAipA==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.14.0" + "undici-types": "~8.3.0" } }, "node_modules/abitype": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.1.1.tgz", - "integrity": "sha512-Loe5/6tAgsBukY95eGaPSDmQHIjRZYQq8PB1MpsNccDIK8WiV+Uw6WzaIXipvaxTEL2yEB0OpEaQv3gs8pkS9Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.2.4.tgz", + "integrity": "sha512-dpKH+N27vRjarMVTFFkeY445VTKftzGWpL0FiT7xmVmzQRKazZexzC5uHG0f6XKsVLAuUlndnbGau6lRejClxg==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/wevm" @@ -244,14 +249,14 @@ } }, "node_modules/asn1js": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.6.tgz", - "integrity": "sha512-UOCGPYbl0tv8+006qks/dTgV9ajs97X2p0FAbyS2iyCRrmLSRolDaHdp+v/CLgnzHc3fVB+CwYiUmei7ndFcgA==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.10.tgz", + "integrity": "sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==", "license": "BSD-3-Clause", "optional": true, "dependencies": { "pvtsutils": "^1.3.6", - "pvutils": "^1.1.3", + "pvutils": "^1.1.5", "tslib": "^2.8.1" }, "engines": { @@ -259,9 +264,9 @@ } }, "node_modules/dotenv": { - "version": "16.6.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", - "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", + "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", "license": "BSD-2-Clause", "engines": { "node": ">=12" @@ -312,9 +317,9 @@ } }, "node_modules/ox": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.9.6.tgz", - "integrity": "sha512-8SuCbHPvv2eZLYXrNmC0EC12rdzXQLdhnOMlHDW2wiCPLxBrOOJwX5L5E61by+UjTPOryqQiRSnjIKCI+GykKg==", + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.14.29.tgz", + "integrity": "sha512-M5j87Ec4V99MQdRct/g09eWXW60g6zhHTUs1lr4deUtrPDnezBdCJTgKd7pxqTpSZBFveV0ALi9jMMuT1qKyNg==", "funding": [ { "type": "github", @@ -329,7 +334,7 @@ "@noble/hashes": "^1.8.0", "@scure/bip32": "^1.7.0", "@scure/bip39": "^1.6.0", - "abitype": "^1.0.9", + "abitype": "^1.2.3", "eventemitter3": "5.0.1" }, "peerDependencies": { @@ -367,19 +372,19 @@ } }, "node_modules/pvutils": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", - "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz", + "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", "license": "MIT", "optional": true, "engines": { - "node": ">=6.0.0" + "node": ">=16.0.0" } }, "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -411,9 +416,9 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "devOptional": true, "license": "Apache-2.0", "bin": { @@ -425,28 +430,25 @@ } }, "node_modules/undici": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", - "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", + "version": "6.27.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.27.0.tgz", + "integrity": "sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==", "license": "MIT", - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, "engines": { - "node": ">=14.0" + "node": ">=18.17" } }, "node_modules/undici-types": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.14.0.tgz", - "integrity": "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", "dev": true, "license": "MIT" }, "node_modules/viem": { - "version": "2.37.13", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.37.13.tgz", - "integrity": "sha512-05dh56iMmCyjRLcTIiu8bB4zZLnb9uLOVToDwmBLYDarmoOE8d8SLFkQLc2zLU57FlnYCQIO1VbUviGZYwFGgQ==", + "version": "2.53.1", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.53.1.tgz", + "integrity": "sha512-FhfJ/SW73CVosiyVLmIMVgKDRKYV1AGCLzZoHYvmNayyVff63Qi1ocPCk59LqC/cNw244RbBJjHnmxqXkE7NpA==", "funding": [ { "type": "github", @@ -459,10 +461,10 @@ "@noble/hashes": "1.8.0", "@scure/bip32": "1.7.0", "@scure/bip39": "1.6.0", - "abitype": "1.1.0", + "abitype": "1.2.3", "isows": "1.0.7", - "ox": "0.9.6", - "ws": "8.18.3" + "ox": "0.14.29", + "ws": "8.20.1" }, "peerDependencies": { "typescript": ">=5.0.4" @@ -489,9 +491,9 @@ } }, "node_modules/viem/node_modules/abitype": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.1.0.tgz", - "integrity": "sha512-6Vh4HcRxNMLA0puzPjM5GBgT4aAcFGKZzSgAXvuZ27shJP6NEpielTuqbBmZILR5/xd0PizkBGy5hReKz9jl5A==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.2.3.tgz", + "integrity": "sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/wevm" @@ -526,9 +528,9 @@ } }, "node_modules/ws": { - "version": "8.18.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "version": "8.20.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.1.tgz", + "integrity": "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -547,9 +549,9 @@ } }, "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/propose-safe-multisig-tx/package.json b/propose-safe-multisig-tx/package.json index fd21684..e7d9f67 100644 --- a/propose-safe-multisig-tx/package.json +++ b/propose-safe-multisig-tx/package.json @@ -8,16 +8,16 @@ "propose": "node dist/index.js" }, "dependencies": { - "@actions/core": "^1.10.1", - "@safe-global/api-kit": "^4.0.0", - "@safe-global/protocol-kit": "^6.1.1", - "@safe-global/types-kit": "^3.0.0", - "dotenv": "^16.3.1", + "@actions/core": "^3.0.1", + "@safe-global/api-kit": "^5.0.1", + "@safe-global/protocol-kit": "^8.0.1", + "@safe-global/types-kit": "^4.0.1", + "dotenv": "^17.4.2", "viem": "^2.21.0", - "zod": "^3.22.4" + "zod": "^4.4.3" }, "devDependencies": { - "@types/node": "^24.7.0", - "typescript": "^5.0.0" + "@types/node": "^26.0.0", + "typescript": "^6.0.3" } } diff --git a/propose-safe-multisig-tx/src/env.ts b/propose-safe-multisig-tx/src/env.ts index 47edd2c..41a6cbc 100644 --- a/propose-safe-multisig-tx/src/env.ts +++ b/propose-safe-multisig-tx/src/env.ts @@ -28,12 +28,14 @@ const envSchema = z.object({ TRANSACTION_VALUE: z .string() .default("0") - .pipe( - z.coerce - .bigint() - .nonnegative("Transaction value must be a positive amount") - ) - .transform(String), + .refine((val) => { + try { + return BigInt(val) >= 0n; + } catch { + return false; + } + }, "Transaction value must be a positive amount") + .transform((val) => BigInt(val).toString()), // Transaction data/calldata TRANSACTION_DATA: z diff --git a/propose-safe-multisig-tx/tsconfig.json b/propose-safe-multisig-tx/tsconfig.json index 29a5052..4098af4 100644 --- a/propose-safe-multisig-tx/tsconfig.json +++ b/propose-safe-multisig-tx/tsconfig.json @@ -5,7 +5,10 @@ "declaration": true, "sourceMap": true, "outDir": "dist", + "rootDir": "src", "moduleResolution": "node", + "ignoreDeprecations": "6.0", + "types": ["node"], "skipLibCheck": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true,