-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
16 changed files
with
1,370 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package builder | ||
|
||
import "github.com/peggyjv/steward/steward_proto_go/steward_proto" | ||
|
||
type AdaptorCallBuilder struct { | ||
callData *steward_proto.AdaptorCall, | ||
} | ||
|
||
func NewAdaptorCallBuilder(adaptor common.Address) *AdaptorCallBuilder { | ||
return &AdaptorCallBuilder{ | ||
callData: &steward_proto.AdaptorCall{ | ||
Adaptor: adaptor.Hex(), | ||
CallData: &steward_proto.AdaptorCall_CellarV2_5{}, | ||
}, | ||
} | ||
} | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
package adaptors | ||
|
||
import ( | ||
"math/big" | ||
|
||
"github.com/ethereum/go-ethereum/common" | ||
"github.com/peggyjv/steward/steward_proto_go/steward_proto" | ||
) | ||
|
||
type AaveV2ATokenAdaptorV2CallBuilder struct { | ||
adaptor common.Address | ||
calls []*steward_proto.AaveATokenAdaptorV2 | ||
} | ||
|
||
func NewAaveV2ATokenAdaptorV2CallBuilder(adaptor common.Address) *AaveV2ATokenAdaptorV2CallBuilder { | ||
return &AaveV2ATokenAdaptorV2CallBuilder{ | ||
adaptor: adaptor, | ||
calls: make([]*steward_proto.AaveATokenAdaptorV2, 0), | ||
} | ||
} | ||
|
||
func (b *AaveV2ATokenAdaptorV2CallBuilder) Build() *steward_proto.AdaptorCall { | ||
return &steward_proto.AdaptorCall{ | ||
Adaptor: b.adaptor.Hex(), | ||
CallData: &steward_proto.AdaptorCall_AaveATokenV2Calls{ | ||
AaveATokenV2Calls: &steward_proto.AaveATokenAdaptorV2Calls{ | ||
Calls: b.calls, | ||
}, | ||
}, | ||
} | ||
} | ||
|
||
func (b *AaveV2ATokenAdaptorV2CallBuilder) RevokeApproval(asset common.Address, spender common.Address) *AaveV2ATokenAdaptorV2CallBuilder { | ||
b.calls = append(b.calls, &steward_proto.AaveATokenAdaptorV2{ | ||
Function: &steward_proto.AaveATokenAdaptorV2_RevokeApproval{ | ||
RevokeApproval: &steward_proto.RevokeApproval{ | ||
Asset: asset.Hex(), | ||
Spender: spender.Hex(), | ||
}, | ||
}, | ||
}) | ||
|
||
return b | ||
} | ||
|
||
func (b *AaveV2ATokenAdaptorV2CallBuilder) DepositToAave(token common.Address, amount *big.Int) *AaveV2ATokenAdaptorV2CallBuilder { | ||
b.calls = append(b.calls, &steward_proto.AaveATokenAdaptorV2{ | ||
Function: &steward_proto.AaveATokenAdaptorV2_DepositToAave_{ | ||
DepositToAave: &steward_proto.AaveATokenAdaptorV2_DepositToAave{ | ||
Token: token.Hex(), | ||
Amount: amount.String(), | ||
}, | ||
}, | ||
}) | ||
|
||
return b | ||
} | ||
|
||
func (b *AaveV2ATokenAdaptorV2CallBuilder) WithdrawFromAave(token common.Address, amount *big.Int) *AaveV2ATokenAdaptorV2CallBuilder { | ||
b.calls = append(b.calls, &steward_proto.AaveATokenAdaptorV2{ | ||
Function: &steward_proto.AaveATokenAdaptorV2_WithdrawFromAave_{ | ||
WithdrawFromAave: &steward_proto.AaveATokenAdaptorV2_WithdrawFromAave{ | ||
Token: token.Hex(), | ||
Amount: amount.String(), | ||
}, | ||
}, | ||
}) | ||
|
||
return b | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
package adaptors | ||
|
||
import ( | ||
"math/big" | ||
"testing" | ||
|
||
"github.com/ethereum/go-ethereum/common" | ||
"github.com/peggyjv/steward/steward_proto_go/steward_proto" | ||
"github.com/stretchr/testify/assert" | ||
) | ||
|
||
// Test the AaveV2ATokenAdaptorCallBuilder constructor | ||
func TestNewAaveATokenAdaptorCall(t *testing.T) { | ||
// Create a new AaveV2ATokenAdaptorCallBuilder | ||
adaptor := common.HexToAddress("0x1234567890123456789012345678901234567890") | ||
builder := NewAaveV2ATokenAdaptorV2CallBuilder(adaptor) | ||
|
||
// Check the builder | ||
assert.Equal(t, adaptor.Hex(), builder.adaptor.Hex()) | ||
assert.Equal(t, 0, len(builder.calls)) | ||
|
||
asset := common.HexToAddress("0x00000000000000000000000000000000000000000") | ||
spender := common.HexToAddress("0x11111111111111111111111111111111111111111") | ||
builder.RevokeApproval(asset, spender) | ||
builder.DepositToAave(asset, big.NewInt(100)) | ||
builder.WithdrawFromAave(asset, big.NewInt(100)) | ||
|
||
// Check the builder | ||
assert.Equal(t, adaptor.Hex(), builder.adaptor.Hex()) | ||
assert.Equal(t, 3, len(builder.calls)) | ||
assert.IsType(t, &steward_proto.AaveATokenAdaptorV2_RevokeApproval{}, builder.calls[0].Function) | ||
assert.IsType(t, &steward_proto.AaveATokenAdaptorV2_DepositToAave_{}, builder.calls[1].Function) | ||
assert.IsType(t, &steward_proto.AaveATokenAdaptorV2_WithdrawFromAave_{}, builder.calls[2].Function) | ||
} |
55 changes: 55 additions & 0 deletions
55
go_request_builder/adaptors/aave_v2_enable_asset_as_collateral.go
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
package adaptors | ||
|
||
import ( | ||
"github.com/ethereum/go-ethereum/common" | ||
"github.com/peggyjv/steward/steward_proto_go/steward_proto" | ||
) | ||
|
||
type AaveV2EnableAssetAsCollateralAdaptorV1CallBuilder struct { | ||
adaptor common.Address | ||
calls []*steward_proto.AaveV2EnableAssetAsCollateralAdaptorV1 | ||
} | ||
|
||
func NewAaveV2EnableAssetAsCollateralAdaptorV1CallBuilder(adaptor common.Address) *AaveV2EnableAssetAsCollateralAdaptorV1CallBuilder { | ||
return &AaveV2EnableAssetAsCollateralAdaptorV1CallBuilder{ | ||
adaptor: adaptor, | ||
calls: make([]*steward_proto.AaveV2EnableAssetAsCollateralAdaptorV1, 0), | ||
} | ||
} | ||
|
||
func (b *AaveV2EnableAssetAsCollateralAdaptorV1CallBuilder) Build() *steward_proto.AdaptorCall { | ||
return &steward_proto.AdaptorCall{ | ||
Adaptor: b.adaptor.Hex(), | ||
CallData: &steward_proto.AdaptorCall_AaveV2EnableAssetAsCollateralV1Calls{ | ||
AaveV2EnableAssetAsCollateralV1Calls: &steward_proto.AaveV2EnableAssetAsCollateralAdaptorV1Calls{ | ||
Calls: b.calls, | ||
}, | ||
}, | ||
} | ||
} | ||
|
||
func (b *AaveV2EnableAssetAsCollateralAdaptorV1CallBuilder) RevokeApproval(asset common.Address, spender common.Address) *AaveV2EnableAssetAsCollateralAdaptorV1CallBuilder { | ||
b.calls = append(b.calls, &steward_proto.AaveV2EnableAssetAsCollateralAdaptorV1{ | ||
Function: &steward_proto.AaveV2EnableAssetAsCollateralAdaptorV1_RevokeApproval{ | ||
RevokeApproval: &steward_proto.RevokeApproval{ | ||
Asset: asset.Hex(), | ||
Spender: spender.Hex(), | ||
}, | ||
}, | ||
}) | ||
|
||
return b | ||
} | ||
|
||
func (b *AaveV2EnableAssetAsCollateralAdaptorV1CallBuilder) SetUserUseReserveAsCollateral(asset common.Address, useAsCollateral bool) *AaveV2EnableAssetAsCollateralAdaptorV1CallBuilder { | ||
b.calls = append(b.calls, &steward_proto.AaveV2EnableAssetAsCollateralAdaptorV1{ | ||
Function: &steward_proto.AaveV2EnableAssetAsCollateralAdaptorV1_SetUserUseReserveAsCollateral_{ | ||
SetUserUseReserveAsCollateral: &steward_proto.AaveV2EnableAssetAsCollateralAdaptorV1_SetUserUseReserveAsCollateral{ | ||
Asset: asset.Hex(), | ||
UseAsCollateral: useAsCollateral, | ||
}, | ||
}, | ||
}) | ||
|
||
return b | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
package adaptors | ||
|
||
import ( | ||
"math/big" | ||
|
||
"github.com/ethereum/go-ethereum/common" | ||
"github.com/peggyjv/steward/steward_proto_go/steward_proto" | ||
) | ||
|
||
type AaveV3ATokenAdaptorV1CallBuilder struct { | ||
adaptor common.Address | ||
calls []*steward_proto.AaveV3ATokenAdaptorV1 | ||
} | ||
|
||
func NewAaveV3ATokenAdaptorV1CallBuilder(adaptor common.Address) *AaveV3ATokenAdaptorV1CallBuilder { | ||
return &AaveV3ATokenAdaptorV1CallBuilder{ | ||
adaptor: adaptor, | ||
calls: make([]*steward_proto.AaveV3ATokenAdaptorV1, 0), | ||
} | ||
} | ||
|
||
func (b *AaveV3ATokenAdaptorV1CallBuilder) Build() *steward_proto.AdaptorCall { | ||
return &steward_proto.AdaptorCall{ | ||
Adaptor: b.adaptor.Hex(), | ||
CallData: &steward_proto.AdaptorCall_AaveV3ATokenV1Calls{ | ||
AaveV3ATokenV1Calls: &steward_proto.AaveV3ATokenAdaptorV1Calls{ | ||
Calls: b.calls, | ||
}, | ||
}, | ||
} | ||
} | ||
|
||
func (b *AaveV3ATokenAdaptorV1CallBuilder) RevokeApproval(asset common.Address, spender common.Address) *AaveV3ATokenAdaptorV1CallBuilder { | ||
b.calls = append(b.calls, &steward_proto.AaveV3ATokenAdaptorV1{ | ||
Function: &steward_proto.AaveV3ATokenAdaptorV1_RevokeApproval{ | ||
RevokeApproval: &steward_proto.RevokeApproval{ | ||
Asset: asset.Hex(), | ||
Spender: spender.Hex(), | ||
}, | ||
}, | ||
}) | ||
|
||
return b | ||
} | ||
|
||
func (b *AaveV3ATokenAdaptorV1CallBuilder) DepositToAave(token common.Address, amount *big.Int) *AaveV3ATokenAdaptorV1CallBuilder { | ||
b.calls = append(b.calls, &steward_proto.AaveV3ATokenAdaptorV1{ | ||
Function: &steward_proto.AaveV3ATokenAdaptorV1_DepositToAave_{ | ||
DepositToAave: &steward_proto.AaveV3ATokenAdaptorV1_DepositToAave{ | ||
Token: token.Hex(), | ||
Amount: amount.String(), | ||
}, | ||
}, | ||
}) | ||
|
||
return b | ||
} | ||
|
||
func (b *AaveV3ATokenAdaptorV1CallBuilder) WithdrawFromAave(token common.Address, amount *big.Int) *AaveV3ATokenAdaptorV1CallBuilder { | ||
b.calls = append(b.calls, &steward_proto.AaveV3ATokenAdaptorV1{ | ||
Function: &steward_proto.AaveV3ATokenAdaptorV1_WithdrawFromAave_{ | ||
WithdrawFromAave: &steward_proto.AaveV3ATokenAdaptorV1_WithdrawFromAave{ | ||
Token: token.Hex(), | ||
Amount: amount.String(), | ||
}, | ||
}, | ||
}) | ||
|
||
return b | ||
} | ||
|
||
func (b *AaveV3ATokenAdaptorV1CallBuilder) AdjustIsolationModeAssetAsCollateral(asset common.Address, useAsCollateral bool) *AaveV3ATokenAdaptorV1CallBuilder { | ||
b.calls = append(b.calls, &steward_proto.AaveV3ATokenAdaptorV1{ | ||
Function: &steward_proto.AaveV3ATokenAdaptorV1_AdjustIsolationModeAssetAsCollateral_{ | ||
AdjustIsolationModeAssetAsCollateral: &steward_proto.AaveV3ATokenAdaptorV1_AdjustIsolationModeAssetAsCollateral{ | ||
Asset: asset.Hex(), | ||
UseAsCollateral: useAsCollateral, | ||
}, | ||
}, | ||
}) | ||
|
||
return b | ||
} | ||
|
||
func (b *AaveV3ATokenAdaptorV1CallBuilder) ChangeEMode(categoryId uint32) *AaveV3ATokenAdaptorV1CallBuilder { | ||
b.calls = append(b.calls, &steward_proto.AaveV3ATokenAdaptorV1{ | ||
Function: &steward_proto.AaveV3ATokenAdaptorV1_ChangeEmode{ | ||
ChangeEmode: &steward_proto.AaveV3ATokenAdaptorV1_ChangeEMode{ | ||
CategoryId: categoryId, | ||
}, | ||
}, | ||
}) | ||
|
||
return b | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
package adaptors | ||
|
||
import ( | ||
"math/big" | ||
|
||
"github.com/ethereum/go-ethereum/common" | ||
"github.com/peggyjv/steward/steward_proto_go/steward_proto" | ||
) | ||
|
||
type AaveV3DebtTokenAdaptorV1CallBuilder struct { | ||
adaptor common.Address | ||
calls []*steward_proto.AaveV3DebtTokenAdaptorV1 | ||
} | ||
|
||
func NewAaveV3DebtTokenAdaptorV1CallBuilder(adaptor common.Address) *AaveV3DebtTokenAdaptorV1CallBuilder { | ||
return &AaveV3DebtTokenAdaptorV1CallBuilder{ | ||
adaptor: adaptor, | ||
calls: make([]*steward_proto.AaveV3DebtTokenAdaptorV1, 0), | ||
} | ||
} | ||
|
||
func (b *AaveV3DebtTokenAdaptorV1CallBuilder) Build() *steward_proto.AdaptorCall { | ||
return &steward_proto.AdaptorCall{ | ||
Adaptor: b.adaptor.Hex(), | ||
CallData: &steward_proto.AdaptorCall_AaveV3DebtTokenV1Calls{ | ||
AaveV3DebtTokenV1Calls: &steward_proto.AaveV3DebtTokenAdaptorV1Calls{ | ||
Calls: b.calls, | ||
}, | ||
}, | ||
} | ||
} | ||
|
||
func (b *AaveV3DebtTokenAdaptorV1CallBuilder) RevokeApproval(asset common.Address, spender common.Address) *AaveV3DebtTokenAdaptorV1CallBuilder { | ||
b.calls = append(b.calls, &steward_proto.AaveV3DebtTokenAdaptorV1{ | ||
Function: &steward_proto.AaveV3DebtTokenAdaptorV1_RevokeApproval{ | ||
RevokeApproval: &steward_proto.RevokeApproval{ | ||
Asset: asset.Hex(), | ||
Spender: spender.Hex(), | ||
}, | ||
}, | ||
}) | ||
|
||
return b | ||
} | ||
|
||
func (b *AaveV3DebtTokenAdaptorV1CallBuilder) BorrowFromAave(token common.Address, amount *big.Int) *AaveV3DebtTokenAdaptorV1CallBuilder { | ||
b.calls = append(b.calls, &steward_proto.AaveV3DebtTokenAdaptorV1{ | ||
Function: &steward_proto.AaveV3DebtTokenAdaptorV1_BorrowFromAave_{ | ||
BorrowFromAave: &steward_proto.AaveV3DebtTokenAdaptorV1_BorrowFromAave{ | ||
Token: token.Hex(), | ||
Amount: amount.String(), | ||
}, | ||
}, | ||
}) | ||
|
||
return b | ||
} | ||
|
||
func (b *AaveV3DebtTokenAdaptorV1CallBuilder) RepayAaveDebt(token common.Address, amount *big.Int) *AaveV3DebtTokenAdaptorV1CallBuilder { | ||
b.calls = append(b.calls, &steward_proto.AaveV3DebtTokenAdaptorV1{ | ||
Function: &steward_proto.AaveV3DebtTokenAdaptorV1_RepayAaveDebt_{ | ||
RepayAaveDebt: &steward_proto.AaveV3DebtTokenAdaptorV1_RepayAaveDebt{ | ||
Token: token.Hex(), | ||
Amount: amount.String(), | ||
}, | ||
}, | ||
}) | ||
|
||
return b | ||
} | ||
|
||
func (b *AaveV3DebtTokenAdaptorV1CallBuilder) RepayWithATokens(underlyingToken common.Address, amount *big.Int) *AaveV3DebtTokenAdaptorV1CallBuilder { | ||
b.calls = append(b.calls, &steward_proto.AaveV3DebtTokenAdaptorV1{ | ||
Function: &steward_proto.AaveV3DebtTokenAdaptorV1_RepayWithATokens_{ | ||
RepayWithATokens: &steward_proto.AaveV3DebtTokenAdaptorV1_RepayWithATokens{ | ||
UnderlyingToken: underlyingToken.Hex(), | ||
Amount: amount.String(), | ||
}, | ||
}, | ||
}) | ||
|
||
return b | ||
} |
Oops, something went wrong.