Implement payments for app deployments (#17)

Part of [Service provider auctions for web deployments](https://www.notion.so/Service-provider-auctions-for-web-deployments-104a6b22d47280dbad51d28aa3a91d75)
- Implement funtionality to pay for deployments by connecting wallet using `WalletConnect`

![image](/attachments/842e33e8-7de6-4d91-9008-1c67a259b586)

![image](/attachments/94b2fe39-f753-4e99-a8c2-bda4c0b84897)

Co-authored-by: IshaVenikar <ishavenikar7@gmail.com>
Co-authored-by: Shreerang Kale <shreerangkale@gmail.com>
Reviewed-on: cerc-io/snowballtools-base#17
This commit is contained in:
2024-10-28 09:46:18 +00:00
co-authored by IshaVenikar Shreerang Kale
parent b449c299dc
commit 63969ae25a
34 changed files with 752 additions and 1539 deletions
+21
View File
@@ -432,4 +432,25 @@ export class GQLClient {
return data;
}
async getAddress(): Promise<string> {
const { data } = await this.client.query({
query: queries.getAddress,
});
return data.address;
}
async verifyTx(txHash: string, amount: string, senderAddress: string): Promise<boolean> {
const { data: verifyTx } = await this.client.query({
query: queries.verifyTx,
variables: {
txHash,
amount,
senderAddress
}
});
return verifyTx;
}
}
+23
View File
@@ -28,7 +28,10 @@ query ($projectId: String!) {
deployerLrn
deployerId
deployerApiUrl
minimumPayment
}
paymentAddress
txHash
fundsReleased
framework
repository
@@ -84,7 +87,10 @@ query ($organizationSlug: String!) {
deployerLrn
deployerId
deployerApiUrl
minimumPayment
}
paymentAddress
txHash
fundsReleased
prodBranch
webhooks
@@ -148,6 +154,7 @@ query ($projectId: String!) {
deployerLrn
deployerId
deployerApiUrl
minimumPayment
}
environment
isCurrent
@@ -211,7 +218,10 @@ query ($searchText: String!) {
deployerLrn
deployerId
deployerApiUrl
minimumPayment
}
paymentAddress
txHash
fundsReleased
prodBranch
webhooks
@@ -314,6 +324,19 @@ query {
deployerLrn
deployerId
deployerApiUrl
minimumPayment
}
}
`;
export const getAddress = gql`
query {
address
}
`;
export const verifyTx = gql`
query ($txHash: String!, $amount: String!, $senderAddress: String!) {
verifyTx(txHash: $txHash, amount: $amount, senderAddress: $senderAddress)
}
`;
+7
View File
@@ -119,6 +119,7 @@ export type Deployer = {
deployerLrn: string;
deployerId: string;
deployerApiUrl: string;
minimumPayment: string | null;
}
export type OrganizationMember = {
@@ -177,6 +178,8 @@ export type Project = {
framework: string;
deployers: [Deployer]
auctionId: string;
paymentAddress: string;
txHash: string;
fundsReleased: boolean;
webhooks: string[];
members: ProjectMember[];
@@ -306,6 +309,8 @@ export type AddProjectFromTemplateInput = {
owner: string;
name: string;
isPrivate: boolean;
paymentAddress: string;
txHash: string;
};
export type AddProjectInput = {
@@ -313,6 +318,8 @@ export type AddProjectInput = {
repository: string;
prodBranch: string;
template?: string;
paymentAddress: string;
txHash: string;
};
export type UpdateProjectInput = {