Skip to content

Commit dfb1168

Browse files
committed
Cleanup TX for simplicity
1 parent 2e8f5bb commit dfb1168

4 files changed

Lines changed: 57 additions & 13 deletions

File tree

internal/super/generator/templates/README_defi_actions.md.tmpl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ The fork test executes a real swap from FLOW → stFlow using IncrementFi's depl
118118
- `ExampleConnectors.cdc` - TokenSink connector implementation
119119
- `cadence/transactions/` - Transaction files
120120
- `DepositViaSink.cdc` - Example transaction using TokenSink
121-
- `incrementfi_swap_flow.cdc` - IncrementFi swap transaction
121+
- `incrementfi_swap.cdc` - IncrementFi swap transaction
122122
- `cadence/tests/` - Test files
123123
- `ExampleConnectors_test.cdc` - Integration test for TokenSink
124124
- `test_incrementfi_swap_on_fork.cdc` - Fork test against mainnet IncrementFi
@@ -137,7 +137,9 @@ This project includes the following dependencies (already installed):
137137
- `DeFiActionsUtils` - Helper utilities
138138
- `DeFiActionsMathUtils` - Math utilities for DeFi operations
139139

140-
**DeFi Protocol Connectors:**
140+
**DeFi Protocol Dependencies:**
141+
- `stFlowToken` - Liquid staking token (used in fork test example)
142+
- `SwapConfig` - IncrementFi swap configuration utilities
141143
- `IncrementFiSwapConnectors` - IncrementFi swap connectors (used in fork test example)
142144

143145
**Network Configuration:**

internal/super/generator/templates/test_incrementfi_swap_on_fork.cdc.tmpl

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212

1313
import Test
1414
import "DeFiActions"
15+
import "FlowToken"
16+
import "stFlowToken"
1517

