|
1 | 1 | package example
|
2 | 2 |
|
3 | 3 | import (
|
| 4 | + "github.com/everFinance/everpay-go/sdk" |
4 | 5 | "github.com/everFinance/goar"
|
| 6 | + "github.com/everFinance/goar/types" |
5 | 7 | "github.com/everFinance/goar/utils"
|
| 8 | + "github.com/everFinance/goether" |
6 | 9 | "github.com/stretchr/testify/assert"
|
| 10 | + "math/big" |
7 | 11 | "testing"
|
8 | 12 | )
|
9 | 13 |
|
10 |
| -func TestBundle_SendBundleTx(t *testing.T) { |
11 |
| - // signer, err := goar.NewSignerFromPath("./testKey.json") |
12 |
| - // assert.NoError(t, err) |
13 |
| - // |
14 |
| - // |
15 |
| - // itemSigner, err := goar.NewItemSigner(signer) |
16 |
| - // assert.NoError(t, err) |
17 |
| - // |
18 |
| - // tags := []types.Tag{ |
19 |
| - // {Name: "Content-Type", Value: "image/jpeg"}, |
20 |
| - // {Name: "App-Version", Value: "2.0.0"}, |
21 |
| - // } |
22 |
| - // |
23 |
| - // data := []byte("123456") |
24 |
| - // item01, err := itemSigner.CreateAndSignItem(data, "", "", tags) |
25 |
| - // assert.NoError(t, err) |
26 |
| - // |
27 |
| - // err = utils.VerifyBundleItem(item01) |
28 |
| - // assert.NoError(t, err) |
29 |
| - // |
30 |
| - // // send item to arseed |
31 |
| - // arseedUrl := "https://seed-dev.everpay.io" |
32 |
| - // resp, err := utils.SubmitItemToArSeed(item01,"USDT",arseedUrl) |
33 |
| - // assert.NoError(t, err) |
34 |
| - // t.Log(*resp) |
35 |
| - // |
36 |
| - // // send item to bundlr network |
37 |
| - // bundlrUrl := "https://node1.bundlr.network" |
38 |
| - // resp, err := utils.SubmitItemToBundlr(item01, bundlrUrl) |
39 |
| - // assert.NoError(t, err) |
40 |
| - // t.Log(*resp) |
| 14 | +var ( |
| 15 | + signer01 *goether.Signer |
| 16 | + signer02 *goar.Signer |
| 17 | +) |
| 18 | + |
| 19 | +func init() { |
| 20 | + var err error |
| 21 | + signer01, err = goether.NewSigner("1f534ac18009182c07d266fe4a7903c0bcc8a66190f0967b719b2b3974a69c2f") |
| 22 | + if err != nil { |
| 23 | + return |
| 24 | + } |
| 25 | + |
| 26 | + rsaKey := `{ "kty": "RSA", |
| 27 | + "n": |
| 28 | + "nQ9iy1fRM2xrgggjHhN1xZUnOkm9B4KFsJzH70v7uLMVyDqfyIJEVXeJ4Jhk_8KpjzYQ1kYfnCMjeXnhTUfY3PbeqY4PsK5nTje0uoOe1XGogeGAyKr6mVtKPhBku-aq1gz7LLRHndO2tvLRbLwX1931vNk94bSfJPYgMfU7OXxFXbTdKU38W6u9ShoaJGgUQI1GObd_sid1UVniCmu7P-99XPkixqyacsrkHzBajGz1S7jGmpQR669KWE9Z0unvH0KSHxAKoDD7Q7QZO7_4ujTBaIFwy_SJUxzVV8G33xvs7edmRdiqMdVK5W0LED9gbS4dv_aee9IxUJQqulSqZphPgShIiGNl9TcL5iUi9gc9cXR7ISyavos6VGiem_A-S-5f-_OKxoeZzvgAQda8sD6jtBTTuM5eLvgAbosbaSi7zFYCN7zeFdB72OfvCh72ZWSpBMH3dkdxsKCDmXUXvPdDLEnnRS87-MP5RV9Z6foq_YSEN5MFTMDdo4CpFGYl6mWTP6wUP8oM3Mpz3-_HotwSZEjASvWtiff2tc1fDHulVMYIutd52Fis_FKj6K1fzpiDYVA1W3cV4P28Q1-uF3CZ8nJEa5FXchB9lFrXB4HvsJVG6LPSt-y2R9parGi1_kEc6vOYIesKspgZ0hLyIKtqpTQFiPgKRlyUc-WEn5E", |
| 29 | + "e": "AQAB", |
| 30 | + "d": |
| 31 | + "LIqif_yFrcm_q37XRr5KFiC4oUUsQKb5dx7fbLPlzXmsYb6OdfTLoFloVrOhYQ85uw2gNMRqToOAmgDAroQDspaoivlo5bhwP7R4orSVJP84xKzJMx-aNke3hGZtywQdytqfmQv_i3jxRm0Si33EXUnrWQVbEVmCEJ9kfgaIJ0NhALQ8TGx7dxv7cLp6U3zY0X2_PrsVkday5MFS45Wt4vHuYaGeBS4KFygHDflOlKiJ4FGksU3wzyBFO0o1tST21ayxd_G6sbdyar72sQU-asBvYU3kSVMuZs20i1C67qEizk1jqcdKbRuKRApqqs7ub8g2U6yDQaZYqft7KqC8Oi6X-VrUFNMttzvrTmJ0nhzGs1g7SJnZp1NJ1yvqwHOoisUjd0kyqBsDBzT_q0UsYOTM9yi3Ve021R7ghVQPGuvbDmRz8rCm_XusWRp2pzE1R14vot6G67w_2eXGNeD8GYjLKEX35DJwQqhqmD4AVR03u1slY7QK_EI2TxD2aCSpsBToX2Rix0E18dfPCkPmb4WAXccgyMKyR07w_31eypp1qdcQ4cNB_3-2QvM6kbzH3LJkRyPZzamiTB4pKoaQRDqKas0_QctmIdjAWNDr79q4cDcWB0de6X8H6QTjJoL28Lf6pvXXatLoHMAaVHWZpq-yz04-6oiA4pY6DFIs8AE", |
| 32 | + "p": |
| 33 | + "yL6EzJ5NP0T4vUyWDjkGRI2JAqD9wJhaNd3jt-2Wip3aOQBcmWyagM2tRfbQunwWRquVGd6oSW-Tfr5aBesY3C_EKkbiXt7CSJ9iWz15FBWlLe5lSLbVi5tIcY7iV_D3iFND4mX39gmILX7p_sPmt6z5ZpHKv9MvypjuU2jKScC0HER5fgB-xJAhOQ45xfxuqjpDY6vVWUms6ZSTF3NOrLIrcupNdxUpWNjxKI6A48cvfKdAwJi-vtJcEZFrCJCv98UTgZFSgiWyUVcW2Bt9BYJQRKffm7cuC4aT_xwYq4sMcALoEq0CXIQ9XK4rRPH2bq6E2aZ2ll57OUBWR_1KEQ", |
| 34 | + "q": |
| 35 | + "yEqoTJqr4EyWoxa-qz5x4FEylw9ueTqLmnZGBbRZaVwJnEY-ydoOaty9ZOtGA6g8EfLVGhtYy_B51479gpDTtygV846313WPDU3drTsPvGNmuA0dD5w4Vva-759Zmc4BcoJA7UYnlr4QRaLQuNAmf9RCgA-yTtHppt5Lre7tGG5K4j7uHRPzp3NhKPq8WosbydN0kFz-a2Vn9kZjoqI3m1JqvX9wRGFzOZlUnQTWA7MaGv4SgoqMMu8PyKQLjhbIJyvnIGI7NZjCi1uw0H03skdgC8bBEL_uSp6Go8nr1apGJ6o1x5_hriofgD9DvpKMkEsx4uTxRvxFys8w3jh9gQ", |
| 36 | + "dp": |
| 37 | + "Il7kc_hit4OCpz62roa6-P_Wxplz-Qbc4z4zoClQzjkKxRm3wRkkNwuAMGt6_4MBeWYlaEGERNaSxW-oED1Zi1GuX6K1XZL8ZtzLRV34HiU6m-umcdXEKFwVAkR5op8Cctf21ouo8fpd05RYUiOOnEJEjXhG46MwGpsmqydVA124OOLMfnNtQRCAb7ls0OZQuFqzcRxZsij4LyIeMTSv8seqwsk1LD92Td0PJWeIz_cpvUkRwCgm-Jsh4mwojFXhmyWmGlgcbWYw6tZjder28_uE7Mxlb87kVlrbeiGAY9ax8Xe97nyq29ZUf0re47YeAINnAbELuuFAbeQDId5PUQ", |
| 38 | + "dq": |
| 39 | + "woDVvUZ64OAfbRNaZ_vFJHxVr6K5uppjFcYDq-h-57UMVClXMjhCxf3FIqrjnAuVAi0aSzcBXVMTT4S5pUC1iOkxoAsZdu_f0qCqRF7VojG5f8SkUxN3FuSZeSP7JESM3UGmgYUeTuIV9TnujXr92CctyST1GFv7FiRLxAYBUzdQGzPXkn9cn2GJmf0cSqVKgA2L5eGY5HxeoCes_DOh4oD_zTRjttQXzHidVbprhr43_Lx9By46hf_oCQVdf0eaaYfV9HnQW_UT_7c0FtNy8fskR2tk87ofU3Fs-MPO9PhdFonRniEiTTr0ylslk3zHahzLvjZsJG457ICWSUb8gQ", |
| 40 | + "qi": |
| 41 | + "ENtqTq3iiDkeiyPWD7pNRfiwIJnY5Zf97yXakxe04usHXWKmZulllttqsDkfHOXkBxRxHxqqTgOLuRpNsLrpI5MAxs8uSl13A70LUzHldnE8ePgt0688UpoI5Iw9oV2RdF_LvSrsgpa-SeexXxbZqXWpDNeUxYt2S327cS8HmrnETKy9z9VoVFmCT6_NCnxOaOTwr67dPBnGnW7nT3499m_aqmikCNjcmkfYihED6S2jZBRHPaSDM7JPPyQSEyRkGjR4z9JzhLOvbJf8tDKSE00JXJClmbpX-5qRcNt0gcJy6ceYQs-c94I24yGpunMMSwGo2i1-sGNwH1wj5-gv1Q" }` |
| 42 | + |
| 43 | + signer02, err = goar.NewSigner([]byte(rsaKey)) |
| 44 | + if err != nil { |
| 45 | + return |
| 46 | + } |
| 47 | +} |
| 48 | + |
| 49 | +func TestBundleToArweave(t *testing.T) { |
| 50 | + // sig item01 by ecc signer |
| 51 | + itemSigner01, err := goar.NewItemSigner(signer01) |
| 52 | + assert.NoError(t, err) |
| 53 | + item01, err := itemSigner01.CreateAndSignItem([]byte("aa bb cc"), "", "", []types.Tag{ |
| 54 | + {Name: "Content-Type", Value: "application/txt"}, |
| 55 | + {Name: "App-Version", Value: "2.0.0"}, |
| 56 | + }) |
| 57 | + assert.NoError(t, err) |
| 58 | + |
| 59 | + // sig item02 by rsa signer |
| 60 | + itemSigner02, err := goar.NewItemSigner(signer02) |
| 61 | + assert.NoError(t, err) |
| 62 | + item02, err := itemSigner02.CreateAndSignItem([]byte("dd ee ff"), "", "", []types.Tag{ |
| 63 | + {Name: "Content-Type", Value: "application/txt"}, |
| 64 | + }) |
| 65 | + assert.NoError(t, err) |
| 66 | + |
| 67 | + // assemble bundle |
| 68 | + bundle, err := utils.NewBundle(item01, item02) |
| 69 | + assert.NoError(t, err) |
| 70 | + |
| 71 | + // send to arweave |
| 72 | + wal, err := goar.NewWalletFromPath("jwkKey.json", "https://arweave.net") |
| 73 | + tx, err := wal.SendBundleTx(bundle.BundleBinary, []types.Tag{ |
| 74 | + {Name: "App", Value: "goar"}, |
| 75 | + }) |
| 76 | + assert.NoError(t, err) |
| 77 | + t.Log(tx.ID) |
| 78 | +} |
| 79 | + |
| 80 | +func TestBundleItemToArseeding(t *testing.T) { |
| 81 | + // sig item01 by ecc signer |
| 82 | + itemSigner01, err := goar.NewItemSigner(signer01) |
| 83 | + assert.NoError(t, err) |
| 84 | + item01, err := itemSigner01.CreateAndSignItem([]byte("aa bb cc"), "", "", []types.Tag{ |
| 85 | + {Name: "Content-Type", Value: "application/txt"}, |
| 86 | + {Name: "App-Version", Value: "2.0.0"}, |
| 87 | + }) |
| 88 | + assert.NoError(t, err) |
| 89 | + |
| 90 | + // submit item to arseeding |
| 91 | + resp, err := utils.SubmitItemToArSeed(item01, "USDC", "https://seed.everpay.io") |
| 92 | + assert.NoError(t, err) |
| 93 | + t.Log("itemId: ", resp.ItemId) |
| 94 | + |
| 95 | + // payment fee |
| 96 | + paySdk, err := sdk.New(signer01, "https://api.everpay.io") |
| 97 | + assert.NoError(t, err) |
| 98 | + tokenSymbol := resp.Currency |
| 99 | + amount, _ := new(big.Int).SetString(resp.Fee, 10) |
| 100 | + to := resp.Bundler |
| 101 | + everTx, err := paySdk.Transfer(tokenSymbol, amount, to, "") |
| 102 | + assert.NoError(t, err) |
| 103 | + t.Log("paymentId: ", everTx.HexHash()) |
| 104 | +} |
| 105 | + |
| 106 | +func TestBundleItemToBundlr(t *testing.T) { |
| 107 | + itemSigner01, err := goar.NewItemSigner(signer01) |
| 108 | + assert.NoError(t, err) |
| 109 | + item01, err := itemSigner01.CreateAndSignItem([]byte("aa bb cc"), "", "", []types.Tag{ |
| 110 | + {Name: "Content-Type", Value: "application/txt"}, |
| 111 | + {Name: "App-Version", Value: "2.0.0"}, |
| 112 | + }) |
| 113 | + assert.NoError(t, err) |
| 114 | + |
| 115 | + // submit item to bundlr |
| 116 | + resp, err := utils.SubmitItemToBundlr(item01, "https://node1.bundlr.network") |
| 117 | + assert.NoError(t, err) |
| 118 | + t.Log("itemId: ", resp.Id) |
41 | 119 | }
|
42 | 120 |
|
43 | 121 | func TestVerifyBundleItem(t *testing.T) {
|
|
0 commit comments