DepositFactory_USDCTransfer_Solana predicts and deploys deposit contracts for a configured source token and Solana destination token. Use the deposit-address API for an application integration; use the contract interface when inspecting its configuration or deployment behavior.
This factory is specific to the Solana deposit flow. Circle Gateway’s quoted vaultAddress has a different lifecycle.
Address derivation
The factory derives a CREATE2 salt from both the destination associated token account and the depositor. The predicted address also depends on the deploying factory and implementation. The same destination and depositor on the same factory produce the same address, including before deployment. At this contract boundary,destinationAddress is the recipient’s Solana associated token account encoded as bytes32, not the base58 wallet string accepted by the API.
getDepositAddress and isDeployed both require the depositor argument. deploy creates the clone, initializes it with the destination and depositor, and emits DepositContractDeployed. Deployment requires an onchain transaction; an incoming token transfer does not deploy the contract by itself.
Configuration
Each factory stores these settings. The constructor validates that token, Portal, prover, and Solana account values are nonzero and that the deadline duration is nonzero.getConfiguration() returns the first nine values in the table, in that order. The destination chain is a constant; the remaining route configuration and implementation address are immutable.
Troubleshooting
- If an API request reports an unconfigured factory, check the source chain’s support for the Solana deposit flow.
- If your predicted address differs from the API response, check the factory, depositor, and associated token account. A wallet public key and its token account are different addresses.
- If a deposit address has no bytecode yet, it may be a predicted address awaiting deployment. Check the API record before treating that as a failure.