1618
// Executes a minimal swap from FLOW -> stFlow using IncrementFi on a forked mainnet.
1719
// Withdraws a tiny amount from a known FLOW holder and swaps via IncrementFi router.
@@ -21,14 +23,18 @@ access(all) fun testIncrementFi_SwapOnFork() {
2123
let HOLDER = Test.getAccount(0x42a06f24a1049154)
2224
let AMOUNT_IN: UFix64 = 0.001
2325

24-
let txCode = Test.readFile("../transactions/incrementfi_swap_flow.cdc")
26+
let txCode = Test.readFile("../transactions/incrementfi_swap.cdc")
27+
28+
// Define vault types for FLOW -> stFlow swap
29+
let flowVaultType = Type<@FlowToken.Vault>()
30+
let stFlowVaultType = Type<@stFlowToken.Vault>()
2531

2632
let res = Test.executeTransaction(
2733
Test.Transaction(
2834
code: txCode,
2935
authorizers: [HOLDER.address],
3036
signers: [HOLDER],
31-
arguments: [AMOUNT_IN]
37+
arguments: [AMOUNT_IN, flowVaultType, stFlowVaultType]
3238
)
3339
)
3440

internal/super/generator/templates/transaction_incrementfi_swap_flow.cdc.tmpl renamed to internal/super/generator/templates/transaction_incrementfi_swap.cdc.tmpl

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,33 @@
1-
// Transaction to swap FLOW tokens for stFlow using IncrementFi's DeFi Actions connector.
1+
// Transaction to swap tokens using IncrementFi's DeFi Actions connector.
22
// This demonstrates using IncrementFi's Swapper connector to execute a token swap.
33
//
44
// Arguments:
5-
// - amountIn: The amount of FLOW tokens to swap
5+
// - amountIn: The amount of input tokens to swap
6+
// - inVaultType: The vault type for the input token (e.g., Type<@FlowToken.Vault>())
7+
// - outVaultType: The vault type for the output token (e.g., Type<@stFlowToken.Vault>())
68
//
79
// This transaction is used by the fork test to demonstrate real DeFi protocol integration.
810

911
import "DeFiActions"
1012
import "FungibleToken"
1113
import "FlowToken"
1214
import "IncrementFiSwapConnectors"
15+
import "SwapConfig"
1316

14-
transaction(amountIn: UFix64) {
17+
transaction(amountIn: UFix64, inVaultType: Type, outVaultType: Type) {
1518
prepare(acct: auth(BorrowValue) &Account) {
1619
let opID = DeFiActions.createUniqueIdentifier()
20+
21+
// Construct swap path from vault types
22+
let swapPath = [
23+
SwapConfig.SliceTokenTypeIdentifierFromVaultType(vaultTypeIdentifier: inVaultType.identifier),
24+
SwapConfig.SliceTokenTypeIdentifierFromVaultType(vaultTypeIdentifier: outVaultType.identifier)
25+
]
26+
1727
let swapper = IncrementFiSwapConnectors.Swapper(
18-
path: ["A.1654653399040a61.FlowToken", "A.d6f80565193ad727.stFlowToken"],
19-
inVault: Type<@FlowToken.Vault>(),
20-
outVault: CompositeType("A.d6f80565193ad727.stFlowToken.Vault")!,
28+
path: swapPath,
29+
inVault: inVaultType,
30+
outVault: outVaultType,
2131
uniqueID: opID
2232
)
2333
let flowVaultRef = acct.storage.borrow<auth(FungibleToken.Withdraw) &FlowToken.Vault>(from: /storage/flowTokenVault)

internal/super/projecttypes.go

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,32 @@ func getProjectTypeConfigs() map[ProjectType]*ProjectTypeConfig {
145145
},
146146
},
147147
},
148+
{
149+
Name: "stFlowToken",
150+
Source: flowkitConfig.Source{
151+
NetworkName: flowkitConfig.MainnetNetwork.Name,
152+
Address: flowsdk.HexToAddress("d6f80565193ad727"),
153+
ContractName: "stFlowToken",
154+
},
155+
Aliases: flowkitConfig.Aliases{
156+
{Network: "mainnet", Address: flowsdk.HexToAddress("d6f80565193ad727")},
157+
{Network: "testnet", Address: flowsdk.HexToAddress("7c11edb826692404")},
158+
{Network: "testing", Address: flowsdk.HexToAddress("0000000000000008")},
159+
},
160+
},
161+
{
162+
Name: "SwapConfig",
163+
Source: flowkitConfig.Source{
164+
NetworkName: flowkitConfig.MainnetNetwork.Name,
165+
Address: flowsdk.HexToAddress("b78ef7afa52ff906"),
166+
ContractName: "SwapConfig",
167+
},
168+
Aliases: flowkitConfig.Aliases{
169+
{Network: "mainnet", Address: flowsdk.HexToAddress("b78ef7afa52ff906")},
170+
{Network: "testnet", Address: flowsdk.HexToAddress("b063c16cac85dbd1")},
171+
{Network: "testing", Address: flowsdk.HexToAddress("0000000000000009")},
172+
},
173+
},
148174
{
149175
Name: "IncrementFiSwapConnectors",
150176
Source: flowkitConfig.Source{
@@ -155,7 +181,7 @@ func getProjectTypeConfigs() map[ProjectType]*ProjectTypeConfig {
155181
Aliases: flowkitConfig.Aliases{
156182
{Network: "mainnet", Address: flowsdk.HexToAddress("e844c7cf7430a77c")},
157183
{Network: "testnet", Address: flowsdk.HexToAddress("494536c102537e1e")},
158-
{Network: "testing", Address: flowsdk.HexToAddress("0000000000000007")},
184+
{Network: "testing", Address: flowsdk.HexToAddress("000000000000000a")},
159185
},
160186
},
161187
},
@@ -290,8 +316,8 @@ func getProjectTemplates(projectType ProjectType, targetDir string, state *flowk
290316
TemplatePath: "transaction_deposit_via_sink.cdc.tmpl",
291317
},
292318
generator.TransactionTemplate{
293-
Name: "incrementfi_swap_flow",
294-
TemplatePath: "transaction_incrementfi_swap_flow.cdc.tmpl",
319+
Name: "incrementfi_swap",
320+
TemplatePath: "transaction_incrementfi_swap.cdc.tmpl",
295321
},
296322
generator.TestTemplate{
297323
Name: "incrementfi_swap_on_fork",

0 commit comments

Comments
 (0)