2026-03-13 13:13:51 +08:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
from __future__ import annotations
|
|
|
|
|
|
|
|
|
|
import argparse
|
|
|
|
|
import sys
|
|
|
|
|
|
|
|
|
|
from eth_abi import encode
|
|
|
|
|
from web3 import Web3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def main() -> int:
|
|
|
|
|
parser = argparse.ArgumentParser(
|
|
|
|
|
description="Encode PolyWeatherCheckout constructor args for PolygonScan verification.",
|
|
|
|
|
)
|
2026-03-13 13:58:41 +08:00
|
|
|
parser.add_argument(
|
|
|
|
|
"--token",
|
|
|
|
|
help="Initial allowed token address (e.g. USDC.e or Native USDC)",
|
|
|
|
|
)
|
|
|
|
|
parser.add_argument("--usdc", help="Backward-compatible alias of --token")
|
2026-03-13 13:13:51 +08:00
|
|
|
parser.add_argument("--treasury", required=True, help="Treasury address")
|
|
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
2026-03-13 13:58:41 +08:00
|
|
|
token = args.token or args.usdc
|
|
|
|
|
if not token:
|
|
|
|
|
print("missing --token (or --usdc)", file=sys.stderr)
|
|
|
|
|
return 1
|
|
|
|
|
if not Web3.is_address(token):
|
|
|
|
|
print("invalid --token address", file=sys.stderr)
|
2026-03-13 13:13:51 +08:00
|
|
|
return 1
|
|
|
|
|
if not Web3.is_address(args.treasury):
|
|
|
|
|
print("invalid --treasury address", file=sys.stderr)
|
|
|
|
|
return 1
|
|
|
|
|
|
|
|
|
|
encoded = encode(
|
|
|
|
|
["address", "address"],
|
2026-03-13 13:58:41 +08:00
|
|
|
[Web3.to_checksum_address(token), Web3.to_checksum_address(args.treasury)],
|
2026-03-13 13:13:51 +08:00
|
|
|
).hex()
|
|
|
|
|
print(encoded)
|
|
|
|
|
return 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
raise SystemExit(main())
|